- Componenti richiesti:
- Sensore di temperatura LM35:
- Collegamento di LM35 con NodeMCU:
- Spiegazione del codice:
- Codice HTML per visualizzare la temperatura sulla pagina Web:
- Lavorando:
Nel precedente tutorial Introduzione a NodeMCU, abbiamo visto Cos'è NodeMCU e come possiamo programmarlo utilizzando Arduino IDE . Come sai, NodeMCU ha un chip Wi-Fi all'interno, quindi può anche connettersi a Internet. È molto utile per costruire progetti IoT. In precedenza abbiamo utilizzato ThingSpeak con Arduino per creare un termometro IoT, ma qui creeremo la nostra pagina Web per visualizzare la temperatura.
In questo tutorial esploreremo di più su questo interessante MCU e lentamente ci immergeremo nel mondo dell'Internet delle cose collegando NodeMCU a Internet. Qui useremo questo modulo per ottenere la temperatura ambiente sul browser web, ovvero creeremo un server web per visualizzare la temperatura utilizzando LM35 come sensore di temperatura.
Componenti richiesti:
- NodeMCU - ESP12
- Sensore di temperatura LM35
- Breadboard
- Connettori maschio-femmina
Sensore di temperatura LM35:
LM35 è un sensore di temperatura lineare analogico. La sua resa è proporzionale alla temperatura (in gradi Celsius). L'intervallo di temperatura di esercizio va da -55 ° C a 150 ° C. La tensione di uscita varia di 10 mV in risposta a ogni aumento o diminuzione della temperatura di ° C. Può essere azionato da un'alimentazione a 5 V e 3,3 V e la corrente di stand by è inferiore a 60uA.
Si noti che LM35 è disponibile in 3 varianti di serie, vale a dire LM35A, LM35C e LM35D. La differenza principale è nella loro gamma di misurazioni della temperatura. La serie LM35D è progettata per misurare da 0 a 100 gradi Celsius, mentre la serie LM35A è progettata per misurare una gamma più ampia da -55 a 155 gradi Celsius. La serie LM35C è progettata per misurare da -40 a 110 gradi Celsius.
Abbiamo già utilizzato LM35 con molti altri microcontrollori per misurare la temperatura:
- Termometro digitale con microcontrollore LM35 e 8051
- Misurazione della temperatura utilizzando LM35 e microcontrollore AVR
- Termometro digitale che utilizza Arduino e sensore di temperatura LM35
- Misurazione della temperatura ambiente con Raspberry Pi
Collegamento di LM35 con NodeMCU:
Di seguito è riportato lo schema del circuito per il collegamento dell'LM35 con NodeMCU:
LM35 è un sensore analogico, quindi dobbiamo convertire questa uscita analogica in digitale. Per questo usiamo il pin ADC di NodeMCU che è definito come A0. Collegheremo l'uscita di LM35 ad A0.
Abbiamo 3,3 V come tensione di uscita sui pin di NodeMCU. Quindi, useremo 3,3 V come Vcc per LM35.
Spiegazione del codice:
Il codice completo con il video dimostrativo è fornito alla fine dell'articolo. Qui stiamo spiegando alcune parti del codice. Abbiamo già spiegato di caricare il codice nell'MCU utilizzando l'IDE di Arduino.
Innanzitutto, dobbiamo includere la libreria ESP8266wifi per accedere alle funzioni Wi-Fi..
#includere
Quindi inserisci il nome e la password Wi-Fi nel campo SSID e password . Inizializzate anche le variabili e avviate il server sulla porta 80 con baud rate 115200.
const char * ssid = "*********"; // Il tuo ssid const char * password = "***********"; // La tua password float temp_celsius = 0; float temp_fahrenheit = 0; Server WiFiServer (80); void setup () { Serial.begin (115200);
La connessione al Wi-Fi viene stabilita chiamando queste funzioni.
Serial.println (); Serial.println (); Serial.print ("Connessione a"); Serial.println (ssid); WiFi.begin (ssid, password);
La connessione può richiedere alcuni secondi per stabilirsi, quindi continua a mostrare "…" finché la connessione non verrà stabilita. Quindi il sistema continuerà ad aspettare e controllerà la connessione di un client…
while (WiFi.status ()! = WL_CONNECTED) { ritardo (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi è connesso"); server.begin (); Serial.println ("Server avviato"); Serial.println (WiFi.localIP ()); }
Nella sezione loop , leggere i valori del sensore e convertirli in Celsius e Fahrenheit e visualizzare questi valori sul monitor seriale.
void loop () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Per convertire i valori analogici in Celsius Abbiamo 3,3 V sulla nostra scheda e sappiamo che la tensione di uscita dell'LM35 varia di 10 mV a ogni grado Celsius di salita / discesa. Quindi, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Temperature ="); Serial.print (temp_celsius); Serial.print ("Celsius,");
Codice HTML per visualizzare la temperatura sulla pagina Web:
Stiamo visualizzando la temperatura su una pagina Web in modo che possa essere accessibile da qualsiasi parte del mondo tramite Internet. Il codice HTML è molto semplice; dobbiamo solo usare la funzione client.println per echeggiare ogni riga del codice HTML, in modo che il browser possa eseguirla.
Questa parte mostra il codice HTML per creare una pagina web che mostra il valore della temperatura.
Client WiFiClient = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Content-Type: text / html"); client.println ("Connessione: chiudi"); // la connessione verrà chiusa dopo il completamento della risposta client.println ("Refresh: 10"); // aggiorna la pagina dopo 10 sec client.println (); client.println (""); client.println (""); client.print ("
Termometro digitale
"); client.print ("Temperatura (* C) = "); client.println (temp_celsius); client.print ("
Temperatura (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); delay (5000); }Lavorando:
Dopo aver caricato il codice utilizzando l'IDE di Arduino, apri il monitor seriale e premi il pulsante Reset su NodeMCU.
Ora puoi vedere che la scheda è connessa alla rete Wi-Fi che hai definito nel tuo codice e che hai anche l'IP. Copia questo IP e incollalo in qualsiasi browser web. Assicurati che il tuo sistema su cui stai eseguendo il browser web sia connesso alla stessa rete.
Il termometro digitale è pronto e la temperatura verrà aggiornata automaticamente nel browser web ogni 10 secondi.
Per rendere questa pagina web accessibile da Internet, è sufficiente impostare il Port Forwarding nel router / modem. Controlla il codice completo e il video qui sotto.
Controlla anche:
- Stazione meteorologica Raspberry Pi: monitoraggio di umidità, temperatura e pressione su Internet
- Monitoraggio in tempo reale della temperatura e dell'umidità su Internet utilizzando Arduino e ThingSpeak