Come leggere la temperatura con il NodeMCU e trasmettere i dati in WiFi
Il NodeMCU è una scheda di sviluppo basata sul modulo ESP8266 che offre la possibilità di connettersi al WiFi e di interagire con il mondo esterno tramite sensori e attuatori. In questo articolo ti spiegheremo come utilizzare il NodeMCU per leggere la temperatura da un sensore e trasmettere i dati in WiFi.
Materiali necessari
Prima di iniziare, assicurati di avere a disposizione i seguenti materiali:
- NodeMCU
- Sensore di temperatura (ad esempio, il sensore DS18B20)
- Resistenze (se necessarie per il sensore di temperatura)
- Breadboard (se necessaria per collegare il sensore di temperatura)
- Cavi jumper per collegare i componenti
Collegamento del sensore di temperatura al NodeMCU
Prima di poter leggere la temperatura, è necessario collegare il sensore di temperatura al NodeMCU. Se stai utilizzando il sensore DS18B20, ecco come puoi collegarlo:
- Collega il pin VCC del sensore al pin 3V3 del NodeMCU
- Collega il pin GND del sensore al pin GND del NodeMCU
- Collega il pin DATA del sensore al pin D2 del NodeMCU
Assicurati di consultare il datasheet del tuo sensore di temperatura per conoscere i pin corretti da utilizzare.
Programmazione del NodeMCU
Una volta collegato il sensore di temperatura al NodeMCU, è necessario programmare il NodeMCU per leggere la temperatura e trasmettere i dati in WiFi. Puoi utilizzare l’IDE di Arduino per scrivere il codice e caricarlo sul NodeMCU. Ecco un esempio di codice:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>
const char* ssid = "il_tuo_ssid";
const char* password = "la_tua_password";
#define ONE_WIRE_BUS D2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.println(temperature);
delay(5000);
}
Nel codice sopra, viene inizializzato il sensore di temperatura, viene stabilita la connessione WiFi e viene letto il valore della temperatura ogni 5 secondi. Il valore della temperatura viene quindi stampato sulla console.
Trasmissione dei dati in WiFi
Ora che il NodeMCU è in grado di leggere la temperatura, è possibile trasmettere i dati in WiFi. Puoi utilizzare diverse opzioni per trasmettere i dati, ad esempio inviarli a un server remoto o utilizzare un servizio di cloud come Blynk o ThingSpeak. Puoi modificare il codice precedente per adattarlo alle tue esigenze di trasmissione dei dati.
Ad esempio, se desideri inviare i dati a un server remoto, puoi utilizzare la libreria WiFiClient per stabilire una connessione TCP con il server e inviare i dati tramite il protocollo HTTP o MQTT. Assicurati di conoscere l’indirizzo IP e la porta del server a cui desideri inviare i dati.
Se preferisci utilizzare un servizio di cloud come Blynk o ThingSpeak, dovrai prima creare un account sul servizio e ottenere le credenziali di accesso. Successivamente, puoi utilizzare le librerie specifiche del servizio per inviare i dati al tuo account.
Conclusioni
Utilizzare il NodeMCU per leggere la temperatura da un sensore e trasmettere i dati in WiFi è un’operazione relativamente semplice grazie alle potenzialità offerte dalla scheda e dalla comunità di sviluppatori. Con pochi componenti e un po’ di codice, è possibile realizzare un sistema di monitoraggio della temperatura basato su WiFi.
Speriamo che questo articolo ti sia stato utile per iniziare a utilizzare il NodeMCU per leggere la temperatura e trasmettere i dati in WiFi. Buon divertimento con i tuoi progetti!