- Komponen Diperlukan
- Rajah Litar
- Sensor Suhu dan Kelembapan DHT11
- Pengaturcaraan NodeMCU ESP8266 Pemantauan Suhu dan Kelembapan Langsung
Mikrokontroler mempunyai memori dalaman kecil yang tidak cukup untuk menyimpan data yang dihasilkan oleh sensor untuk masa yang lama, sama ada anda harus menggunakan beberapa peranti memori luaran atau dapat menyimpan data di beberapa awan menggunakan internet. Juga, kadang-kadang menjadi sukar untuk dikendalikan ketika sensor dikerahkan di beberapa lokasi yang sangat teruk di mana manusia tidak dapat menjangkau atau sukar untuk sering berkunjung ke sana. Untuk membetulkan masalah seperti ini, kami selalu meneliti cara di mana kami ingin memantau data sensor secara real time dari mana sahaja tanpa kehadiran fizikal di tempat itu.
The pangkalan data masa sebenar boleh digunakan dalam senario ini di mana kita hanya perlu untuk berhubung beberapa pengawal yang boleh disambungkan ke internet dan boleh dapat bertukar-tukar data dengan pelayan awan. Data pelayan boleh berguna dalam memantau tingkah laku sistem masa nyata, analisis pangkalan data, analisis dan pemprosesan statistik, dan interpretasi untuk kes penggunaan masa depan. Terdapat banyak platform perkakasan IoT dan platform Cloud yang tersedia untuk memenuhi tujuan ini. Sekiranya anda menghadapi kesukaran untuk mencari Platform yang tepat untuk aplikasi IoT anda, ikuti pautan tersebut.
Sebelum ini kita sudah merangkumi ThingSpeak, Adafruit IO dan banyak perisian IoT yang lain. Hari ini kami akan membina projek yang serupa di mana kami akan menggunakan sensor suhu & kelembapan DHT11 dan Modul NodeMCU ESP8266 untuk mencatat suhu dan kelembapan dalam masa nyata di pelayan pangkalan data Firebase Google.
Kami akan membahagikan projek dalam dua bahagian. Pertama, kita akan memulakan dengan memasang komponen perkakasan dan memuat naik firmware ke dalamnya. Dan kedua kami akan menggunakan Firebase untuk membuat persediaan dengan NodeMCU untuk menukar data masa nyata. Sekiranya anda baru menggunakan ESP8266 atau Firebase, ikuti tutorial kami sebelumnya untuk mengawal LED menggunakan Firebase.
Komponen Diperlukan
- Modul NodeMCU ESP8266
- Sensor Suhu dan Kelembapan DHT11
Rajah Litar
Sensor Suhu dan Kelembapan DHT11
Modul DHT11 mempunyai kompleks kelembapan dan suhu dengan output isyarat digital yang dikalibrasi yang bermaksud modul sensor DHT11 adalah modul gabungan untuk merasakan kelembapan dan suhu yang memberikan isyarat output digital yang dikalibrasi. DHT11 memberikan nilai kelembapan dan suhu yang sangat tepat dan memastikan kebolehpercayaan yang tinggi dan kestabilan jangka panjang. Sensor ini mempunyai komponen pengukuran kelembapan jenis resistif dan komponen pengukuran suhu jenis NTC dengan pengawal mikrokontroler 8-bit yang mempunyai tindak balas pantas dan menjimatkan kos dan tersedia dalam pakej baris tunggal 4-pin.
Kami sebelum ini menggunakan ESP12E untuk mengemas kini pembacaan DHT11 di pelayan laman web, selain itu anda boleh menyemak semua projek berasaskan DHT11 di mana kami telah menggunakan DHT11 untuk berinteraksi dengan banyak mikrokontroler lain seperti Arduino, PIC, Raspberry dan stesen cuaca yang dibina menggunakannya.
Pengaturcaraan NodeMCU ESP8266 Pemantauan Suhu dan Kelembapan Langsung
Program lengkap dengan Video berfungsi diberikan pada akhir. Di sini kami menerangkan beberapa bahagian penting kod tersebut.
Pertama, masukkan perpustakaan untuk menggunakan ESP8266 dan firebase.
#sertakan
Muat turun dan pasang perpustakaan dengan mengikuti pautan di bawah:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Semasa menyusun , jika anda mendapat ralat bahawa perpustakaan ArduinoJson.h tidak dipasang, sila pasang dengan menggunakan pautan yang diberikan di atas.
Kami akan memprogram NodeMCU untuk mengambil bacaan dari sensor DHT11 dan mendorongnya ke Firebase setiap selang 5 saat. Kami akan menetapkan jalan untuk mendorong data. Sekarang ini terdapat dua parameter. kelembapan dan suhu dihantar dalam laluan induk yang sama dan jalan anak yang berbeza.
Kedua-dua parameter ini sangat penting untuk berkomunikasi dengan firebase. Menetapkan parameter ini akan membolehkan pertukaran data antara dan ESP8266 dan firebase. Untuk mengetahui parameter ini untuk projek anda, ikuti tutorial kami sebelumnya mengenai Firebase Setup.
#define FIREBASE_HOST "your-project.firebaseio.com" // alamat nama projek dari firebase id #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // kunci rahsia yang dihasilkan dari firebase
Setelah berjaya mendapatkan bukti kelayakan, ganti pada kod di atas.
Masukkan SSID dan Kata Laluan Wi-Fi anda untuk berhubung dengan rangkaian anda.
#define WIFI_SSID "network_name" // masukkan nama wifi rumah atau awam anda #define WIFI_PASSWORD "kata laluan" // kata laluan wifi ssid
Tentukan pin data DHT di NodeMCU. Anda boleh menggunakan sebarang pin GPIO Digital di NodeMCU.
#tentukan DHTPIN D4
Perpustakaan DHT dibuat untuk semua varian DHT dan dilengkapi dengan pilihan sensor DHT mana yang ingin anda gunakan misalnya DHT11 atau DHT22. Cukup pilih sensor DHT yang betul dan teruskan.
#tentukan DHTTYPE DHT11 // pilih jenis dht sebagai DHT 11 atau DHT22 DHT dht (DHTPIN, DHTTYPE);
Sambung ke rangkaian Wi-Fi yang dipilih dan juga sambungkan ke pelayan pangkalan data firebase.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Mula membaca di pin D4 NodeMCU.
dht.begin ();
Ambil bacaan kelembapan dan suhu dari sensor DHT dan simpan sebagai nilai apungan.
apungan h = dht.readHumidity (); // Suhu atau kelembapan bacaan memerlukan masa sekitar 250 milisaat! apungan t = dht.readTemperature (); // Baca suhu sebagai Celsius (lalai)
Cukup periksa sama ada sensor DHT berwayar dengan betul atau tidak rosak dan pengawal dapat membaca bacaan daripadanya. Sekiranya bacaan tidak menunjukkan maka mungkin sensornya rosak, tunjukkan sahaja mesej kesalahan dan kembali untuk memeriksa semula tanpa meneruskannya.
if (isnan (h) - isnan (t)) {// Periksa sama ada bacaan gagal dan keluar lebih awal (untuk mencuba lagi). Serial.println (F ("Gagal membaca dari sensor DHT!")); kembali; }
Cetak data sensor di monitor bersiri untuk melakukan debug dan simpan nilai suhu dan kelembapan dalam bentuk rentetan untuk menghantarnya ke firebase. Perhatikan juga bahawa kelewatan minimum yang diperlukan antara dua bacaan dari sensor DHT11 adalah 2 saat, jadi selalu gunakan penundaan lebih besar dari 2 saat. Untuk mengetahui lebih lanjut mengenai DHT11, anda boleh melihat lembaran data rasmi.
Serial.print ("Kelembapan:"); Cetakan bersiri (h); String fireHumid = String (h) + String ("%"); // ubah kelembapan integer ke kelembapan tali Serial.print ("% Temperature:"); Cetakan bersiri (t); Serial.println ("° C"); String fireTemp = String (t) + String ("° C"); kelewatan (4000);
Akhirnya, hantarkan data suhu dan kelembapan ke firebase di jalan “your-project.firebaseio.com/DHT11/Humidity/”.
Firebase.pushString ("/ DHT11 / Kelembapan", fireHumid); // laluan persediaan dan hantar bacaan Firebase.pushString ("/ DHT11 / Temperature", fireTemp); // laluan persediaan dan hantar bacaan
Anda dapat melihat semua data di akaun firebase anda. Cukup pergi ke bahagian " Pangkalan Data " di " Projek Anda " di " Konsol saya " Di Firebase.
Untuk menyiapkan Firebase untuk menghantar dan memantau data, anda boleh merujuk tutorial kami sebelumnya.
Kod lengkap dan Video untuk pemantauan suhu dan kelembapan berdasarkan IoT ini diberikan di bawah.