IoT platform – I componenti principali

Quali sono i componenti principali di una piattaforma per la ricezione e l’elaborazione di dati provenienti da soluzioni connesse? Quali sono i principali protocolli? Quali linguaggi e piattaforme devo imparare per entrare in questo interessante mondo?

Proviamo a vedere qualche soluzione open source che può dare ottimi spunti di partenza per la costruzione di una piattaforma IoT e per imparare i principi di base di questo nuovo mondo. Le soluzioni che guarderemo velocemente sono le seguenti:

  • RabbitMQ – broker per i protocolli publish subscribe MQTT/STOMP/AMQP che agisce come  bus unificante connettendo in maniera efficiente il livello hardware con i vari livelli di elaborazione software,
  • Node-RED – piattaforma web con cui è possibile orchestrare il flusso di informazioni e costruire logiche di funzionamento complesse,
  • EmonCMS – soluzione per il monitoraggio, la storicizzazzione  e la rappresentazione di variabili tempovarianti,
  • Freeboard – software per la costruzione di accattivanti cruscotti riepilogativi.

Ovviamente ci sono molte altre soluzioni che possono essere utilizzate/testate/integrate ma per ora questo set consente di creare una base più che sufficiente per i primi test.

RabbitMQ/MQTT – https://www.rabbitmq.com/

RabbitMQ è un interessante broker per i messaggi AMQP ma capace anche di supportare MQTT e STOMP.

Può essere installato su Rasberry Pi aggiungendo il repository  al file /etc/apt/sources.list

fatto ciò è possibile installare l’ultima versione con i comandi

ed abilitare i plugin di management e il broker MQTT

Abilitando il plugin di management è possibile visualizzare il funzionamento mediante un sito web di controllo disponibile all’indirizzo http://localhost:15672. Le credenziali di default sono guest/guest.
RabbitMQ management website

Il plug-in installato consente di collegare device MQTT con la versione 3.1 del protocollo, per usufruire della più innovativa versione 3.1.1 di MQTT è invece necessario installare un broker ad-hoc quale Mosquitto.

Node-RED – http://nodered.org/

Node-RED è la piattaforma con cui implementare la logica associata al funzionamento della piattaforma, come MQTT è un prodotto dei laboratori di IBM distribuita con una licenza Open Source (ma anche integrata nella piattaforma cloud IBM Bluemix!!!) .

Basata sul server Node.js e sul linguaggio Javascript è anche disponibile tramite il sistema di pacchettizzazione NPM.

Installiamo Node.js (sempre ipotizzando di lavorare su un Raspberry Pi)

Installiamo ora Node-RED e qualche nodo aggiuntivo con i seguenti comandi.

 

Ed utilizziamo pm2 per far partire in automatico Node-RED all’avvio del sistema.

L’interfaccia di Node-RED è disponibile all’indirizzo http://localhost:1883.

Node RED

 

EmonCMS – http://emoncms.org/
Basata su Mysql e sul linguaggio PHP  richiede una serie di pacchetti software normalmente non installati sul Raspberry Pi.

Il codice dell’applicazione può essere installato direttamente da GitHub con i comandi:

 

Il database può essere creato con i comandi:

Al primo accesso EmonCMS costruirà le tabelle e le popolerà con i dati appropriati, occorre creare anche le directory per la memorizzazione dei dati.

 

 

La piattaforma è accessibile all’indirizzo http://localhost/emoncms.

Emoncms

 

Freeboard – https://freeboard.io/

La piattaforma di visualizzazione va installata in una directory servita da Apache e può essere scaricata da GitHub con il comando:

 

Dalla medesima directory è accessibile (e configurabile) l’interfaccia di  Freeboard.

tumblr_inline_nbyinjE3YU1szrgrz

I dati possono essere veicolati mediante un file JSON servito da Node-RED … ma questo lo vedremo in un prossimo articolo!!!

Email this to someoneShare on FacebookShare on Google+Share on LinkedInTweet about this on TwitterPin on PinterestPrint this page

Leave a Reply

Your email address will not be published. Required fields are marked *