Daftar Isi:
- Langkah 1: Cara Kerja I2c
- Langkah 2: Perpustakaan
- Langkah 3: Perilaku
- Langkah 4: Penggunaan I2c
- Langkah 5: Penggunaan Satu Kawat
- Langkah 6: Baca Implisit
- Langkah 7: Baca Sederhana
- Langkah 8: Baca Penuh
- Langkah 9: Diagram Koneksi
- 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 Kelembaban dan Suhu Murah i2c), Penggunaan Cepat Mudah: 14 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Anda dapat menemukan pembaruan dan lainnya di situs saya
Saya suka sensor yang bisa digunakan dengan 2 kabel (protokol i2c), tapi saya suka yang murah.
Ini adalah perpustakaan Arduino dan esp8266 untuk seri DHT12 dari sensor suhu/kelembaban berbiaya sangat rendah (kurang dari $1) yang bekerja dengan i2c atau satu koneksi kabel.
Sangat berguna jika Anda ingin menggunakan esp01 (jika Anda menggunakan serial Anda hanya memiliki 2 pin) untuk membaca kelembaban dan suhu dan menampilkannya di LCD i2c.
AI membaca bahwa kadang-kadang tampaknya perlu kalibrasi, tetapi saya memiliki pohon ini dan mendapatkan nilai yang sangat mirip dengan DHT22. Jika Anda memiliki kalibrasi masalah ini, buka masalah di github dan saya menambahkan implementasi.
Langkah 1: Cara Kerja I2c
I2C bekerja dengan dua kabelnya, SDA (jalur data) dan SCL (jalur jam).
Kedua saluran ini adalah saluran terbuka, tetapi ditarik dengan resistor.
Biasanya ada satu master dan satu atau beberapa budak di telepon, meskipun bisa ada beberapa master, tapi kita akan membicarakannya nanti.
Baik master dan budak dapat mengirim atau menerima data, oleh karena itu, perangkat dapat berada di salah satu dari empat status ini: transmisi master, penerima master, transmisi slave, penerima slave.
Langkah 2: Perpustakaan
Anda dapat menemukan perpustakaan saya di sini.
Untuk mengunduh
Klik tombol UNDUH di sudut kanan atas, ganti nama folder yang tidak terkompresi DHT12.
Periksa apakah folder DHT berisi DHT12.cpp dan DHT12.h.
Tempatkan folder perpustakaan DHT folder /libraries/ Anda.
Anda mungkin perlu membuat subfolder perpustakaan jika ini adalah perpustakaan pertama Anda.
Mulai ulang IDE.
Langkah 3: Perilaku
Pustaka ini mencoba meniru perilaku sensor pustaka DHT standar (dan menyalin banyak kode), dan saya menambahkan kode untuk mengelola i2c juga dengan cara yang sama.
Metodenya sama dengan sensor library DHT, dengan beberapa penambahan seperti fungsi titik embun.
Langkah 4: Penggunaan I2c
Untuk digunakan dengan i2c (alamat default dan pin SDA SCL default) konstruktornya adalah:
DHT12 dht12;
dan ambil nilai default untuk pin SDA SCL.
(Dimungkinkan untuk mendefinisikan ulang dengan konstruktor yang ditentukan untuk esp8266, diperlukan untuk ESP-01). atau
DHT12 dht12(alamat uint8_tAtauPin)
alamatOrPin -> alamat
untuk mengubah alamat.
Langkah 5: Penggunaan Satu Kawat
Untuk menggunakan satu kawat:
DHT12 dht12(alamat uint8_tAtauPin, benar)
alamatAtauPin -> pin
nilai boolean adalah pemilihan mode oneWire atau i2c.
Langkah 6: Baca Implisit
Anda dapat menggunakannya dengan "implicit", "simple read" atau "fullread": Implicit, hanya pembacaan pertama yang melakukan pembacaan sensor yang sebenarnya, pembacaan lainnya yang menjadi dalam 2 detik. interval adalah nilai tersimpan dari pembacaan pertama.
// Pembacaan sensor memiliki 2 detik waktu berlalu, kecuali jika Anda melewati parameter gaya
// Baca suhu sebagai Celcius (default) float t12 = dht12.readTemperature(); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature(true); // Pembacaan sensor juga bisa sampai 2 detik 'lama' (sensornya sangat lambat) float h12 = dht12.readHumidity(); // Hitung indeks panas dalam Fahrenheit (default) float hif12 = dht12.computeHeatIndex(f12, h12); // Hitung indeks panas dalam Celcius (isFahreheit = false) float hic12 = dht12.computeHeatIndex(t12, h12, false); // Hitung titik embun dalam Fahrenheit (default) float dpf12 = dht12.dewPoint(f12, h12); // Hitung titik embun dalam Celcius (isFahreheit = false) float dpc12 = dht12.dewPoint(t12, h12, false);
Langkah 7: Baca Sederhana
Baca sederhana untuk mendapatkan status dibaca.
// Pembacaan sensor memiliki 2 detik waktu berlalu, kecuali jika Anda melewati parameter gaya
bool chk = dht12.read(); // pembacaan benar tidak apa-apa, masalah pembacaan salah
// Baca suhu sebagai Celcius (default)
float t12 = dht12.readTemperature(); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature(true); // Pembacaan sensor juga bisa sampai 2 detik 'lama' (sensornya sangat lambat) float h12 = dht12.readHumidity(); // Hitung indeks panas dalam Fahrenheit (default) float hif12 = dht12.computeHeatIndex(f12, h12); // Hitung indeks panas dalam Celcius (isFahreheit = false) float hic12 = dht12.computeHeatIndex(t12, h12, false); // Hitung titik embun dalam Fahrenheit (default) float dpf12 = dht12.dewPoint(f12, h12); // Hitung titik embun dalam Celcius (isFahreheit = false) float dpc12 = dht12.dewPoint(t12, h12, false);
Langkah 8: Baca Penuh
Baca penuh untuk mendapatkan status tertentu.
// Pembacaan sensor memiliki 2 detik waktu berlalu, kecuali jika Anda melewati parameter gaya
DHT12::ReadStatus chk = dht12.readStatus(); Serial.print(F("\nBaca sensor: ")); switch (chk) { kasus DHT12::OK: Serial.println(F("OK")); merusak; kasus DHT12::ERROR_CHECKSUM: Serial.println(F("Checksum error")); merusak; kasus DHT12::ERROR_TIMEOUT: Serial.println(F("Kesalahan batas waktu")); merusak; case DHT12::ERROR_TIMEOUT_LOW: Serial.println(F("Timeout error pada sinyal rendah, coba pasang resistansi pullup tinggi")); merusak; case DHT12::ERROR_TIMEOUT_HIGH: Serial.println(F("Timeout error pada sinyal rendah, coba pasang resistansi pullup rendah")); merusak; kasus DHT12::ERROR_CONNECT: Serial.println(F("Sambungkan error")); merusak; kasus DHT12::ERROR_ACK_L: Serial.println(F("AckL error")); merusak; kasus DHT12::ERROR_ACK_H: Serial.println(F("AckH error")); merusak; kasus DHT12::ERROR_UNKNOWN: Serial.println(F("Kesalahan tidak diketahui TERDETEKSI")); merusak; case DHT12::NONE: Serial.println(F("Tidak ada hasil")); merusak; default: Serial.println(F("Kesalahan tidak diketahui")); merusak; }
// Baca suhu sebagai Celcius (default)
float t12 = dht12.readTemperature(); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) float f12 = dht12.readTemperature(true); // Pembacaan sensor juga bisa sampai 2 detik 'lama' (sensornya sangat lambat) float h12 = dht12.readHumidity(); // Hitung indeks panas dalam Fahrenheit (default) float hif12 = dht12.computeHeatIndex(f12, h12); // Hitung indeks panas dalam Celcius (isFahreheit = false) float hic12 = dht12.computeHeatIndex(t12, h12, false); // Hitung titik embun dalam Fahrenheit (default) float dpf12 = dht12.dewPoint(f12, h12); // Hitung titik embun dalam Celcius (isFahreheit = false) float dpc12 = dht12.dewPoint(t12, h12, false);
Langkah 9: Diagram Koneksi
Dengan contoh, ada diagram koneksi, penting untuk menggunakan resistor pullup yang benar.
Terima kasih kepada Bobadas, dplasa dan adafruit, untuk membagikan kode di github (tempat saya mengambil beberapa kode dan ide).
Langkah 10: Arduino: OneWire
Langkah 11: Arduino: I2c
Langkah 12: Esp8266 (D1Mini) OneWire
Langkah 13: Esp8266 (D1Mini) I2c
Langkah 14: Terima kasih
Taman bermain Arduino (https://playground.arduino.cc/Main/DHT12SensorLibrary)
seri proyek i2c (Koleksi):
- Sensor kelembaban suhu
- Ekspander analog
- Ekspander digital
- Layar LCD
Direkomendasikan:
NodeMCU Lua Murah 6$ Papan Dengan MicroPython Suhu dan Kelembaban Logging, Wifi dan Mobile Stats: 4 Langkah
Papan NodeMCU Lua Murah 6$ Dengan Pencatatan Suhu dan Kelembaban MicroPython, Wifi, dan Statistik Seluler: Ini pada dasarnya adalah stasiun cuaca cloud, Anda dapat memeriksa data di ponsel Anda atau menggunakan beberapa ponsel sebagai tampilan langsung Dengan perangkat NodeMCU Anda dapat mencatat data suhu dan kelembaban di luar , di kamar, rumah kaca, lab, ruang pendingin atau tempat lain yang lengkap
Cara Menggunakan Sensor Kelembaban dan Suhu DHT12 I2C Dengan Arduino: 7 Langkah
Cara Menggunakan Sensor Kelembaban dan Suhu DHT12 I2C Dengan Arduino: Dalam tutorial ini kita akan belajar cara menggunakan Sensor Kelembaban dan Suhu DHT12 I2C dengan Arduino dan menampilkan nilainya pada Layar OLED. Tonton videonya
ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembaban di Browser: 5 Langkah
ESP8266 NodeMCU Access Point (AP) untuk Web Server Dengan Sensor Suhu DT11 dan Pencetakan Suhu & Kelembaban di Browser: Hai guys di sebagian besar proyek kami menggunakan ESP8266 dan di sebagian besar proyek kami menggunakan ESP8266 sebagai server web sehingga data dapat diakses di perangkat apa pun melalui wifi dengan mengakses server Web yang dihosting oleh ESP8266 tetapi satu-satunya masalah adalah kita membutuhkan router yang berfungsi untuk
Cara Menggunakan Sensor Suhu DHT11 Dengan Arduino dan Mencetak Suhu Panas dan Kelembaban: 5 Langkah
Cara Menggunakan Sensor Suhu DHT11 Dengan Arduino dan Mencetak Suhu Panas dan Kelembaban: Sensor DHT11 digunakan untuk mengukur suhu dan kelembaban. Mereka adalah penggemar elektronik yang sangat populer. Sensor kelembaban dan suhu DHT11 membuatnya sangat mudah untuk menambahkan data kelembaban dan suhu ke proyek elektronik DIY Anda. Ini per
DIPERBARUI!!!! Penguat Sinyal Antena WIFI Murah dan Mudah Yang Lebih Baik dan Lebih Cepat Dari Yang Kertas !!!: 9 Langkah
DIPERBARUI!!!! Penguat Sinyal Antena WIFI Murah dan Mudah Yang Lebih Baik dan Lebih Cepat Dari Yang Kertas !!!: Sebuah ayunan baru pada ide lama untuk meningkatkan sinyal WIFI Anda