- Komponenter, der kræves
- Kredsløbsdiagram
- DHT11 temperatur- og fugtighedssensor
- Programmering af NodeMCU ESP8266 Live temperatur- og fugtighedsovervågning
Mikrocontrollere har lille intern hukommelse, som ikke er nok til at gemme sensorer genereret data i lang tid, enten skal du bruge en ekstern hukommelsesenhed eller kan gemme dataene på en eller anden sky ved hjælp af internettet. Også engang bliver det vanskeligt at styre, når sensoren er installeret på et sted med ekstrem tilstand, hvor mennesker ikke kan nå eller det er svært at besøge der ofte. For at rette op på denne slags problemer ser vi altid på de måder, hvor vi vil overvåge sensordataene i realtid fra hvor som helst uden nogen fysisk tilstedeværelse det sted.
De realtid databaser kan bruges i dette scenario, hvor vi bare nødt til at interface nogle controller, som kan forbindes til internettet og kan være i stand til at udveksle data med cloud-server. Serverdataene kan være nyttige til overvågning af systemadfærd i realtid, databaseanalyser, statistisk analyse og behandling og fortolkning til fremtidig brugssag. Der er mange IoT-hardwareplatforme og Cloud-platforme til rådighed til at tjene dette formål. Hvis du finder vanskeligheder med at finde den rigtige platform til din IoT-applikation, skal du følge linket.
Tidligere dækkede vi allerede ThingSpeak, Adafruit IO og mange andre IoT-software. I dag bygger vi et lignende projekt, hvor vi bruger en temperatur- og fugtighedsføler DHT11 og et NodeMCU ESP8266-modul til at logge temperaturen og fugtigheden i realtid på Googles Firebase-databaseserver.
Vi deler projektet i to sektioner. For det første starter vi med at samle hardwarekomponenterne og uploade firmware til den. Og for det andet bruger vi Firebase til at konfigurere med NodeMCU til at udveksle realtidsdata. Hvis du er ny på ESP8266 eller Firebase, skal du følge vores tidligere vejledning om styring af LED ved hjælp af Firebase.
Komponenter, der kræves
- NodeMCU ESP8266-modul
- DHT11 temperatur- og fugtighedsføler
Kredsløbsdiagram
DHT11 temperatur- og fugtighedssensor
DHT11-modulet har et fugtigheds- og temperaturkompleks med et kalibreret digitalt signaludgang, hvilket betyder, at DHT11-sensormodulet er et kombineret modul til registrering af fugtighed og temperatur, der giver et kalibreret digitalt udgangssignal. DHT11 giver os en meget præcis værdi af fugtighed og temperatur og sikrer høj pålidelighed og langvarig stabilitet. Denne sensor har en resistiv type fugtighedsmålingskomponent og NTC-type temperaturmålingskomponent med en 8-bit mikrocontroller indbygget, som har en hurtig respons og omkostningseffektiv og tilgængelig i 4-polet enkeltpakke.
Vi har tidligere brugt ESP12E til at opdatere DHT11-aflæsningerne på webserveren, bortset fra at du kan kontrollere alle DHT11-baserede projekter, hvor vi har brugt DHT11 til at grænseflade med mange andre mikrocontrollere som Arduino, PIC, Raspberry og bygget vejrstation ved hjælp af dem.
Programmering af NodeMCU ESP8266 Live temperatur- og fugtighedsovervågning
Komplet program med fungerende video er givet i slutningen. Her forklarer vi nogle få vigtige dele af koden.
Inkluder først bibliotekerne til brug af ESP8266 og firebase.
#omfatte
Download og installer bibliotekerne ved at følge nedenstående links:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Hvis du får fejl, når ArduinoJson.h-biblioteket ikke er installeret under kompilering , skal du installere det ved hjælp af linket ovenfor.
Vi programmerer NodeMCU til at tage aflæsninger fra DHT11-sensoren og skubbe den til Firebase hvert 5. sekunders interval. Vi sætter en sti til at skubbe data. Lige nu to parametre nemlig. fugtighed og temperatur sendes i samme forældresti og forskellige stier.
Disse to parametre er meget vigtige for at kommunikere med firebase. Indstilling af disse parametre gør det muligt at udveksle data mellem og ESP8266 og firebase. For at finde disse parametre til dit projekt skal du følge vores tidligere tutorial om Firebase Setup.
#definer FIREBASE_HOST "dit-projekt.firebaseio.com" // projektnavnet adresse fra firebase id #definer FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // den hemmelige nøgle genereret fra firebase
Efter at have fundet legitimationsoplysningerne, skal du bare erstatte i ovenstående kode.
Indtast dit Wi-Fi SSID og din adgangskode for at oprette forbindelse til dit netværk.
#definer WIFI_SSID "netværksnavn" // indtast dit hjem eller offentlige wifi navn #definer WIFI_PASSWORD "adgangskode" // adgangskode til wifi ssid
Definer DHT-datapinnen i NodeMCU. Du kan bruge enhver Digital GPIO-pin i NodeMCU.
#definer DHTPIN D4
DHT-biblioteket er lavet til alle DHT-varianter og leveres med mulighed for, hvilken DHT-sensor du vil bruge til f.eks. DHT11 eller DHT22. Vælg bare den rigtige DHT-sensor og fortsæt.
#definer DHTTYPE DHT11 // vælg dht-type som DHT 11 eller DHT22 DHT dht (DHTPIN, DHTTYPE);
Opret forbindelse til det valgte Wi-Fi-netværk, og opret også forbindelse til firebase-databaseserveren.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Begynd at læse på pin D4 i NodeMCU.
dht.begin ();
Tag fugtigheds- og temperaturaflæsninger fra DHT-sensoren, og gem som flydeværdi.
flyde h = dht.readHumidity (); // Aflæsningstemperatur eller fugtighed tager cirka 250 millisekunder! flyde t = dht.readTemperature (); // Læs temperatur som Celsius (standard)
Kontroller bare , om DHT-sensoren er korrekt tilsluttet, eller at den ikke er beskadiget, og at controlleren kan læse aflæsninger fra den. Hvis aflæsningerne ikke vises, er sensoren sandsynligvis beskadiget, skal du bare vise en fejlmeddelelse og vende tilbage til kontrol igen uden at gå videre.
hvis (isnan (h) - isnan (t)) {// Kontroller, om nogen læsninger mislykkedes, og afslut tidligt (for at prøve igen). Serial.println (F ("Kunne ikke læse fra DHT-sensor!")); Vend tilbage; }
Udskriv sensordata i seriel skærm til fejlfinding og gem værdierne for temperatur og fugtighed i strengform for at sende dette til ildstedet. Bemærk også, at den minimumsforsinkelse, der kræves mellem to målinger fra DHT11-sensoren, er 2 sekunder, så brug altid forsinkelse, der er større end 2 sekunder. For at vide mere om DHT11 kan du se på det officielle datablad.
Serial.print ("Fugtighed:"); Serial.print (h); String fireHumid = String (h) + String ("%"); // konverter helfugtighed til strengfugtighed Serial.print ("% Temperature:"); Serial.print (t); Serial.println ("° C"); String fireTemp = String (t) + String ("° C"); forsinkelse (4000);
Til sidst skal du sende data om temperatur og fugtighed til firebase på stien “your-project.firebaseio.com/DHT11/Humidity/”.
Firebase.pushString ("/ DHT11 / Humidity", fireHumid); // opsæt sti og send aflæsninger Firebase.pushString ("/ DHT11 / Temperature", fireTemp); // opsætningssti og send aflæsninger
Du kan se alle data på din firebase-konto. Gå bare til afsnittet " Database " i " Dit projekt " på " Min konsol " I Firebase.
For at konfigurere Firebase til afsendelse og overvågning af data kan du se vores tidligere vejledning.
Komplet kode og video til denne IoT-baserede temperatur- og fugtighedsovervågning er angivet nedenfor.