Arduino Weather Station e MQTT

In precedenza avevo illustrato il progetto di una stazione meteo realizzata con Arduino e uno specifico shield realizzato da Ethermania.

weathershield3

Non voglio ripetere cose già dette quindi vi rimando al post per ulteriori approfondimenti.

Invece voglio raccontarvi in breve di una nuova versione del progetto seppure esclusivamente dal punto di vista software. E questa è proprio la bellezza di Arduino: stesso hardware ma mille diverse soluzioni.

Il progetto iniziale prevedeva che i valori letti dai sensori venissero pubblicati su una pagina html in una stringa che utilizzava il “:” come elemento separatore. Questo per facilitare l’estrazione dei dati da un plugin che avevo realizzato per Freedomotic.

Ora ho pensato di aggiungere il supporto per MQTT che ormai è lo standard di riferimento (o quasi) per le comunicazioni in ambito IoT.

Fondamentalmente lo sketch è simile alla versione originale per quanto riguarda l’acquisizione dei dati dallo shield, utilizzando un’apposita classe con relativi metodi.

N.B. E’ necessario caricare la libreria WeatherShield che trovate sul mio repository GitHub e la PubSubClient disponibile su https://github.com/knolleary/pubsubclient/releases.

Cambia il metodo di pubblicazione che ora viene effettuato su 3 specifici topic (/weathershield/temperature,  /weathershield/humidity, /weathershield/pressure) del broker MQTT a cui Arduino è connesso.

Nell’esempio proposto il broker è raggiungibile all’indirizzo 192.168.1.50 mentre l’ethernet shield ha indirizzo 192.168.1.150.

Infatti ho utilizzato un broker sulla mia macchina, per inciso una semplice immagine Docker di mosquitto.

La pubblicazione dei dati avviene ad intervalli di 5 secondi (anche questo valore è configurabile) facendo un semplice confronto tra l’ora corrente e quella precedentemente memorizzata e verificando che la differenza sia maggiore del delay impostato (questo trucco è stato preso in prestito dal sito www.lucadentella.it).

Penso di aver fornito tutte le informazioni necessarie. Lo sketch è abbastanza esplicativo.

Vi lascio in calce tutti i link e se avete dei suggerimenti commentate qui o su GitHub.

Arduino Weather Station sketch

Arduino WeatherShield lib

 

Ritieni che il post sia interessante? Se ti va puoi confermare le mie competenze o aggiungere una segnalazione sul mio profilo LinkedIn.

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Utilizzando il sito, accetti l'invio dei cookies da parte nostra. Maggiori informazioni

Questo sito utilizza i cookies per fornire la migliore esperienza di navigazione possibile. Continuando ad utilizzarlo senza modificare le impostazioni o cliccando su "Accetta" acconsenti al loro utilizzo.

Chiudi