In questa progetto realizzeremo una Stazione Meteo Smart con scheda Wemos Pro con chip ESP8266.
Questa stazione collegata alla rete WiFi di casa trasmetterà i dati di temperatura e umidità direttamente su una pagina locale, accessibile direttamente dal browser.
La scheda sarà alimentata da una batteria e per limitare i consumi è abilitata la funzione Deep-Sleep per mettere in stand-by la stazione per circa un’ora tra un invio e l’altro.
A differenza di un Arduino Classico/Mini, il Wemos Pro è dotato di hardware per la connessione WiFi ad un prezzo molto basso, in alternativa abbiamo il NodeMCU basato sullo stesso chip.
Sensore di temperatura Si7021
Il sensore di umidità e temperatura Si7021 è una scheda compatibile con Arduino. Ha un’interfaccia a 4 pin in grado di comunicare direttamente con i pin di Arduino. Sensore ideale per la realizzazione di una stazione meteo smart con Arduino.
Entrambi i sensori sono perfettamente accoppiati a un ADC a 14 bit, che quindi trasmette i dati digitali ad Arduino tramite il protocollo I2C.
A causa delle dimensioni ridotte, ha un consumo di energia incredibilmente basso, il che lo rende adatto praticamente a qualsiasi applicazione.
Schema di collegamento Stazione Meteo Smart
A seguire lo schema di collegamento della stazione Meteo Smart con Wemos Pro Esp8266.
Preparazione Arduino IDE
Per programmare una scheda con chip ESP8266 utilizzando Arduino IDE, dobbiamo assicurarci di aver installato il componente aggiuntivo ESP8266 prima di procedere: File -> Preferenze
Immettere http://arduino.esp8266.com/stable/package_esp8266com_index.json nel campo “URL aggiuntivi del gestore di schede” come mostrato nella figura seguente. Quindi, fare clic sul pulsante “OK”.
Apri il Gestore delle schede Strumenti > Schede > Gestore schede… cercare ESP8266 e premi il pulsante di installazione per ” ESP8266 by ESP8266 Community“
Vai su Strumenti > Schede e scegli la tua scheda ESP8266. Quindi, riapri il tuo Arduino IDE.
Librerie per Arduino IDE
Per interfacciare la Stazione Meteo Smart con il sensore di temperatura Si2071 è necessario installare la Adafruit_Si7021.
Apri Arduino IDE e vai su Sketch > libreria > Gestisci librerie…
Cercare Si7021 e installare.
Per creare il server Web utilizzeremo la libreria ESPAsyncWebServer che fornisce un modo semplice per creare un server Web asincrono. La creazione di un server Web asincrono presenta diversi vantaggi. Ti consigliamo di dare una rapida occhiata alla documentazione della libreria nella sua pagina GitHub .
Installazione della libreria ESPAsyncWebServer
La libreria ESPAsyncWebServer non è disponibile per l’installazione in Arduino IDE Library Manager. Quindi, è necessario installarlo manualmente.
Segui i passaggi successivi per installare la libreria ESPAsyncWebServer:
- Fare clic qui per scaricare la libreria ESPAsyncWebServer .
- Decomprimi la cartella .zip e dovresti ottenere la cartella ESPAsyncWebServer-master
- Rinomina tua cartella in ESPAsyncWebServer
- Sposta la cartella ESPAsyncWebServer nella cartella delle librerie di installazione dell’IDE Arduino
Installazione della libreria TCP ESPAsync
La libreria ESPAsyncWebServer richiede che la libreria ESPAsyncTCP funzioni. Segui i passaggi successivi per installare quella libreria:
- Fare clic qui per scaricare la libreria ESPAsyncTCP .
- Decomprimi la cartella .zip e dovresti ottenere la cartella ESPAsyncTCP-master
- Rinomina la cartella in ESPAsyncTCP
- Sposta la cartella ESPAsyncTCP nella cartella delle librerie di installazione dell’IDE Arduino
- Infine, riapri il tuo IDE Arduino
Codice
Aprire l’Arduino IDE e copiare il seguente codice:
Inserisci le tue credenziali di rete nelle seguenti variabili e il codice funzionerà immediatamente.
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
Funzionamento Stazione Meteo Smart
Dunque colleghiamo la nostra scheda all’alimentazione e mostriamo il funzionamento della Stazione Meteo Smart.
Apriamo l’Arduino IDE Serial Monitor a una velocità di trasmissione di 115200. Dopo alcuni secondi il tuo indirizzo IP dovrebbe apparire.
Nella tua rete locale, apri un browser e digita l’indirizzo IP ESP8266.
Ora puoi vedere la temperatura in Celsius nel tuo server web. Le letture del sensore si aggiornano automaticamente senza la necessità di aggiornare la pagina web.