Programmiamo la Wunderbar e scopriamo quanto è semplice

Non è passato molto tempo da quando vi abbiamo annunciato l'uscita della Wunderbar con le sue caratteristiche e specifiche tecniche. Abbiamo conosciuto l'elettronica di cui è costituita, l'abbiamo vista alla Maker Faire ed oggi torniamo a parlarne questa volta per approfondire la programmazione, l'ambiente di sviluppo e tutto ciò che vi ruota intorno. Buona lettura.

La Wunderbar è una scheda di sviluppo orientata all'Internet delle cose ed alla collettività globale. Per realizzare questo mirabile obiettivo, la piattaforma è già dotata di tutto ciò che occorre per mettere su un sistema di rilevazione dei valori provenienti da alcuni dei principali sensori, per esempio quello di temperatura.
La scheda ha una dotazione completa proprio orientata alla connettività: modulo Wi-Fi, 12 pad GPIO e tante altre features garantiscono una versatilità fuori dal comune.
Oggi, però, questa verrà messa alla prova perché scopriremo se e quanto effettivamente la scheda sia facilmente programmabile e che cosa bisogna utilizzare per renderla immediatamente operativa.

Procediamo

Sul sito Internet dedicato, esiste la sezione dedicata agli sviluppatori dalla quale si possono iniziare a muovere i primi passi.
Il primo vero passo è procurarvi una scheda ma da lì La strada è abbastanza semplice. Iniziamo installando l'app sia che siate utenti Android o fan della mela.
Naturalmente vi servirà l'SDK, anche questa disponibile su Github per i due sistemi operativi. Il processo di installazione sarà abbastanza semplice ma se vi serve un'indicazione, utilizzate pure questo riferimento.
Fatto questo, comincerete a consultare la documentazione ufficiale e da qui verrete guidati con chiarezza nei primi passi.
La prima cosa che bisogna fare, se non lo avete fatto, è creare un'account utente: questo è fondamentale per iniziare ed avere pieno accesso alla piattaforma, specie per le sezioni dedicate.
Il vero pezzo forte dell'intera struttura nell'interazione è il Cloud: relayr, infatti, mette a disposizione dei suoi utenti una piattaforma completa e potentissima che riesce a diventare un punto di riferimento tra diverse applicazioni ed i dati che vengono proposti dei sensori oppure dagli altri dispositivi connessi.

Permette all'utente di utilizzare i dati indipendentemente dal metodo e dal formato di acquisizione e questo è un vantaggio notevole perché non dovete occuparvi del parsing e/o dell'interpretazione dei dati ricevuti (ovvero il processo di “normalizzazione” dei dati). Questo è solo uno dei motivi per cui è stata creata una piattaforma di questo tipo, dal momento che il BLE (Bluetooth Low Energy) abbatte le distanze tra il sensore, la piattaforma e l'eventuale server su cui salvare i dati.
Anche per questo motivo, l'App si rende indispensabile.

Funzionamento

Come funziona davvero questo meccanismo?
Prima di tutto, come dicevamo, è cosa utile creare un account utente, effettuare la registrazione e poi accedere all'area di sviluppo.
Successivamente si passa all'OnBoarding, un processo che permette di effettuare l'accoppiamento tra i dispositivi e le credenziali dell'utente, ovvero l'accreditamento, mediante le API relayr.

A questo punto occorre dare uno sguardo alla descrizione d'alto livello del flusso di dati: Device > Cloud Platform > App:

  1. il modulo sensore invia i dati letti attraverso la connessione BLE al modulo Master, che funziona da trasmettitore;
  2. il modulo Master effettua l'invio dei dati al Device Integration Layer, sostanzialmente un server che riceve dati secure MQTT (MQTT/TLS);
  3. i valori vengono inviati attraverso i vari nodi del Cloud; lo stream può essere semplicemente inviato oppure mantenuto all'interno della locazione di memoria in cui si trova;
  4. il relayr Routing Component, il quale resta in ascolto dello specifico canale durante il processo di onBoarding, riceve i dati dal Device Integration Layer e li codifica prima di inviarli ulteriormente;
  5. avviene, quindi, l'invio dei dati over SWS (Secure Web Sockets) a PubNub, un servizio esterno che funge da semplice distributore verso l'applicazione.

Il meccanismo abbastanza semplice e sicuro.

Conosciamo la scheda

Per poterla utilizzare al meglio, è bene conoscere le sue funzionalità. Il Master Module, ad esempio, della Wunderbar è dotato di 3 LED con funzioni peculiari e precise:

  • il LED Wi-Fi, situato a bordo scheda, vicino al connettore USB, diventa acceso quando il modulo non è connesso mentre se spento ci dice che il Master Module ha stabilito una connessione con la rete wireless;
  • il LED per la carica della batteria, posizionato vicino al pulsante di reset, indica lo stato della carica: inizia a lampeggiare dopo quattro ore di utilizzo, se la batteria non è connessa. Quando quest'ultima è carica, il LED sarà acceso;
  • il Mode Indicator è un indicatore del modulo Master che inizia a lampeggiare una volta al secondo durante la modalità OnBoarding, per indicare lo stato di accoppiamento. Le sue funzionalità sono differenti: rimane costantemente acceso ad indicare che il modulo Master è in modalità Device Firmware Update (DFU) Bootloader ed è effettivamente in attesa della nuova versione del firmware. Questa modalità può essere attivata in maniera selettiva con una pressione prolungata del pulsante. Il LED può anche essere spento, cosa che accade comunemente; quando il modulo è connesso, il LED resta spento e si accende solamente quando il sensore pubblica i dati.

Web developement

Si tratta di una piattaforma improntata alla connettività per cui relayr punta allo sviluppo sul Web. Lo scopo di questa piattaforma non è creare delle applicazioni Web ma fare in modo da promuovere lo sviluppo sul Web attraverso strumenti di elaborazione e programmazione. Wunderbar diventa così il supporto migliore perché piattaforma completa ma anche dotata dei giusti strumenti.
Ecco perché relayr ha creato JavaScript micro SDK (il cui download è possibile effettuare direttamente dal repository con tutte le funzionalità di base che servono per lo sviluppo di una Web application (naturalmente si tratta di un'applicazione browser-oriented).
Per iniziare ad usare l'SDK in questione, tutto quello che è necessario fare è includere il file relayr-browser-sdk.min.js all'interno del progetto:

<script src="https://developer.relayr.io/relayr-browser-sdk.min.js"></script>

Per qualunque informazione ulteriore su questo aspetto della Wunderbar, vi invitiamo a consultare la sezione dedicata sul sito.
Nel frattempo, mentre prendete confidenza con questi strumenti, potete dare un'occhiata ad un semplice progetto d'esempio.

Cos'è OAuth 2.0?

Parlare di Wunderbar significa analizzare tutto ciò che riguarda questa scheda, soprattutto in termini di potenzialità. Ecco per quale motivo adesso ci occupiamo di OAuth 2.0 che, come il nome farà facilmente intuire, non è altro che uno standard di autorizzazione.
Per capire al meglio OAuth 2.0, ecco alcune parole chiave fondamentali:

  • Resource Server – ovvero il server che ospita le risorse possedute dall'utente come foto, calendari, video o anche contatti;
  • Resource Owner – in pratica, l'utente di un'applicazione. Quando parliamo di OAuth, il Resource Owner è in grado di accedere ai suoi dati memorizzati su server;
  • Client – un'applicazione, il cui compito è quello di interrogare le API in maniera tale da eseguire azioni.
  • Authorization Server – per ricevere il consenso dall'utente e restituisce token al client, consentendo l'accesso protetto alle risorse.

Da quanto vi abbiamo raccontato si capisce chiaramente che si tratta di un sistema di protezione dei dati e di trasmissione sicura, in particolare di “secure delegated access”. Cioè in pratica, invece di utilizzare le credenziali esplicite, il sistema permette un accesso tramite tokens che vengono garantiti da una terza parte, ovvero il server di autorizzazione. Se l'utente richiede la rimozione di questi token, la connessione diventa nuovamente impossibile.
Di solito questo sistema viene utilizzato dagli utenti per effettuare il collegamento ad un proprio profilo tramite terze parti, ad esempio con i propri account di Google, Facebook o Twitter o altri social network.
Siamo sicuri che questa spiegazione di base vi abbia incuriosito e per questo, se avete voglia di saperne di più, fate pure riferimento alla pagina dedicata.

Conclusioni

Wunderbar è una scheda pensata per essere autonoma e funzionale in tantissime applicazioni diverse.
Naturalmente lo sviluppo di una scheda non può cominciare senza che i produttori ed i tecnici che ci hanno lavorato abbiano provato a creare qualche applicazione dimostrativa (che suggerisca le sue reali potenzialità); quindi, se cercate dei progetti di esempio, delle prove, anche elementari, ma funzionanti ed indicative, potete dare tranquillamente uno sguardo a questo indirizzo su Github in cui viene completamente documentata un'applicazione abbastanza semplice, ovvero l'utilizzo del termometro.

Noi abbiamo avuto la fortuna di vedere dal vivo la scheda alla Maker Faire un paio di settimane fa ed effettivamente tra il suo aspetto, quello che ci hanno mostrato, la documentazione e tutto ciò che abbiamo scritto oggi, crediamo che si tratti di una piattaforma davvero versatile e che prometta molto bene.
Presto inizieremo a metterci le mani sopra.

Un'ultima nota che potrà certamente essere utile a molti: se cercate un Reference per l'SDK, da tempo uno sguardo a questa pagina.

Ma adesso tocca a voi: procuratevi l'app, accendete la scheda, accedete al sito e leggete tutto con attenzione e sappiate che una volta che avete cominciato vi verrà sempre più voglia di sperimentare.

3 Commenti

  1. ammaliovito 24 ottobre 2014
    • Piero Boccadoro 24 ottobre 2014
  2. sergio_arduino48 sergio_arduino48 12 dicembre 2014

Scrivi un commento

EOS-Academy