- Būtini komponentai:
- LM35 temperatūros jutiklis:
- LM35 prijungimas prie „NodeMCU“:
- Kodo paaiškinimas:
- HTML kodas, rodantis temperatūrą tinklalapyje:
- Darbas:
Ankstesnėje „NodeMCU“ mokymo pradžios programoje pamatėme, kas yra „NodeMCU“ ir kaip mes galime ją programuoti naudodami „Arduino IDE“ . Kaip žinote, „NodeMCU“ viduje yra „Wi-Fi“ lustas, todėl jis taip pat gali prisijungti prie interneto. Labai naudinga kurti DI projektus. Anksčiau „IoT“ termometrui gaminti naudojome „ThingSpeak“ su „Arduino“, tačiau čia sukursime savo tinklalapį, kuriame bus rodoma temperatūra.
Šioje pamokoje mes išnagrinėsime daugiau apie šį įdomų MCU ir pamažu neriame daiktų interneto pasaulyje, sujungdami „NodeMCU“ su internetu. Čia mes naudosime šį modulį norėdami gauti kambario temperatūrą žiniatinklio naršyklėje, ty mes sukursime interneto serverį, kuris rodys temperatūrą naudodamas LM35 kaip temperatūros jutiklį.
Būtini komponentai:
- MazgasMCU - ESP12
- LM35 temperatūros jutiklis
- Bandomoji Lenta
- Vyrų ir moterų jungtys
LM35 temperatūros jutiklis:
LM35 yra analoginis tiesinis temperatūros jutiklis. Jo galia yra proporcinga temperatūrai (Celsijaus laipsniais). Darbinės temperatūros diapazonas yra nuo -55 ° C iki 150 ° C. Išėjimo įtampa kinta 10mV, reaguojant į kiekvieną o C temperatūros pakilimą ar kritimą. Jį galima valdyti iš 5 V ir 3,3 V maitinimo šaltinio, o stovėjimo įtampa yra mažesnė nei 60uA.
Atkreipkite dėmesį, kad LM35 yra 3 serijų variantai, būtent LM35A, LM35C ir LM35D serijos. Pagrindinis skirtumas yra jų temperatūros matavimo diapazone. LM35D serija skirta matuoti nuo 0 iki 100 laipsnių Celsijaus, kur kaip LM35A serija skirta matuoti platesnį diapazoną nuo -55 iki 155 laipsnių Celsijaus. „LM35C“ serija skirta matuoti nuo -40 iki 110 laipsnių Celsijaus.
Temperatūrai matuoti mes jau naudojome LM35 su daugeliu kitų mikrovaldiklių:
- Skaitmeninis termometras, naudojant mikrovaldiklį LM35 ir 8051
- Temperatūros matavimas naudojant LM35 ir AVR mikrovaldiklį
- Skaitmeninis termometras su „Arduino“ ir „LM35“ temperatūros jutikliu
- Kambario temperatūros matavimas naudojant avietę Pi
LM35 prijungimas prie „NodeMCU“:
LM35 prijungimo prie „NodeMCU“ schema pateikta žemiau:
LM35 yra analoginis jutiklis, todėl turime konvertuoti šią analoginę išvestį į skaitmeninę. Tam mes naudojame NodeMCU ADC kaištį, kuris apibrėžiamas kaip A0. LM35 išvestį sujungsime su A0.
„NodeMCU“ kaiščiuose išėjimo įtampa yra 3,3 V. Taigi, LM35 naudosime 3,3 V įtampą kaip Vcc.
Kodo paaiškinimas:
Visas kodas su demonstraciniu vaizdo įrašu pateikiamas straipsnio pabaigoje. Čia mes paaiškiname keletą kodo dalių. Mes jau paaiškinome, kaip į „MCU“ įkelti kodą naudojant „Arduino IDE“.
Pirma, norėdami pasiekti „Wi-Fi“ funkcijas, turime įtraukti ESP8266wifi biblioteką.
# įtraukti
Tada lauke SSID ir slaptažodis įveskite savo „Wi-Fi“ vardą ir slaptažodį. Taip pat inicializuokite kintamuosius ir paleiskite serverį 80 prievade su perdavimo sparta 115200.
const char * ssid = "*********"; // Jūsų ssid const char * password = "***********"; // Jūsų slaptažodis plūduriuoja temp_celsius = 0; plūdės temp_fahrenheit = 0; „WiFiServer“ serveris (80); negaliojanti sąranka () { Serial.begin (115200);
„Wi-Fi“ ryšys nustatomas iškviečiant šias funkcijas.
Serijinis.println (); Serijinis.println (); Serial.print („Prisijungimas prie“); Serial.println (ssid); „WiFi.begin“ (ssid, slaptažodis);
Prisijungimas gali užtrukti kelias sekundes, todėl rodykite „…“, kol ryšys nebus užmegztas. Tada sistema ir toliau lauks, kol klientas prisijungs…
while (WiFi.status ()! = WL_CONNECTED) { delsa (500); Serijinis spaudinys ("."); } Serial.println (""); Serial.println („„ WiFi “yra prijungtas“); server.begin (); Serial.println („Serveris paleistas“); Serial.println („WiFi.localIP“ ()); }
Be ciklo dalyje, skaityti jutiklių reikšmes ir konvertuoti jį į Celsijaus ir Farenheito ir rodyti šiuos vertybes serijos monitorių.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Norėdami konvertuoti analogines vertes į Celsijaus, mūsų plokštėje yra 3,3 V ir žinome, kad LM35 išėjimo įtampa kinta 10 mV kiekvienam Celsijaus laipsnio kilimo / kritimo laipsniui. Taigi, (A0 * 3300/10 ) / 1023 = Celsijaus temp_fahrenheit = Celsijaus * 1,8 + 32,0; Serial.print („Temperatūra =“); Serial.print (temp_celsius); Serial.print („Celsijaus“);
HTML kodas, rodantis temperatūrą tinklalapyje:
Temperatūrą rodome tinklalapyje, kad ją būtų galima pasiekti iš bet kurios pasaulio vietos per internetą. HTML kodas yra labai paprastas; mes tiesiog turime naudoti funkciją client.println, kad atkartotume kiekvieną HTML kodo eilutę, kad naršyklė galėtų ją įvykdyti.
Šioje dalyje rodomas HTML kodas, norint sukurti tinklalapį, kuriame rodoma temperatūros vertė.
„WiFiClient“ klientas = server.available (); klientas.println ("HTTP / 1,1 200 gerai"); klientas.println ("Turinio tipas: tekstas / html"); klientas.println ("Ryšys: uždaryti"); // ryšys bus uždarytas baigus atsakymo klientą.println ("Atnaujinti: 10"); // atnaujinti puslapį po 10 sek klientas.println (); klientas.println (""); klientas.println (""); client.print ("
Skaitmeninis termometras
"); client.print ("Temperatūra (* C) = "); klientas.println (temp_celsius); klientas.printas ("
Temperatūra (F) = "); klientas.println (temp_fahrenheit); klientas.printas ("
"); klientas.println (" "); delsa (5000); }Darbas:
Įkėlę kodą naudodami „Arduino IDE“, atidarykite nuoseklųjį monitorių ir „NodeMCU“ paspauskite mygtuką Reset.
Dabar galite matyti, kad lenta yra prijungta prie „Wi-Fi“ tinklo, kurį apibrėžėte savo kode, taip pat turite IP. Nukopijuokite šį IP ir įklijuokite į bet kurią žiniatinklio naršyklę. Įsitikinkite, kad jūsų sistema, kurioje naudojate žiniatinklio naršyklę, turėtų prisijungti prie to paties tinklo.
Jūsų skaitmeninis termometras yra paruoštas ir temperatūra kas 10 sek. Bus automatiškai atnaujinama žiniatinklio naršyklėje.
Norėdami, kad šis tinklalapis būtų pasiekiamas iš interneto, tiesiog turite nustatyti prievado persiuntimą savo maršrutizatoriuje / modeme. Žemiau patikrinkite visą kodą ir vaizdo įrašą.
Taip pat patikrinkite:
- „Raspberry Pi“ meteorologinė stotis: drėgmės, temperatūros ir slėgio stebėjimas internete
- Tiesioginis temperatūros ir drėgmės stebėjimas internetu naudojant „Arduino“ ir „ThingSpeak“