Molti dei nostri progetti su Arduino, specialmente quelli più complessi, producono dati che spesso devono essere conservati e monitorati da remoto. Quale miglior modo se non quello di caricarli via web? Infatti oggi con l’avvento dell’IoT (Internet of Things) l’ambiente web non è solo una prerogativa di pagine HTML fatte per mostrare informazioni per gli umani, ma anche un ottimo ambiente per lo scambio di dati tra reti di dispositivi e sensori connessi alla rete. Oggi questa realtà è diffusissima e molti sono i servizi disponibili in rete, SaaS (Software as a Service), specializzati proprio per dispositivi IoT, tra cui Adafruit IO.
Cosa è Adafruit IO
Adafruit IO è un servizio di cloud disponibile in rete e con cui è possibile connettere i nostri dispositivi, come una scheda Arduino. La sua funzione principale è quella di immagazzinare i dati acquisiti da una o più schede collegate a sensori, di mostrarli sia in tempo reale che successivamente, ma può svolgere anche altre interessanti funzioni.
Si può infatti utilizzare questa piattaforma per:
- mostrare i dati prodotti in tempo reale online, mediante grafici e quadrati in un pannello di controllo (dashboard).
- il controllo remoto dei dispositivi (motori, sensori, ecc..) via web o cellulare mediante pulsanti inseriti nel pannello di controllo (dashboard)
- connettere il proprio progetto a servizi di rete come RSS feeds, IFTTT, mail, ecc…
- Inserire dei Trigger che si attivano quando i valori dei dati superano determinate soglie, o ad un orario schedulato.
Per accedere ad Adafruit IO, si deve essere in possesso di un account Adafruit, oppure crearne uno appositamente su io.adafruit.com.
I Feeds sono alla base del funzionamento di Adafruit IO. Questi infatti gestiscono i diversi flussi di dati che il sistema sta caricando insieme ai corrispondenti metadati contenenti altre informazioni utili, come il sensore che li sta producendo, la data e l’orario, o le coordinate GPS di origine dei dati.
I feed vengono poi collegati ai vari blocchi grafici per formare le Dashboard, dei veri pannelli di controllo che sono un’altra importante caratteristica integrata in Adafruit IO. Grafici a barre, interruttori, mappe, testi scorrevoli, o altre forme di visualizzazione dei tuoi dati, saranno i blocchi con cui costruirai i tuoi pannelli di controllo personali a cui potrai accedere da qualsiasi browser, sia da PC che da cellulare.
Per quanto riguarda la compatibilità con l’hardware, Adafruit IO è un sistema compatibile con moltissime schede tra cui quelle di Arduino. Esistono una serie di librerie già pronte e scaricabili dal sito, che permettono di collegare le nostre schede con Adafruit IO mediante le interfacce più comuni di connessione come WiFi (ESP8266, ESP32, WINC1500, and WICED), Ethernet, or Cellular.
Adafruit IO Arduino Library
Per facilitare l’operazione di connessione alla rete con le schede Arduino, Adafruit fornisce la libreria Adafruit IO Arduino Library.
Questa libreria ci permette di utilizzare i seguenti dispositivi di connessione alla rete collegabili ad Arduino:
- Adafruit AirLift: un modulo esterno fornito da Adafruit, da collegare ad Arduino e potersi connettere alla rete WiFi
- ESP8266: chip WiFi a basso costo
- ESP32: chip WiFi a basso costo
- ATWINC1500: chip WiFi
- WICED: tecnologia WiFi
- Ethernet
- FONA: Mini Cellular GSM
La libreria può essere facilmente installata attraverso Arduino Library Manager. Dal menu di Arduino IDE selezionate Sketch -> Include Library -> Manage Libraries.. e vi apparirà la finestra seguente. Selezionate la libreria Adafruit IO Arduino ed iniziate l’installazione. Stessa cosa per installare eventuali aggiornamenti che verranno rilasciati in seguito.
Se invece volete fare tutto da soli, potete scaricare la libreria Adafruit IO Arduino Library direttamente da GitHub e poi installarla manualmente.
La Dashboard
Una volta entrati con l’utenza personale in Adafruit IO, appare una schermata con tutte le dashboard da noi create.
Selezionando la dashboard desiderata o premendo il pulsante New Dashboard, si accede all’editor, in cui è possibile modificare e aggiungere dei blocchi alla nostra dashboard. Questi blocchi non sono altro che diverse modalità di visualizzare i nostri dati sotto forma di grafici, grafi o gauge di diversa forma e funzionalità.
Esistono quindi diverse tipologie di blocchi, ognuna di esse con diverse funzioni. Selezionate quella che fa più per voi e configuratene le caratteristiche a seconda delle vostre esigenze.
E così via, blocco dopo blocco creerete il vostro pannello di controllo, che poi una volta completato sarà disponibile in rete. Avrete quindi a disposizione un vero e proprio pannello di controllo con tanto di visori, indicatori e pulsanti, accessibile da un qualsiasi browser, anche da cellulare.
Feeds
Una volta creati i controlli sul nostro pannello (dashboard), sarà necessario creare dei feeds che gestiscano l’afflusso di dati da remoto e li visualizzino attraverso il controllo in tempo reale.
Altri servizi
Una volta inseriti tutti i quardanti (blocks) nel pannello di controllo (dashboard) potrete utiizzare altri servizi come i Trigger. Questi sono automatismi molto utili, dato che servono per monitorare in maniera autonoma alcuni flussi di dati. Quando un particolare evento accade (un valore supera una certa soglia massima o minima per esempio), si può scatenare un evento, come l’invio di un comando di arresto ad un dispositivo, una mail ad un indirizzo di posta, o l’attivazione di un dispositivo, ecc. I trigger possono anche essere schedulati. Cioè invece di essere innescati da un particolare evento, si può inserire una precisa data ed un preciso orario, in cui questo deve essere attivato.
Altri servizi disponibili sono IFTTT e Zapier, molto utili per pubblicare i dati sulla rete e che possono essere interfacciati con la piattaforma Adafruit.IO.