Isi kandungan:
- Langkah 1: Bagaimana I2c Berfungsi
- Langkah 2: Perpustakaan
- Langkah 3: Behaivor
- Langkah 4: Penggunaan I2c
- Langkah 5: Penggunaan Satu Kawat
- Langkah 6: Bacaan Tersirat
- Langkah 7: Bacaan Ringkas
- Langkah 8: Bacaan Penuh
- Langkah 9: Diagram Sambungan
- Langkah 10: Arduino: OneWire
- Langkah 11: Arduino: I2c
- Langkah 12: Esp8266 (D1Mini) OneWire
- Langkah 13: Esp8266 (D1Mini) I2c
- Langkah 14: Terima kasih
Video: DHT12 (Sensor Kelembapan dan Suhu i2c Murah), Penggunaan Mudah Pantas: 14 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Anda boleh mendapatkan kemas kini dan yang lain di laman web saya
Saya suka sensor yang boleh digunakan dengan 2 wayar (protokol i2c), tetapi saya suka yang murah.
Ini adalah perpustakaan Arduino dan esp8266 untuk siri DHT12 sensor suhu / kelembapan yang sangat rendah (kurang dari 1 $) yang berfungsi dengan sambungan i2c atau satu wayar.
Sangat berguna jika anda mahu menggunakan esp01 (jika anda menggunakan siri anda hanya mempunyai 2 pin) untuk membaca kelembapan dan suhu dan memaparkannya pada LCD i2c.
AI membaca bahawa kadang-kadang memerlukan penentukuran, tetapi saya mempunyai pokok ini dan mendapat nilai yang sangat serupa dengan DHT22. Sekiranya anda mempunyai penentukuran masalah ini, buka masalah di github dan saya tambahkan pelaksanaannya.
Langkah 1: Bagaimana I2c Berfungsi
I2C berfungsi dengan dua wayar, SDA (garis data) dan SCL (garis jam).
Kedua-dua garisan ini terbuka, tetapi ditarik dengan perintang.
Biasanya ada satu tuan dan satu atau beberapa hamba di talian, walaupun boleh ada banyak tuan, tetapi kita akan membincangkannya kemudian.
Baik tuan dan hamba dapat menghantar atau menerima data, oleh itu, perangkat dapat berada di salah satu dari empat keadaan ini: transmisi induk, penerima utama, transmisi hamba, penerimaan hamba.
Langkah 2: Perpustakaan
Anda boleh menemui perpustakaan saya di sini.
Untuk muat turun
Klik butang DOWNLOADS di sudut kanan atas, namakan semula folder DHT12 yang tidak dimampatkan.
Pastikan folder DHT mengandungi DHT12.cpp dan DHT12.h.
Letakkan folder perpustakaan DHT anda / pustaka / folder.
Anda mungkin perlu membuat subfolder perpustakaan jika itu adalah perpustakaan pertama anda.
Mulakan semula IDE.
Langkah 3: Behaivor
Pustaka ini cuba meniru tingkah laku sensor pustaka DHT standard (dan menyalin banyak kod), dan saya menambahkan kod untuk menguruskan i2c olso dengan cara yang sama.
Kaedahnya sama dengan sensor perpustakaan DHT, dengan beberapa fungsi penambahan seperti titik embun.
Langkah 4: Penggunaan I2c
Untuk digunakan dengan i2c (alamat lalai dan pin SDA SCL lalai) pembina adalah:
DHT12 dht12;
dan ambil nilai lalai untuk pin SDA SCL.
(Mungkin untuk mentakrifkan semula dengan kontraktor yang ditentukan untuk esp8266, diperlukan untuk ESP-01). atau
DHT12 dht12 (alamat uint8_tOrPin)
addressOrPin -> alamat
untuk menukar alamat.
Langkah 5: Penggunaan Satu Kawat
Untuk menggunakan satu wayar:
DHT12 dht12 (alamat uint8_tOrPin, benar)
addressOrPin -> pin
nilai boolean adalah pemilihan mod oneWire atau i2c.
Langkah 6: Bacaan Tersirat
Anda boleh menggunakannya dengan "implisit", "read simple" atau "fullread": Tersirat, hanya bacaan pertama yang melakukan pembacaan sensor yang benar, bacaan lain menjadi 2 saat. selang adalah nilai tersimpan dari bacaan pertama.
// Pembacaan sensor mempunyai 2 detik masa yang berlalu, kecuali jika anda melewati parameter daya
// Baca suhu sebagai Celsius (lalai) terapung t12 = dht12.readTemperature (); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) apungan f12 = dht12.readTemperature (benar); // Bacaan sensor juga boleh sampai 2 saat 'lama' (ini adalah sensor yang sangat perlahan) float h12 = dht12.readHumidity (); // Hitung indeks haba di Fahrenheit (lalai) float hif12 = dht12.computeHeatIndex (f12, h12); // Mengira indeks haba dalam Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Hitung titik embun di Fahrenheit (lalai) float dpf12 = dht12.dewPoint (f12, h12); // Hitung titik embun dalam Celsius (isFahreheit = false) apungan dpc12 = dht12.dewPoint (t12, h12, false);
Langkah 7: Bacaan Ringkas
Bacaan ringkas untuk mendapatkan status membaca.
// Pembacaan sensor mempunyai 2 detik masa yang berlalu, kecuali anda melewati parameter kekuatan
bool chk = dht12.read (); // betul membaca ok, masalah membaca salah
// Baca suhu sebagai Celsius (lalai)
apungan t12 = dht12.readTemperature (); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) apungan f12 = dht12.readTemperature (benar); // Pembacaan sensor juga boleh sampai 2 saat 'lama' (ini adalah sensor yang sangat perlahan) float h12 = dht12.readHumidity (); // Hitung indeks haba di Fahrenheit (lalai) float hif12 = dht12.computeHeatIndex (f12, h12); // Hitung indeks haba dalam Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Hitung titik embun di Fahrenheit (lalai) float dpf12 = dht12.dewPoint (f12, h12); // Hitung titik embun dalam Celsius (isFahreheit = false) apungan dpc12 = dht12.dewPoint (t12, h12, false);
Langkah 8: Bacaan Penuh
Baca penuh untuk mendapatkan status yang ditentukan.
// Pembacaan sensor mempunyai 2 detik masa yang berlalu, kecuali jika anda melewati parameter daya
DHT12:: ReadStatus chk = dht12.readStatus (); Serial.print (F ("\ nBaca sensor:")); beralih (chk) {kes DHT12:: OK: Serial.println (F ("OK")); rehat; kes DHT12:: ERROR_CHECKSUM: Serial.println (F ("Kesalahan Checksum")); rehat; kes DHT12:: ERROR_TIMEOUT: Serial.println (F ("Kesalahan masa tamat")); rehat; kes DHT12:: ERROR_TIMEOUT_LOW: Serial.println (F ("Kesalahan masa tamat pada isyarat rendah, cuba letakkan rintangan tarik tinggi")); rehat; kes DHT12:: ERROR_TIMEOUT_HIGH: Serial.println (F ("Kesalahan masa tamat pada isyarat rendah, cuba letakkan rintangan tarik rendah")); rehat; kes DHT12:: ERROR_CONNECT: Serial.println (F ("Ralat sambung")); rehat; kes DHT12:: ERROR_ACK_L: Serial.println (F ("Kesalahan AckL")); rehat; kes DHT12:: ERROR_ACK_H: Serial.println (F ("Kesalahan AckH")); rehat; kes DHT12:: ERROR_UNKNOWN: Serial.println (F ("Ralat tidak diketahui DETECTED")); rehat; kes DHT12:: TIADA: Serial.println (F ("Tiada hasil")); rehat; lalai: Serial.println (F ("Ralat tidak diketahui")); rehat; }
// Baca suhu sebagai Celsius (lalai)
apungan t12 = dht12.readTemperature (); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) apungan f12 = dht12.readTemperature (benar); // Pembacaan sensor juga boleh sampai 2 saat 'lama' (ini adalah sensor yang sangat perlahan) float h12 = dht12.readHumidity (); // Hitung indeks haba di Fahrenheit (lalai) float hif12 = dht12.computeHeatIndex (f12, h12); // Mengira indeks haba dalam Celsius (isFahreheit = false) float hic12 = dht12.computeHeatIndex (t12, h12, false); // Hitung titik embun di Fahrenheit (lalai) float dpf12 = dht12.dewPoint (f12, h12); // Hitung titik embun dalam Celsius (isFahreheit = false) apungan dpc12 = dht12.dewPoint (t12, h12, false);
Langkah 9: Diagram Sambungan
Dengan contoh, terdapat rajah sambungan, penting untuk menggunakan penarik tarik yang betul.
Terima kasih kepada Bobadas, dplasa dan adafruit, untuk berkongsi kod dalam github (di mana saya mengambil beberapa kod dan idea).
Langkah 10: Arduino: OneWire
Langkah 11: Arduino: I2c
Langkah 12: Esp8266 (D1Mini) OneWire
Langkah 13: Esp8266 (D1Mini) I2c
Langkah 14: Terima kasih
Taman permainan Arduino (https://playground.arduino.cc/Main/DHT12SensorLibrary)
Siri projek i2c (Koleksi):
- Sensor kelembapan suhu
- Pengembang analog
- Pengembang digital
- Paparan LCD
Disyorkan:
Papan 6 $ NodeMCU Lua Murah Dengan Log Suhu dan Kelembapan MicroPython, Wifi dan Statistik Mudah Alih: 4 Langkah
NodeMCU Lua Papan Murah 6 $ Dengan Log Suhu dan Kelembapan MicroPython, Wifi dan Statistik Mudah Alih: Ini pada dasarnya stesen cuaca awan, anda boleh menyemak data di telefon anda atau menggunakan beberapa telefon sebagai paparan langsung Dengan peranti NodeMCU anda dapat mencatat data suhu dan kelembapan di luar , di bilik, rumah hijau, makmal, bilik penyejuk atau tempat-tempat lain yang lengkap
Cara Menggunakan Sensor Kelembapan dan Suhu DHT12 I2C Dengan Arduino: 7 Langkah
Cara Menggunakan Sensor Kelembapan dan Suhu DHT12 I2C Dengan Arduino: Dalam tutorial ini kita akan belajar bagaimana menggunakan Sensor Kelembapan dan Suhu DHT12 I2C dengan Arduino dan menampilkan nilai pada Paparan OLED. Tonton videonya
Cara Menggunakan Sensor Suhu DHT11 Dengan Arduino dan Cetak Suhu Panas dan Kelembapan: 5 Langkah
Cara Menggunakan Sensor Suhu DHT11 Dengan Arduino dan Cetak Suhu Panas dan Kelembapan: Sensor DHT11 digunakan untuk mengukur suhu dan kelembapan. Mereka adalah penggemar elektronik yang sangat popular. Sensor kelembapan dan suhu DHT11 menjadikannya sangat mudah untuk menambahkan data kelembapan dan suhu ke projek elektronik DIY anda. Per
PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Pantas: 9 Langkah
PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Cepat: Perpustakaan untuk menggunakan IC i2c pcf8591 dengan arduino dan esp8266. IC ini dapat mengawal (hingga 4) input analog dan / atau 1 output analog seperti mengukur voltan, membaca nilai termistor atau memudar led. Boleh membaca nilai analog dan menulis nilai analog dengan hanya 2 wayar (perfec
Suis Lembut Pantas dan Mudah (untuk Prototaip Pantas): 5 Langkah
Suis Lembut Pantas dan Sederhana (untuk Prototaip Cepat): Terdapat banyak cara yang berbeza untuk membuat suis lembut. Instruksional ini menunjukkan pilihan lain dari prototaip yang sangat cepat untuk suis lembut, menggunakan pita aluminium bukan kain konduktif, dan wayar padat dan bukan benang konduktif, yang mana