- Vaaditut komponentit:
- LM35-lämpötila-anturi:
- LM35: n yhdistäminen NodeMCU: n kanssa:
- Koodin selitys:
- HTML-koodi lämpötilan näyttämiseksi verkkosivulla:
- Työskentely:
Aikaisemmassa NodeMCU-opetusohjelman käytön aloittamisessa näimme Mikä on NodeMCU ja miten voimme ohjelmoida sen Arduino IDE: n avulla . Kuten tiedät, NodeMCU: ssa on Wi-Fi-siru, joten se voi myös muodostaa yhteyden Internetiin. IoT-projektien rakentaminen on erittäin hyödyllistä. Aikaisemmin käytimme ThingSpeakia Arduinon kanssa IoT-lämpömittarin valmistamiseksi, mutta tässä luomme oman verkkosivumme lämpötilan näyttämiseksi.
Tässä opetusohjelmassa tutkimme lisää tästä mielenkiintoisesta MCU: sta ja sukellamme hitaasti esineiden internet-maailmaan yhdistämällä NodeMCU: n Internetiin. Täällä käytämme tätä moduulia huoneen lämpötilan saamiseen verkkoselaimessa, eli teemme verkkopalvelimen näyttämään lämpötilan LM35: n avulla lämpötila-anturina.
Vaaditut komponentit:
- SolmuMCU - ESP12
- LM35 Lämpötila-anturi
- Leipälauta
- Uros-naaras-liittimet
LM35-lämpötila-anturi:
LM35 on analoginen lineaarinen lämpötila-anturi. Sen tuotos on verrannollinen lämpötilaan (celsiusasteina). Käyttölämpötila-alue on -55 ° C - 150 ° C. Lähtöjännite vaihtelee 10 mV vasteena jokaiseen o C: n lämpötilan nousuun tai laskuun. Sitä voidaan käyttää 5 V: n ja 3,3 V: n virtalähteestä, ja valmiustila on alle 60uA.
Huomaa, että LM35 on saatavana 3-sarjan muunnelmina, nimittäin LM35A-, LM35C- ja LM35D-sarjoina. Suurin ero on niiden lämpötilan mittausalueella. LM35D-sarja on suunniteltu mittaamaan 0 - 100 astetta, missä LM35A-sarja on suunniteltu mittaamaan laajempi alue -55 - 155 astetta. LM35C-sarja on suunniteltu mittaamaan -40 - 110 astetta.
Olemme jo käyttäneet LM35: tä useiden muiden mikrokontrollerien kanssa lämpötilan mittaamiseen:
- Digitaalinen lämpömittari LM35- ja 8051-mikrokontrollereilla
- Lämpötilan mittaus LM35- ja AVR-mikrokontrollerilla
- Digitaalinen lämpömittari Arduino- ja LM35-lämpötila-antureilla
- Huonelämpötilan mittaus Vadelma Pi: llä
LM35: n yhdistäminen NodeMCU: n kanssa:
Kytkentäkaavio LM35: n liittämiseksi NodeMCU: han on annettu alla:
LM35 on analoginen anturi, joten meidän on muunnettava tämä analoginen lähtö digitaaliseksi. Tätä varten käytämme NodeMCU: n ADC-nastaa, joka on määritelty A0: ksi. Yhdistämme LM35: n lähdön A0: een.
Lähtöjännitteenä on 3,3 V NodeMCU: n nastoissa. Joten käytämme 3,3 V: n Vcc: nä LM35: lle.
Koodin selitys:
Täydellinen koodi esittelyvideolla on artikkelin lopussa. Tässä selitämme muutamia koodin osia. Selitimme jo koodin lataamisen MCU: een Arduino IDE: n avulla.
Ensinnäkin meidän on sisällytettävä ESP8266wifi-kirjasto, jotta voimme käyttää Wi-Fi-toimintoja.
#sisältää
Kirjoita sitten Wi-Fi-nimesi ja salasanasi ssid- ja salasanakenttään . Alusta myös muuttujat ja käynnistä palvelin portissa 80 tiedonsiirtonopeudella 115200.
const char * ssid = "*********"; // Ssid const char * password = "***********"; // Salasanasi kelluu temp_celsius = 0; float temp_fahrenheit = 0; WiFiServer-palvelin (80); void setup () { Sarja.alku (115200);
Wi-Fi-yhteys muodostetaan kutsumalla näitä toimintoja.
Sarja.println (); Sarja.println (); Serial.print ("Yhdistetään kohteeseen"); Serial.println (ssid); WiFi.begin (ssid, salasana);
Yhteyden muodostaminen voi viedä muutaman sekunnin, joten jatka "…" näyttämistä, kunnes yhteys ei muodostu. Sitten järjestelmä odottaa ja tarkistaa asiakkaan muodostavan yhteyden…
while (WiFi.status ()! = WL_CONNECTED) { viive (500); Sarjaprintti ("."); } Sarja.println (""); Serial.println ("WiFi on kytketty"); server.begin (); Serial.println ("Palvelin aloitettu"); Serial.println (WiFi.localIP ()); }
In silmukka osassa, lukea sensorin arvot ja muuntaa sen Celsius ja Fahrenheit ja näyttää nämä arvot sarja seurata.
void loop () { temp_celsius = (analogRead (A0) * 330,0) / 1023,0; // Analogisten arvojen muuntaminen Celsiukseksi Meillä on 3,3 V aluksella ja tiedämme, että LM35: n lähtöjännite vaihtelee 10 mV jokaista celsiusastetta kohti. Joten, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Sarjaprintti ("Lämpötila ="); Sarja.tulos (temp_celsius); Sarjaprintti ("Celsius");
HTML-koodi lämpötilan näyttämiseksi verkkosivulla:
Näytämme lämpötilan verkkosivulla, jotta siihen pääsee Internetin kautta mistä päin maailmaa tahansa. HTML-koodi on hyvin yksinkertainen; meidän on vain käytettävä client.println- toimintoa kaikuttamaan HTML-koodin jokaista riviä, jotta selain voi suorittaa sen.
Tämä osa näyttää HTML-koodin verkkosivun luomiseksi, joka näyttää lämpötila-arvon.
WiFiClient-asiakas = palvelin.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Sisältötyyppi: teksti / html"); client.println ("Yhteys: sulje"); // yhteys suljetaan vastauksen asiakasohjelman valmistuttua.println ("Päivitä: 10"); // päivitä sivu 10 sekunnin kuluttua client.println (); client.println (""); client.println (""); client.print ("
Digitaalinen lämpömittari
"); client.print ("Lämpötila (* C) = "); client.println (temp_celsius); client.print ("
Lämpötila (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); delay (5000); }Työskentely:
Kun olet ladannut koodin Arduino IDE: n avulla, avaa sarjamonitori ja paina NodeMCU: n Palauta-painiketta.
Nyt voit nähdä kortin olevan yhteydessä Wi-Fi-verkkoon, jonka olet määrittänyt koodissasi, ja sinulla on myös IP. Kopioi tämä IP ja liitä se mihin tahansa verkkoselaimeen. Varmista, että järjestelmän, jolla käytät verkkoselainta, on oltava yhteydessä samaan verkkoon.
Digitaalinen lämpömittari on valmis ja lämpötila päivittyy automaattisesti verkkoselaimessa 10 sekunnin välein.
Jotta tämä verkkosivusto olisi käytettävissä Internetistä, sinun on vain määritettävä Port Forwarding reitittimessä / modeemissa. Tarkista koko koodi ja video alla.
Tarkista myös:
- Raspberry Pi -sääasema: Kosteuden, lämpötilan ja paineen seuranta Internetin kautta
- Live-lämpötilan ja kosteuden tarkkailu Internetissä Arduinon ja ThingSpeakin avulla