- Nepieciešamās sastāvdaļas
- Ķēdes shēma
- DHT11 temperatūras un mitruma sensors
- Programmēšana NodeMCU ESP8266 Tiešās temperatūras un mitruma monitorings
Mikrokontrolleriem ir maza iekšējā atmiņa, ar kuru nepietiek, lai sensoru saglabātos datus saglabātu uz ilgu laiku, vai nu jums ir jāizmanto kāda ārējā atmiņas ierīce, vai arī varat saglabāt datus kādā mākonī, izmantojot internetu. Arī dažreiz to ir grūti pārvaldīt, ja sensors tiek izvietots kādā ārkārtēja stāvokļa vietā, kur cilvēks nevar sasniegt vai ir grūti tur bieži apmeklēt. Lai novērstu šāda veida problēmas, mēs vienmēr meklējam veidus, kā mēs vēlamies reāllaikā kontrolēt sensora datus no jebkuras vietas bez fiziskas klātbūtnes šajā vietā.
Ar reālā laika datu bāzes var izmantot šajā scenārijā, kur mums vienkārši ir saskarnes kādu kontrolieri, kas var tikt savienots ar internetu, un var būt iespēja apmainīties ar datiem ar mākonis serveri. Servera dati var būt noderīgi, lai uzraudzītu reāllaika sistēmas darbību, datu bāzes analīzi, statistisko analīzi un apstrādi, kā arī interpretāciju nākotnes lietošanai. Šim nolūkam ir pieejamas daudzas IoT aparatūras platformas un mākoņa platformas. Ja jums rodas grūtības atrast pareizo IoT lietojumprogrammu platformu, noklikšķiniet uz saites.
Iepriekš mēs jau aplūkojām ThingSpeak, Adafruit IO un daudzas citas IoT programmatūras. Šodien mēs veidosim līdzīgu projektu, kurā temperatūras un mitruma sensoru DHT11 un NodeMCU ESP8266 moduli izmantosim, lai reāllaikā reģistrētu temperatūru un mitrumu Google Firebase datu bāzes serverī.
Mēs sadalīsim projektu divās sadaļās. Pirmkārt, mēs sāksim ar aparatūras komponentu montāžu un programmaparatūras augšupielādi tajā. Otrkārt, mēs izmantosim Firebase, lai iestatītu ar NodeMCU reāllaika datu apmaiņai. Ja esat jauns ESP8266 vai Firebase lietotājs, izpildiet mūsu iepriekšējo apmācību par LED vadību, izmantojot Firebase.
Nepieciešamās sastāvdaļas
- NodeMCU ESP8266 modulis
- DHT11 temperatūras un mitruma sensors
Ķēdes shēma
DHT11 temperatūras un mitruma sensors
DHT11 modulim ir mitruma un temperatūras komplekss ar kalibrētu digitālā signāla izvadi. DHT11 sensora modulis ir kombinēts modulis mitruma un temperatūras uztveršanai, kas dod kalibrētu digitālo izejas signālu. DHT11 dod mums ļoti precīzu mitruma un temperatūras vērtību un nodrošina augstu uzticamību un ilgtermiņa stabilitāti. Šim sensoram ir rezistīva tipa mitruma mērīšanas komponents un NTC tipa temperatūras mērīšanas komponents ar iebūvētu 8 bitu mikrokontrolleru, kam ir ātra reakcija un izmaksu ziņā efektīvs risinājums, un tas ir pieejams 4 kontaktu vienas rindas iepakojumā.
Iepriekš mēs izmantojām ESP12E, lai atjauninātu DHT11 rādījumus tīmekļa serverī, izņemot to, ka jūs varat pārbaudīt visus uz DHT11 balstītos projektus, kur mēs esam izmantojuši DHT11, lai mijiedarbotos ar daudziem citiem mikrokontrolleriem, piemēram, Arduino, PIC, Raspberry, un izveidojām meteoroloģisko staciju, izmantojot tos.
Programmēšana NodeMCU ESP8266 Tiešās temperatūras un mitruma monitorings
Beigās ir norādīta pilna programma ar darbojošos video. Šeit mēs izskaidrojam dažas svarīgas koda daļas.
Vispirms iekļaujiet bibliotēkas, lai izmantotu ESP8266 un firebase.
# iekļaut
Lejupielādējiet un instalējiet bibliotēkas, izmantojot šādas saites:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Kaut arī apkopojot , ja jums kļūda, ArduinoJson.h bibliotēka nav uzstādīts, tad, lūdzu, instalējiet to, izmantojot saiti dota iepriekš.
Mēs ieprogrammēsim NodeMCU, lai ņemtu rādījumus no DHT11 sensora un ik pēc 5 intervāla sekundēm virzītu to uz Firebase. Mēs noteiksim ceļu datu nosūtīšanai. Šobrīd divi parametri, ti. mitrums un temperatūra tiek nosūtīti vienā vecāku ceļā un citā bērna ceļā.
Šie divi parametri ir ļoti svarīgi, lai sazinātos ar firebase. Šo parametru iestatīšana ļaus veikt datu apmaiņu starp un ESP8266 un Firebase. Lai atrastu šos parametrus savam projektam, izpildiet mūsu iepriekšējo apmācību par Firebase iestatīšanu.
#define FIREBASE_HOST "your-project.firebaseio.com" // projekta nosaukuma adrese no firebase id #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // slepenā atslēga, kas ģenerēta no firebase
Pēc veiksmīgas akreditācijas datu atrašanas vienkārši aizstājiet iepriekš minēto kodu.
Lai izveidotu savienojumu ar savu tīklu, ievadiet savu Wi-Fi SSID un paroli.
#define WIFI_SSID "network_name" // ievadiet mājas vai publiskā wifi vārdu #define WIFI_PASSWORD "parole" // wifi ssid parole
NodeMCU definējiet DHT datu tapu. NodeMCU var izmantot jebkuru digitālo GPIO tapu.
#define DHTPIN D4
DHT bibliotēka ir paredzēta visiem DHT variantiem, un tai ir opcija, kuru DHT sensoru vēlaties izmantot, piemēram, DHT11 vai DHT22. Vienkārši izvēlieties pareizo DHT sensoru un turpiniet.
#define DHTTYPE DHT11 // atlasiet dht veidu kā DHT 11 vai DHT22 DHT dht (DHTPIN, DHTTYPE);
Izveidojiet savienojumu ar izvēlēto Wi-Fi tīklu un izveidojiet savienojumu arī ar Firebase datu bāzes serveri.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Sāciet lasīt ar NodeMCU tapu D4.
dht.sākt ();
No DHT sensora ņemiet mitruma un temperatūras rādījumus un saglabājiet kā peldošo vērtību.
pludiņš h = dht.lasītMitrums (); // Temperatūras vai mitruma nolasīšana aizņem apmēram 250 milisekundes! pludiņš t = dht.lasītTemperatūra (); // Lasa temperatūru kā Celsija (noklusējums)
Vienkārši pārbaudiet, vai DHT sensors ir pareizi pievienots vai vai tas nav bojāts, un kontrolieris var nolasīt no tā rādījumus. Ja rādījumi netiek rādīti, iespējams, sensors ir bojāts, vienkārši parādiet kļūdas ziņojumu un atgriezieties pārbaudīt vēlreiz, neveicot uz priekšu.
if (isnan (h) - isnan (t)) {// Pārbaudiet, vai kāds lasījums neizdevās, un izejiet agri (lai mēģinātu vēlreiz). Serial.println (F ("Neizdevās nolasīt no DHT sensora!")); atgriešanās; }
Drukājiet sensora datus sērijveida monitorā atkļūdošanai un saglabājiet temperatūras un mitruma vērtības virknes formā, lai tos nosūtītu uz firebase. Ņemiet vērā arī to, ka minimālā kavēšanās starp diviem rādījumiem no DHT11 sensora ir 2 sekundes, tāpēc vienmēr izmantojiet aizkavi, kas pārsniedz 2 sekundes. Lai uzzinātu vairāk par DHT11, varat iepazīties ar oficiālo datu lapu.
Serial.print ("Mitrums:"); Sērijas.druka (h); String fireHumid = virkne (h) + virkne ("%"); // pārveidot veselu skaitlisko mitrumu par virknes mitrumu Serial.print ("% Temperature:"); Sērijas.druka (t); Serial.println ("° C"); String fireTemp = virkne (t) + virkne ("° C"); kavēšanās (4000);
Visbeidzot, nosūtiet temperatūras un mitruma datus uz firebase uz ceļa “your-project.firebaseio.com/DHT11/Humidity/”.
Firebase.pushString ("/ DHT11 / mitrums", fireHumid); // iestatīšanas ceļš un nosūtiet rādījumus Firebase.pushString ("/ DHT11 / Temperatūra", fireTemp); // iestatīšanas ceļš un nosūtīt rādījumus
Visus datus varat skatīt savā Firebase kontā. Vienkārši dodieties uz sadaļu “ Datu bāze ” sadaļā “ Jūsu projekts ”, Firebase sadaļā “ Mana konsole ”.
Lai iestatītu Firebase datu sūtīšanai un uzraudzībai, varat uzzināt mūsu iepriekšējo apmācību.
Pilns kods un video par šo IoT balstīto temperatūras un mitruma monitoringu ir sniegts zemāk.