- Komponente potrebne
- Kružni dijagram
- DHT11 Osjetnik temperature i vlage
- Programiranje NodeMCU ESP8266 Praćenje temperature i vlažnosti uživo
Mikrokontroleri imaju malu internu memoriju koja nije dovoljna za dugotrajno spremanje podataka generiranih senzorima, ili morate koristiti neki vanjski memorijski uređaj ili podatke možete spremiti na neki oblak pomoću interneta. Također, ponekad postaje teško upravljati kada je senzor postavljen na nekom mjestu s ekstremnim uvjetima do kojeg čovjek ne može doći ili ga je teško često posjećivati. Da bismo riješili ovu vrstu problema, uvijek istražujemo načine na koje želimo pratiti podatke senzora u stvarnom vremenu s bilo kojeg mjesta bez ikakve fizičke prisutnosti na tom mjestu.
U ovom se scenariju mogu koristiti baze podataka u stvarnom vremenu, gdje samo moramo povezati neki kontroler koji se može povezati na internet i može razmjenjivati podatke s cloud poslužiteljem. Podaci poslužitelja mogu biti korisni u praćenju ponašanja sustava u stvarnom vremenu, analitike baza podataka, statističke analize i obrade te tumačenja za budući slučaj upotrebe. U tu svrhu postoji puno IoT hardverskih platformi i Cloud platformi. Ako naiđete na poteškoće u pronalaženju prave platforme za svoju IoT aplikaciju, slijedite vezu.
Prije smo već pokrivali ThingSpeak, Adafruit IO i mnoge druge IoT softvere. Danas ćemo graditi sličan projekt gdje ćemo koristiti senzor temperature i vlažnosti DHT11 i NodeMCU ESP8266 modul za bilježenje temperature i vlažnosti u stvarnom vremenu na Googleovom Firebase poslužitelju baze podataka.
Projekt ćemo podijeliti u dva odjeljka. Prvo ćemo započeti sa sastavljanjem hardverskih komponenata i unošenjem firmware-a u njega. I drugo, koristit ćemo Firebase za postavljanje s NodeMCU za razmjenu podataka u stvarnom vremenu. Ako ste novi u ESP8266 ili Firebaseu, slijedite naš prethodni vodič o upravljanju LED-om pomoću Firebase-a.
Komponente potrebne
- NodeMCU ESP8266 modul
- DHT11 Osjetnik temperature i vlage
Kružni dijagram

DHT11 Osjetnik temperature i vlage
DHT11 modul sadrži kompleks vlage i temperature s kalibriranim digitalnim izlaznim signalom, što znači da je DHT11 senzorski modul kombinirani modul za osjet vlage i temperature koji daje kalibrirani digitalni izlazni signal. DHT11 nam daje vrlo precizne vrijednosti vlage i temperature te osigurava visoku pouzdanost i dugotrajnu stabilnost. Ovaj senzor ima komponentu za mjerenje vlažnosti otpornog tipa i komponentu za mjerenje temperature NTC tipa s ugrađenim 8-bitnim mikrokontrolerom koji ima brz odziv i isplativo te je dostupan u 4-pinskom jednorednom paketu.

Prije smo koristili ESP12E za ažuriranje očitavanja DHT11 na web poslužitelju, osim toga možete provjeriti sve projekte temeljene na DHT11 gdje smo koristili DHT11 za sučelje s mnogim drugim mikrokontrolerima poput Arduina, PIC-a, Raspberry-a i ugrađenom meteorološkom stanicom pomoću njih.
Programiranje NodeMCU ESP8266 Praćenje temperature i vlažnosti uživo
Kompletni program s radnim videom dat je na kraju. Ovdje objašnjavamo nekoliko važnih dijelova koda.
Prvo uključite knjižnice za upotrebu ESP8266 i firebasea.
#include
Preuzmite i instalirajte knjižnice slijedeći donje poveznice:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Tijekom kompajliranja , ako dobijete pogrešku da knjižnica ArduinoJson.h nije instalirana, instalirajte je pomoću gore dane veze.
Programirat ćemo NodeMCU da uzima očitanja s DHT11 senzora i gura ga u Firebase svakih 5 sekundi intervala. Postavit ćemo put za guranje podataka. Trenutno su dva parametra viz. vlaga i temperatura šalju se istim roditeljskim putem i različitim dječjim putem.
Ova su dva parametra vrlo važna za komunikaciju s firebaseom. Postavljanje ovih parametara omogućit će razmjenu podataka između i ESP8266 i firebasea. Da biste pronašli ove parametre za svoj projekt, slijedite naš prethodni vodič o postavljanju Firebasea.
#define FIREBASE_HOST "your-project.firebaseio.com" // adresa naziva projekta iz ID-a firebase-a #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // tajni ključ generiran iz firebase-a
Nakon uspješnog pronalaska vjerodajnica, samo zamijenite gornji kod.
Unesite svoj Wi-Fi SSID i lozinku da biste se povezali s mrežom.
#define WIFI_SSID "ime_ mreže" // unesite svoje kućno ili javno ime WiFi-a #define WIFI_PASSWORD "lozinka" // lozinka za wifi ssid
Definirajte DHT pin podataka u NodeMCU. U NodeMCU možete koristiti bilo koji digitalni GPIO pin.
#define DHTPIN D4
DHT knjižnica napravljena je za sve DHT varijante i dolazi s opcijom koju DHT senzor želite koristiti npr. DHT11 ili DHT22. Samo odaberite pravi DHT senzor i nastavite.
#define DHTTYPE DHT11 // odaberite vrstu dht kao DHT 11 ili DHT22 DHT dht (DHTPIN, DHTTYPE);
Povežite se na odabranu Wi-Fi mrežu, a također se povežite s Firebase poslužiteljem baze podataka.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Počnite čitati s pina D4 NodeMCU.
dht.begin ();
Uzmite očitanja vlage i temperature s DHT senzora i spremite kao plutajuću vrijednost.
plutajuće h = dht.readHumidity (); // Očitavanje temperature ili vlažnosti traje oko 250 milisekundi! float t = dht.readTemperature (); // Očitavanje temperature kao Celzija (zadana vrijednost)
Samo provjerite je li DHT senzor pravilno ožičen ili nije oštećen i kontroler može očitavati očitanja s njega. Ako se očitanja ne prikazuju, vjerojatno je senzor oštećen, samo pokažite poruku pogreške i vratite se na ponovnu provjeru bez nastavka.
if (isnan (h) - isnan (t)) {// Provjerite nije li čitanje uspjelo i izađite ranije (da biste pokušali ponovno). Serial.println (F ("Nije uspjelo očitavanje s DHT senzora!")); povratak; }
Ispišite podatke senzora u serijski monitor za otklanjanje pogrešaka i spremite vrijednosti temperature i vlažnosti u obliku niza da biste ih poslali u vatrenu bazu. Također imajte na umu da je minimalno kašnjenje potrebno između dva očitanja sa senzora DHT11 2 sekunde, zato uvijek koristite kašnjenje veće od 2 sekunde. Da biste saznali više o DHT11, možete pogledati službenu tablicu podataka.
Serial.print ("Vlaga:"); Serial.print (h); Niz fireHumid = Niz (h) + Niz ("%"); // pretvaranje vlažnosti cijelog broja u vlažnost niza Serial.print ("% temperature:"); Serial.print (t); Serial.println ("° C"); String fireTemp = Niz (t) + Niz ("° C"); kašnjenje (4000);
Napokon, pošaljite podatke o temperaturi i vlažnosti u vatrostalnu bazu na stazi "your-project.firebaseio.com/DHT11/Humidity/".
Firebase.pushString ("/ DHT11 / Vlaga", fireHumid); // postavljanje puta i slanje očitavanja Firebase.pushString ("/ DHT11 / Temperature", fireTemp); // postavljanje puta i slanje očitanja
Sve podatke možete vidjeti na svom Firebase računu. Samo idite na odjeljak " Baza podataka " u " Vašem projektu " na " Moja konzola " u Firebaseu.

Da biste postavili Firebase za slanje i nadgledanje podataka, možete pogledati naš prethodni vodič.
Kompletni kod i video za ovo praćenje temperature i vlage temeljeno na IoT-u dani su u nastavku.
