- Tarvittavat komponentit
- Piirikaavio
- DHT11 lämpötila- ja kosteusanturi
- NodeMCU ESP8266 Live-lämpötilan ja kosteuden seurannan ohjelmointi
Mikrokontrollereissa on pieni sisäinen muisti, joka ei riitä antureiden tuottaman datan tallentamiseen pitkään, joko sinun on käytettävä ulkoista muistilaitetta tai voit tallentaa tiedot johonkin pilveen Internetin avulla. Joskus on vaikea hallita, kun anturia käytetään jossakin äärimmäisissä olosuhteissa, joihin ihminen ei pääse tai johon on vaikea vierailla usein. Tämäntyyppisten ongelmien korjaamiseksi etsimme aina tapoja, joilla haluamme seurata anturitietoja reaaliajassa mistä tahansa ilman fyysistä läsnäoloa kyseisessä paikassa.
Reaaliaikainen tietokantoja voidaan käyttää tässä tilanteessa, jossa meidän on vain käyttöliittymä joitakin ohjaimeen, joka voidaan liittää internet ja voi pystyä vaihtamaan tietoja pilvi palvelimelle. Palvelintiedoista voi olla hyötyä reaaliaikaisen järjestelmän käyttäytymisen, tietokanta-analytiikan, tilastollisen analyysin ja käsittelyn sekä tulkinnan tulevaa käyttöä varten. Tätä tarkoitusta varten on käytettävissä paljon IoT-laitteistoalustoja ja pilvialustoja. Jos sinulla on vaikeuksia löytää oikea foorumi IoT-sovelluksellesi, seuraa linkkiä.
Aikaisemmin käsiteltiin jo ThingSpeakia, Adafruit IO: ta ja monia muita IoT-ohjelmistoja. Tänään rakennamme samanlaista projektia, jossa lämpötilan ja kosteuden tunnistimen DHT11 ja NodeMCU ESP8266 -moduulin avulla kirjataan lämpötila ja kosteus reaaliajassa Googlen Firebase-tietokantapalvelimeen.
Jaamme projektin kahteen osaan. Ensinnäkin aloitamme laitteistokomponenttien kokoamisen ja laiteohjelmiston lataamisen siihen. Toiseksi käytämme Firebasea asetusten määrittämiseen NodeMCU: n kanssa reaaliaikaisten tietojen vaihtamiseksi. Jos olet uusi ESP8266 tai Firebase, seuraa edellistä oppaamme LED-valojen ohjaamisesta Firebasen avulla.
Tarvittavat komponentit
- NodeMCU ESP8266 -moduuli
- DHT11 lämpötila- ja kosteusanturi
Piirikaavio
DHT11 lämpötila- ja kosteusanturi
DHT11-moduulissa on kosteus- ja lämpötilakompleksi, jossa on kalibroitu digitaalinen signaalilähtö. DHT11-anturimoduuli on yhdistetty moduuli kosteuden ja lämpötilan tunnistamiseen, joka antaa kalibroidun digitaalisen lähtösignaalin. DHT11 antaa meille erittäin tarkan kosteuden ja lämpötilan arvon ja varmistaa korkean luotettavuuden ja pitkän aikavälin vakauden. Tässä anturissa on resistiivinen kosteudenmittauskomponentti ja NTC-tyyppinen lämpötilanmittauskomponentti, jossa on sisäänrakennettu 8-bittinen mikro-ohjain, jolla on nopea vaste ja kustannustehokkuus ja joka on saatavana 4-nastaisessa yksirivipaketissa.
Aikaisemmin käytimme ESP12E: tä päivittämään DHT11-lukemat verkkopalvelimessa, lukuun ottamatta sitä, että voit tarkistaa kaikki DHT11-pohjaiset projektit, joissa olemme käyttäneet DHT11: tä liittymään monien muiden mikrokontrollerien, kuten Arduino, PIC, Raspberry, kanssa ja rakentaneet niitä käyttävän sääaseman.
NodeMCU ESP8266 Live-lämpötilan ja kosteuden seurannan ohjelmointi
Täydellinen ohjelma ja toimiva video annetaan lopussa. Tässä selitämme muutamia tärkeitä koodin osia.
Sisällytä ensin kirjastot ESP8266: n ja firebasen käyttöä varten.
#sisältää
Lataa ja asenna kirjastot seuraavien linkkien avulla:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
Koostettaessa , jos saat virheilmoituksen, ArduinoJson.h kirjasto ei ole asennettu niin asenna se käyttäen linkkiä annettu edellä.
Ohjelmoimme NodeMCU: n ottamaan lukemat DHT11-anturista ja työntämään sen Firebaseen 5 sekunnin välein. Asetamme polun tietojen siirtämiselle. Tällä hetkellä kaksi parametria eli. kosteus ja lämpötila lähetetään samalla vanhemmalla polulla ja eri lapsen polulla.
Nämä kaksi parametria ovat erittäin tärkeitä kommunikoida firebasen kanssa. Näiden parametrien asettaminen mahdollistaa tiedonsiirron ESP8266: n ja firebase: n välillä. Löydät nämä parametrit projektillesi seuraamalla edellistä Firebase-asennusohjetta.
#define FIREBASE_HOST "oma-project.firebaseio.com" // projektin nimiosoite firebase- tunnuksesta #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // salainen avain, joka on luotu firebase-ohjelmasta
Kun olet löytänyt tunnistetiedot onnistuneesti, korvaa vain yllä oleva koodi.
Anna Wi-Fi SSID ja salasana muodostaaksesi yhteyden verkkoon.
#define WIFI_SSID "verkon_nimi" // syötä kotisi tai julkisen wifisi nimi # määrittele WIFI_PASSWORD "salasana" // wifin salasana
Määritä DHT-tietotappi NodeMCU: ssa. Voit käyttää mitä tahansa digitaalista GPIO-nastaa NodeMCU: ssa.
#define DHTPIN D4
DHT-kirjasto on tehty kaikille DHT-muunnelmille, ja siinä on vaihtoehto, mitä DHT-anturia haluat käyttää esimerkiksi DHT11: lle tai DHT22: lle. Valitse vain oikea DHT-anturi ja jatka.
#define DHTTYPE DHT11 // valitse dht-tyypiksi DHT 11 tai DHT22 DHT dht (DHTPIN, DHTTYPE);
Muodosta yhteys valittuun Wi-Fi-verkkoon ja muodosta yhteys myös Firebase-tietokantapalvelimeen.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Aloita lukemista NodeMCU: n nastasta D4.
dht. alku ();
Ota kosteus- ja lämpötilalukemat DHT-anturista ja tallenna ne kelluvana arvona.
uimuri h = dht. lukea kosteus (); // Lämpötilan tai kosteuden lukeminen kestää noin 250 millisekuntia! kelluva t = dht. lukulämpötila (); // Lue lämpötila celsiusasteena (oletus)
Tarkista vain, onko DHT-anturi kytketty oikein vai onko se vaurioitunut, ja ohjain pystyy lukemaan lukemia siitä. Jos lukemat eivät näy, anturi on todennäköisesti vaurioitunut, näytä vain virheilmoitus ja palaa tarkistamaan uudelleen jatkamatta eteenpäin.
if (isnan (h) - isnan (t)) {// Tarkista, jos jokin luku epäonnistui, ja poistu aikaisin (yritä uudelleen). Serial.println (F ("DHT-anturin lukeminen epäonnistui!")); palata; }
Tulosta anturitiedot sarjamonitorissa virheenkorjausta varten ja tallenna lämpötilan ja kosteuden arvot merkkijonona lähettääkseen ne tulipesään. Huomaa myös, että vähimmäisviive, joka vaaditaan kahden lukemisen välillä DHT11-anturista, on 2 sekuntia, joten käytä aina yli 2 sekunnin viivettä. Jos haluat tietää enemmän DHT11: stä, tutustu viralliseen tietolomakkeeseen.
Sarja.tulos ("Kosteus:"); Sarjaprintti (h); Merkkijono fireHumid = Merkkijono (h) + Merkkijono ("%"); // muunna kokonaisluku kosteudesta merkkijonokosteudeksi Serial.print ("% Temperature:"); Sarjaprintti (t); Serial.println ("° C"); Merkkijono fireTemp = Merkkijono (t) + Merkkijono ("° C"); viive (4000);
Viimeinkin lähetä lämpötila- ja kosteustiedot firebaseen polulle “oma-project.firebaseio.com/DHT11/Kosteus/”.
Firebase.pushString ("/ DHT11 / Kosteus", fireHumid); // asetuspolku ja lähetä lukemat Firebase.pushString ("/ DHT11 / Lämpötila", fireTemp); // asennuspolku ja lähetä lukemat
Näet kaikki Firebase-tilisi tiedot. Mene vain ” Tietokanta ” luvussa ” Project ” at ” Minun konsoli ” In Firebase.
Voit määrittää Firebasen lähettämään ja seuraamaan tietoja lähettämällä edellisen oppaamme.
Täydellinen koodi ja video tälle IoT-pohjaiselle lämpötilan ja kosteuden seurannalle on annettu alla.