Node.js for IoT – Torino JS

Questa sera ho partecipato alla conferenza Torino JS come relatore presentando il talk intitolato Node.js for IoT.

Come demo ho voluto sviluppare un piccolo sistema per rilevare l’umidità dal terreno delle piante in vaso tramite Arduino e relativo sensore di umidità.

PANORAMICA PROGETTO NODE.JS for IoT

Il progetto Node.js for IoT prevedeva lo sviluppo di un worker che comunica con Arduino tramite porta serialeper recuperare i valori letti dal sensore. Il WORKER comunica i dati tramite protocollo MQTT ad un broker ( Mosquitto nel nostro caso) al quale è connesso il nostro Web Server che, tramite Web Socket e la libreria Socket.io, notifica i client connessi aggiornando una Dashboard.

IN DETTAGLIO

Andiamo a vedere nel dettaglio il progetto analizzando le 3 parti che lo compongono

WORKER

Per il WORKER, ovviamente sviluppato in Node.js, ho utilizzato 2 moduli:

Serial Port

SerialPort è un modulo Node.js sviluppata per la comunicazione con i device collegati tramite porta seriale.

MQTT.js

MQTT.js è un moduloNode.js sviluppato da Matteo Collina che ci permette di sfruttare il protocollo MQTT per comunicare dati a client connessi.

LET’S GO

Bene diamo un’occhiata al codice Node.js che ci permette di ascoltare sulla seriale e inviare i messaggi al broker.

Come prima cosa includiamo i moduli e li configuriamo. Poi inseriamo degli event listener ai vari handler e gestiamo i messagi che arrivano da Arduino

NEXT TIME

Nel prossimo episodio vedremo come sviluppare la parte Server utilizzando il framework Node.js Hapi JS