- Componente necesare:
- Senzor de temperatură LM35:
- Conectarea LM35 cu NodeMCU:
- Explicatie cod:
- Cod HTML pentru a afișa temperatura pe pagina web:
- Lucru:
În tutorialul anterior Noțiuni introductive despre NodeMCU, am văzut Ce este NodeMCU și cum îl putem programa folosind Arduino IDE . După cum știți, NodeMCU are un cip Wi-Fi în interior, deci se poate conecta și la internet. Este foarte util să construiești proiecte IoT. Am folosit anterior ThingSpeak cu Arduino pentru a face termometru IoT, dar aici vom crea propria noastră pagină web pentru a afișa temperatura.
În acest tutorial vom explora mai multe despre acest MCU interesant și încet ne scufundăm în lumea Internetului lucrurilor conectându-ne NodeMCU la Internet. Aici vom folosi acest modul pentru a obține temperatura camerei pe browserul web, adică vom crea un server web pentru a afișa temperatura folosind LM35 ca senzor de temperatură.
Componente necesare:
- NodeMCU - ESP12
- Senzor de temperatură LM35
- Breadboard
- Conectori masculin-feminin
Senzor de temperatură LM35:
LM35 este un senzor analogic de temperatură liniară. Ieșirea sa este proporțională cu temperatura (în grade Celsius). Gama de temperatură de funcționare este de la -55 ° C la 150 ° C. Tensiunea de ieșire variază în funcție de 10mV ca răspuns la fiecare o creștere C sau o scădere a temperaturii. Poate fi acționat de la o sursă de alimentare de 5V și de 3,3 V, iar curentul stand by este mai mic de 60uA.
Rețineți că LM35 este disponibil în 3 variante de serie și anume seriile LM35A, LM35C și LM35D. Principala diferență constă în domeniul lor de măsurare a temperaturii. Seria LM35D este concepută pentru a măsura 0 până la 100 de grade Celsius, unde, la fel ca seria LM35A, este proiectată pentru a măsura o gamă mai largă de -55 până la 155 de grade Celsius. Seria LM35C este concepută pentru a măsura de la -40 la 110 grade Celsius.
Am folosit deja LM35 cu multe alte microcontrolere pentru a măsura temperatura:
- Termometru digital cu microcontroler LM35 și 8051
- Măsurarea temperaturii utilizând microcontrolerul LM35 și AVR
- Termometru digital cu senzor de temperatură Arduino și LM35
- Măsurarea temperaturii camerei cu Raspberry Pi
Conectarea LM35 cu NodeMCU:
Diagrama circuitului pentru conectarea LM35 cu NodeMCU este prezentată mai jos:
LM35 este un senzor analogic, deci trebuie să convertim această ieșire analogică în digitală. Pentru aceasta folosim pinul ADC al NodeMCU care este definit ca A0. Vom conecta ieșirea LM35 la A0.
Avem 3,3 V ca tensiune de ieșire pe pinii NodeMCU. Deci, vom folosi 3.3V ca Vcc pentru LM35.
Explicatie cod:
Codul complet cu demonstrația video este dat la sfârșitul articolului. Aici explicăm câteva părți ale codului. Am explicat deja încărcarea codului în MCU folosind Arduino IDE.
În primul rând, trebuie să includem biblioteca ESP8266wifi pentru a accesa funcțiile Wi-Fi..
#include
Apoi introduceți numele și parola Wi-Fi în câmpul ssid și parola . De asemenea, inițializați variabilele și porniți serverul pe portul 80 cu baud rate 115200.
const char * ssid = "*********"; // Ssid const char * password = "***********"; // Parola dvs. float temp_celsius = 0; float temp_fahrenheit = 0; Server WiFiServer (80); void setup () { Serial.begin (115200);
Conexiunea Wi-Fi se stabilește apelând aceste funcții.
Serial.println (); Serial.println (); Serial.print („Conectarea la”); Serial.println (ssid); WiFi.begin (ssid, parolă);
Conexiunea poate dura câteva secunde pentru a se stabili, deci continuați să afișați „…” până când conexiunea nu se va stabili. Apoi sistemul va continua să aștepte și să verifice dacă un client se conectează…
while (WiFi.status ()! = WL_CONNECTED) { întârziere (500); Serial.print ("."); } Serial.println (""); Serial.println („WiFi este conectat”); server.begin (); Serial.println ("Serverul a pornit"); Serial.println (WiFi.localIP ()); }
În secțiunea buclă , citiți valorile senzorului și convertiți-l în Celsius și Fahrenheit și afișați aceste valori pe monitorul serial.
bucla void () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Pentru a converti valorile analogice în Celsius Avem 3,3 V pe placa noastră și știm că tensiunea de ieșire a LM35 variază cu 10 mV la fiecare grad Celsius de creștere / scădere. Deci, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Temperatura ="); Serial.print (temp_celsius); Serial.print („Celsius”);
Cod HTML pentru a afișa temperatura pe pagina web:
Afișăm temperatura pe o pagină web, astfel încât să poată fi accesată de oriunde din lume prin internet. Codul HTML este foarte simplu; trebuie doar să folosim funcția client.println pentru a răsuna fiecare linie a codului HTML, astfel încât browserul să îl poată executa.
Această parte prezintă cod HTML pentru a crea o pagină web care afișează valoarea temperaturii.
Client WiFiClient = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Content-Type: text / html"); client.println ("Conexiune: închidere"); // conexiunea va fi închisă după finalizarea răspunsului client.println ("Reîmprospătare: 10"); // actualizați pagina după 10 sec client.println (); client.println (""); client.println (""); client.print („
Termometru digital
"); client.print ("Temperatura (* C) = "); client.println (temp_celsius); client.print ("
Temperatura (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); întârziere (5000); }Lucru:
După încărcarea codului utilizând Arduino IDE, deschideți monitorul serial și apăsați butonul Resetare de pe NodeMCU.
Acum, puteți vedea că placa este conectată la rețeaua Wi-Fi pe care ați definit-o în codul dvs. și, de asemenea, ați primit IP-ul. Copiați acest IP și lipiți-l în orice browser web. Asigurați-vă că sistemul dvs. pe care rulați browserul web trebuie să fie conectat la aceeași rețea.
Termometrul digital este gata, iar temperatura va fi reîmprospătată automat în browserul web după fiecare 10 secunde.
Pentru a face această pagină web accesibilă de pe internet, trebuie doar să setați redirecționarea portului în router / modem. Verificați codul complet și videoclipul de mai jos.
De asemenea, verificați:
- Stația meteo Raspberry Pi: monitorizarea umidității, temperaturii și presiunii prin internet
- Monitorizarea temperaturii și a umidității în direct pe Internet utilizând Arduino și ThingSpeak