- Nødvendige komponenter:
- LM35 temperaturføler:
- Tilslutning af LM35 med NodeMCU:
- Kode Forklaring:
- HTML-kode til visning af temperatur på websiden:
- Arbejder:
I forrige Kom godt i gang med NodeMCU-tutorial, så vi Hvad er NodeMCU, og hvordan vi kan programmere det ved hjælp af Arduino IDE . Som du ved, har NodeMCU en Wi-Fi-chip indeni, så den kan også oprette forbindelse til internettet. Det er meget nyttigt at opbygge IoT-projekter. Vi har tidligere brugt ThingSpeak med Arduino til at fremstille IoT-termometer, men her opretter vi vores egen webside for at vise temperatur.
I denne vejledning vil vi udforske mere om denne interessante MCU og langsomt dykker vi ned i Internet of Things World ved at forbinde NodeMCU med Internettet. Her bruger vi dette modul til at få stuetemperatur i webbrowseren, dvs. vi laver en webserver til at vise temperaturen ved hjælp af LM35 som temperatursensor.
Nødvendige komponenter:
- NodeMCU - ESP12
- LM35 temperaturføler
- Brødbræt
- Han-kvindelige stik
LM35 temperaturføler:
LM35 er en analog lineær temperaturføler. Dets output er proportional med temperaturen (i grader Celsius). Driftstemperaturområdet er fra -55 ° C til 150 ° C. Udgangsspændingen varierer med 10 mV som reaktion på hver o C stigning eller fald i temperatur. Det kan betjenes fra en 5V såvel som en 3,3 V forsyning, og standby-strømmen er mindre end 60uA.
Bemærk, at LM35 fås i 3 serievarianter, nemlig LM35A-, LM35C- og LM35D-serierne. Den største forskel er i deres temperaturmåling. LM35D-serien er designet til at måle 0 til 100 grader Celsius, hvor LM35A-serien er designet til at måle et bredere interval på -55 til 155 grader Celsius. LM35C-serien er designet til at måle fra -40 til 110 grader Celsius.
Vi har allerede brugt LM35 med mange andre mikrocontrollere til at måle temperaturen:
- Digitalt termometer ved hjælp af LM35 og 8051 mikrokontroller
- Temperaturmåling ved hjælp af LM35 og AVR Microcontroller
- Digitalt termometer ved hjælp af Arduino og LM35 temperaturføler
- Rumtemperaturmåling med Raspberry Pi
Tilslutning af LM35 med NodeMCU:
Kredsløbsdiagram til tilslutning af LM35 med NodeMCU er angivet nedenfor:
LM35 er en analog sensor, så vi er nødt til at konvertere denne analoge udgang til digital. Til dette bruger vi ADC-pin af NodeMCU, der er defineret som A0. Vi forbinder output fra LM35 til A0.
Vi har 3,3 V som udgangsspænding på NodeMCU's ben. Så vi bruger 3.3V som Vcc til LM35.
Kode Forklaring:
Komplet kode med demonstrationsvideo findes i slutningen af artiklen. Her forklarer vi nogle få dele af koden. Vi har allerede forklaret at uploade kode til MCU ved hjælp af Arduino IDE.
Først skal vi medtage ESP8266wifi-bibliotek for at få adgang til Wi-Fi-funktionerne..
#omfatte
Indtast derefter dit Wi-Fi-navn og din adgangskode i ssid- og adgangskodefeltet . Initialiserede også variablerne og start serveren på port 80 med baudrate 115200.
const char * ssid = "*********"; // Dit ssid const char * password = "***********"; // Din adgangskode flyder temp_celsius = 0; flyde temp_fahrenheit = 0; WiFiServer-server (80); ugyldig opsætning () { Serial.begin (115200);
Forbindelse af Wi-Fi oprettes ved at kalde disse funktioner.
Serial.println (); Serial.println (); Serial.print ("Opretter forbindelse til"); Serial.println (ssid); WiFi.begin (ssid, password);
Det kan tage nogle sekunder at oprette forbindelse, så fortsæt med at vise '…', indtil forbindelsen ikke oprettes. Derefter venter systemet og kontrollerer, om en klient opretter forbindelse…
mens (WiFi.status ()! = WL_CONNECTED) { forsinkelse (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi er tilsluttet"); server.begin (); Serial.println ("Server startet"); Serial.println (WiFi.localIP ()); }
I loop- sektionen skal du læse sensorværdier og konvertere den til Celsius og Fahrenheit og vise disse værdier på seriel skærm.
ugyldig sløjfe () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // For at konvertere analoge værdier til Celsius Vi har 3,3 V på vores kort, og vi ved, at udgangsspændingen på LM35 varierer med 10 mV til hver grad Celsius stiger / falder. Så (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Temperatur ="); Serial.print (temp_celsius); Serial.print ("Celsius,");
HTML-kode til visning af temperatur på websiden:
Vi viser temperaturen på en webside, så den kan være tilgængelig overalt i verden via internettet. HTML-kode er meget enkel; Vi skal bare bruge client.println- funktionen til at ekko hver linje i HTML-koden, så browseren kan udføre den.
Denne del viser HTML-kode for at oprette en webside, der viser temperaturværdien.
WiFiClient-klient = server.tilgængelig (); client.println ("HTTP / 1.1 200 OK"); client.println ("Indholdstype: tekst / html"); client.println ("Forbindelse: luk"); // forbindelsen lukkes efter afslutningen af svarsklienten.println ("Opdater: 10"); // opdater siden efter 10 sek client.println (); client.println (""); client.println (""); client.print ("
Digitalt termometer
"); client.print ("Temperatur (* C) = "); client.println (temp_celsius); client.print ("
Temperatur (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); forsinkelse (5000); }Arbejder:
Efter uploaden af koden ved hjælp af Arduino IDE, skal du åbne den serielle skærm og trykke på knappen Nulstil på NodeMCU.
Nu kan du se, at tavlen er tilsluttet Wi-Fi-netværket, som du har defineret i din kode, og du har også IP. Kopier denne IP og indsæt den i enhver webbrowser. Sørg for, at dit system, som du kører webbrowseren på, skal være forbundet til det samme netværk.
Dit digitale termometer er klar, og temperaturen opdateres automatisk i webbrowseren efter hvert 10. sekund.
For at gøre denne webside tilgængelig fra internettet, skal du bare indstille Port Forwarding i din router / modem. Tjek den komplette kode og video nedenfor.
Kontroller også:
- Raspberry Pi Vejrstation: Overvågning af fugtighed, temperatur og tryk over internettet
- Overvågning af live temperatur og fugtighed via internettet ved hjælp af Arduino og ThingSpeak