- Nødvendige komponenter:
- LM35 Temperatursensor:
- Koble LM35 til NodeMCU:
- Kode Forklaring:
- HTML-kode for å vise temperatur på websiden:
- Jobber:
I forrige Komme i gang med NodeMCU-opplæringen så vi Hva er NodeMCU og hvordan vi kan programmere det ved hjelp av Arduino IDE . Som du vet har NodeMCU Wi-Fi-brikke inni, så den kan også koble til internett. Det er veldig nyttig å bygge IoT-prosjekter. Vi brukte tidligere ThingSpeak med Arduino til å lage IoT-termometer, men her vil vi lage vår egen webside for å vise temperatur.
I denne opplæringen vil vi utforske mer om denne interessante MCU, og sakte dykker vi i Internet of Things World ved å koble NodeMCU med Internett. Her vil vi bruke denne modulen for å få romtemperatur i nettleseren, dvs. vi vil lage en webserver for å vise temperaturen ved hjelp av LM35 som temperatursensor.
Nødvendige komponenter:
- NodeMCU - ESP12
- LM35 Temperatursensor
- Brettbrett
- Mann-kvinnelige kontakter
LM35 Temperatursensor:
LM35 er en analog lineær temperaturføler. Produksjonen er proporsjonal med temperaturen (i grader Celsius). Driftstemperaturområdet er fra -55 ° C til 150 ° C. Utgangsspenningen varierer med 10 mV som respons på hver o C temperaturstigning eller fall. Den kan betjenes fra en 5V så vel som en 3,3 V forsyning, og strømforsyningen er mindre enn 60uA.
Vær oppmerksom på at LM35 er tilgjengelig i 3 serievarianter, nemlig LM35A, LM35C og LM35D-serien. Hovedforskjellen er i deres temperaturmåling. LM35D-serien er designet for å måle 0 til 100 grader Celsius, der LM35A-serien er designet for å måle et bredere spekter av -55 til 155 grader Celsius. LM35C-serien er designet for å måle fra -40 til 110 grader Celsius.
Vi har allerede brukt LM35 med mange andre mikrokontrollere for å måle temperaturen:
- Digitalt termometer ved bruk av LM35 og 8051 mikrokontroller
- Temperaturmåling ved bruk av LM35 og AVR Microcontroller
- Digitalt termometer med Arduino og LM35 temperatursensor
- Måling av romtemperatur med Raspberry Pi
Koble LM35 til NodeMCU:
Kretsskjema for å koble LM35 til NodeMCU er gitt nedenfor:
LM35 er en analog sensor, så vi må konvertere denne analoge utgangen til digital. For dette bruker vi ADC-pin av NodeMCU som er definert som A0. Vi vil koble utgangen fra LM35 til A0.
Vi har 3,3 V som utgangsspenning på NodeMCUs pinner. Så vi vil bruke 3,3 V som Vcc for LM35.
Kode Forklaring:
Komplett kode med demonstrasjonsvideo er gitt på slutten av artikkelen. Her forklarer vi noen få deler av koden. Vi har allerede forklart å laste opp kode til MCU ved hjelp av Arduino IDE.
Først må vi ta med ESP8266wifi-biblioteket for å få tilgang til Wi-Fi-funksjonene..
#inkludere
Skriv deretter inn Wi-Fi-navnet og passordet ditt i ssid og passordfelt . Initialiser også variablene og start serveren på port 80 med baudrate 115200.
const char * ssid = "*********"; // Din ssid const char * passord = "***********"; // Passordet ditt flyter temp_celsius = 0; flyte temp_fahrenheit = 0; WiFiServer-server (80); ugyldig oppsett () { Serial.begin (115200);
Tilkobling av Wi-Fi opprettes ved å ringe disse funksjonene.
Serial.println (); Serial.println (); Serial.print ("Koble til"); Serial.println (ssid); WiFi.begin (ssid, passord);
Tilkoblingen kan ta noen sekunder å etablere, så fortsett å vise '…' til tilkoblingen ikke opprettes. Da vil systemet fortsette å vente og se etter at en klient kobler seg…
mens (WiFi.status ()! = WL_CONNECTED) { forsinkelse (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi er tilkoblet"); server.begin (); Serial.println ("Server startet"); Serial.println (WiFi.localIP ()); }
I sløyfeseksjonen , les sensorverdiene og konverter den til Celsius og Fahrenheit, og vis disse verdiene på seriell skjerm.
ugyldig sløyfe () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // For å konvertere analoge verdier til Celsius Vi har 3,3 V på kortet, og vi vet at utgangsspenningen på LM35 varierer med 10 mV til hver grad Celsius stiger / faller. 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 for å vise temperatur på websiden:
Vi viser temperaturen på en webside slik at den kan være tilgjengelig fra hvor som helst i verden via internett. HTML-kode er veldig enkel; vi må bare bruke client.println- funksjonen til å ekko hver linje i HTML-koden, slik at nettleseren kan utføre den.
Denne delen viser HTML-kode for å lage en webside som viser temperaturverdien.
WiFiClient-klient = server.tilgjengelig (); client.println ("HTTP / 1.1 200 OK"); client.println ("Innholdstype: tekst / html"); client.println ("Tilkobling: lukk"); // forbindelsen blir stengt etter at svarklienten er fullført.println ("Oppdater: 10"); // oppdater siden etter 10 sek client.println (); client.println (""); client.println (""); client.print ("
Digital termometer
"); client.print ("Temperatur (* C) = "); client.println (temp_celsius); client.print ("
Temperatur (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); forsinkelse (5000); }Jobber:
Etter at du har lastet opp koden ved hjelp av Arduino IDE, åpner du seriell skjerm og trykker på Reset-knappen på NodeMCU.
Nå kan du se at kortet er koblet til Wi-Fi-nettverket som du har definert i koden din, og du har også IP-en. Kopier denne IP-en og lim den inn i en hvilken som helst nettleser. Forsikre deg om at systemet ditt som du bruker nettleseren skal være koblet til det samme nettverket.
Ditt digitale termometer er klart, og temperaturen oppdateres automatisk i nettleseren etter hvert 10. sekund.
For å gjøre denne websiden tilgjengelig fra internett, trenger du bare å sette Port Forwarding i ruteren / modemet. Sjekk den fullstendige koden og videoen nedenfor.
Sjekk også:
- Raspberry Pi Weather Station: Overvåker fuktighet, temperatur og trykk over Internett
- Direkte temperatur- og fuktighetsovervåking over Internett ved hjelp av Arduino og ThingSpeak