La prototipazione rapida per applicazioni IoT grazie ai kit di sviluppo specializzati

L'Internet delle Cose è al momento, l'argomento principale di discussione all'interno della comunità industriale. Alcuni esperti potrebbero raccontarti che sarà la prossima rivoluzione, altri invece potrebbero dirti che essa è già arrivata. A prescindere dalla tua posizione all'interno della discussione, è importante comprendere il concetto che sta dietro l'IoT e come si suppone che la progettazione possa trarre vantaggio.

Introduzione

Nella sua forma più pura, l'IoT sta tutto nel connettere Cose (non umane) insieme per prendere decisioni nel modo più rapido e accurato possibile. Le Cose possono assumere forme differenti - dagli oggetti Smart, come telefoni e orologi, ai nodi indipendenti, della dimensione di un francobollo, ma in generale essi hanno tutti dei componenti e dei tratti comuni. Queste Cose sono parte di un sistema più ampio, che generalmente acquisisce dati dall'ambiente per mezzo di sensori, per poi elaborarli grazie a microcontrollori e quindi spedirli attraverso un nodo su un server internet, che allora potrà prendere una decisione come eseguire un'azione su quei dati o immagazzinarli per usi futuri.

Progettare prodotti per l'IoT è più o meno la stessa cosa di progettare prodotti basati su microcontrollori per qualsiasi altra applicazione; usualmente il primo passo è scegliere il corretto kit di sviluppo, e per farlo c'è bisogno di una comprensione approfondita dell'applicazione di destinazione. Per applicazioni IoT ci potrebbero essere tre differenti tipologie di progetto:

Connesse al Cloud - Questi possono essere i più ampi tra i progetti. Essi hanno il potenziale di connettere sistemi da tutto il mondo ad un'unica infrastruttura cloud. Il cloud è realizzato per mezzo di server che utilizzano software dedicati per analizzare ed elaborare i dati raccolti dai sistemi.

Collegati ad una rete locale - Si tratta generalmente di un set di sistemi collegati ad una singola locazione e possono utilizzare una rete intranet per comunicare.

Gateway - I sistemi Gateway sono spesso utilizzati per adeguare sistemi, già esistenti, alla rete Internet.

Kit di sviluppo per sistemi Cloud

Sviluppare prodotti per sistemi connessi al cloud evidenzia le principali differenze tra sviluppare per l'IoT e sviluppare per un tradizionale sistema embedded.  Come menzionato in precedenza, il cloud consiste di uno o più server per fornire spazio di memoria e servizi per il sistema complessivo. I nodi che compongono le "Cose" dell'IoT si collegano a questi server. Mentre i nodi raccolgono i dati, il cloud immagazzina le informazioni per costruire una rappresentazione nel tempo dell'operazione del sistema, e analizza ed elabora i dati in tempo reale per adattare il sistema alla sua efficienza ottimale.

Provare a costruire un sistema IoT connesso al cloud da zero si può rivelare un'impresa scoraggiante. Essa potrebbe essere costosa e richiede tempo e competenza in molte differenti discipline ingegneristiche. I server potrebbero aver bisogno di essere impostati con hardware e software. Drivers e codice applicativo potrebbero anche essere richiesti per entrambi i server e i nodi IoT. Il sistema hardware potrebbe voler essere progettato per i nodi. Dopo questo, l'intero sistema potrebbe voler essere testato e messo a punto per garantire che la connettività tra server e nodi possa avvenire senza soluzione di continuità. Tutte le operazioni precedenti potrebbero dover essere completate prima che il codice applicativo per il sistema venga scritto. Fortunatamente per gli sviluppatori, sono disponibili strumenti per lo sviluppo cloud che possono fornire un ecosistema con varie opzioni di connettività e codici applicativi già testati e provati. Questi strumenti possono consentire agli sviluppatori di ottenere un prototipo in esecuzione in un breve lasso di tempo - qualche volta in un solo giorno.

Per dare un esempio delle differenti opzioni che un produttore può offrire agli sviluppatori, Intel ha due board progettate per facilitare lo sviluppo Cloud, o che possono essere usate come strumento finale. Intel Edison misura solo 25 mm  x 35,5 mm, e permette di essere integrata in prodotti che necessitano di essere posizionati in piccole aree. Anche se piccola, la board confeziona un potente set di componenti come il  22nm Intel Atom SoC con dual core, una CPU a doppio thread a 500 MHz, cosi come un microcontrollore a 32-bit Quark a 100 MHz. I processori sono supportati da un'ampia memoria Flash di 4 GByte e una RAM da 1 GByte. Per fornire la connettività richiesta per le applicazioni IoT, sono inclusi i protocolli WiFi e Bluetooth. Per supportare la board e rendere gli aspetti server del sistema facili da integrare, Intel offre Intel IoT Analytics Cloud Server. Questa offerta  permette agli sviluppatori di collocare, memorizzare e analizzare i dati da Edison senza la necessità di sviluppare una soluzione server personalizzata. Il server cloud opera anche come uno strumento di sviluppo. Per supportare lo sviluppo di applicazioni e la loro messa a punto sull'Edison, Intel fornisce un ambiente di sviluppo basato su Arduino.

La seconda board IoT di Intel è più grande e offre maggiori possibilità rispetto a Edison. La board Intel Galileo Gen 2 certificata Arduino presenta al suo cuore un SoC  32-bit Intel Quark X1000 a 400 MHz ed offre un ventaglio di comuni opzioni di connettività embedded, inclusi SPI e UART. La connessione ad internet è affidata ad una 10/100 Ethernet. Come per la board Edison, la Galileo 2 è supportata nel cloud da IoT Analytics Cloud Server. La figura 1 riporta l'immagine della board Galileo 2.

Figura 1: la seconda board offerta da Intel per la connessione cloud IoT e denominata Galileo 2.

Entrambi i kit di sviluppo Edison e Galileo 2 permettono la raccolta ed il trasporto dei dati, con una facile integrazione dei sistemi cloud. Essi sono dei kit di base che offrono una semplice iniziale migrazione verso lo sviluppo IoT, ma in alcuni casi una più completa soluzione con caratteristiche più potenti potrebbe essere richiesta. Microchip porta il concetto di IoT un passo oltre con una piattaforma per lo sviluppo cloud che usa l'infrastruttura offerta da Amazon’s Elastic Compute Cloud (EC2). Ec2 permette le comunicazioni in entrambe le direzioni, dai nodi verso il cloud e viceversa. Questa abilità permette alla piattaforma di sviluppo di Microchip di essere controllata direttamente dal cloud senza alcun intervento umano.

Kit di sviluppo per IoT su reti locali

La principale differenza tra sviluppare per sistemi cloud e implementazioni IoT su reti locali sta nel fatto che una rete locale potrebbe non necessariamente richiedere un collegamento di comunicazione TCP/IP come Ethernet o WiFi. Bluetooth e ZigBee sono due standard molto popolari che possono essere usati per questo tipo di networking ed avere altre utili caratteristiche come bassi consumi di potenza e maggiore resistenza alle interferenze industriali.

Il kit di Texas Instrument (TI) SimpleLink Bluetooth Smart SensorTagloT è un buon esempio di kit di sviluppo inteso per applicazioni IoT su rete locale. Il kit permette di raccogliere informazioni cosi come di elaborarle e rispedirle. Per facilitare la raccolta, la board include dieci sensori per differenti applicazioni includendo misuratori di accelerazione, temperatura e della luce nell'ambiente. Il kit può anche usare un'applicazione Android o iOS, che si connette al kit di sviluppo mediante Bluetooth. L'applicazione è usata per visualizzare le letture dai sensori e fornire analisi di base. Può anche essere usata per controllare i sensori.

Un altro kit che fornisce un set di capacità similare è il SensorPuck di Silicon Labs. Questo kit offre una vasta gamma di sensori per la luce dell'ambiente, indice UV, temperatura e umidità dell'ambiente. Il kit SensorPuck vanta anche un'applicazione per Android o iOS, che è connessa alla board attraverso un collegamento Bluetooth Low Energy (BLE). Un'utile caratteristica della board SensorPuck è il supporto al broadcast BLE, che permette all'applicazione di collezionare dati da multipli kit SensorPuck. Lo sviluppatore può allora scrivere un'applicazione che analizzi i dati da sorgenti multiple.

Kit di sviluppo per Gateway

I dispositivi Gateway permettono ai dati di essere inviati al cloud da dispositivi che non sono in grado di supportare la connessione TCP/IP. Questi dispositivi comunicano utilizzando standard wireless come ZigBee invece di WiFi o Ethernet. Poichè ZigBee non è basato su TCP/IP, esso non assegna indirizzi IP. Pertanto se lo sviluppatore volesse inviare i dati su Internet senza le eccessive penalità in termini di tempo e denaro che porterebbe uno sviluppo su misura, un gateway può raccogliere le informazioni dalla rete ZigBee e trasferirle. Per questo tipo di applicazioni, Digi ha lanciato il suo XBee ZigBee Cloud Kit. Il Cloud Kit traduce i dati ZigBee in pacchetti TCP/IP per poi spedirli al Cloud via Ethernet o WiFi. Digi possiede un account cloud sponsorizzato per ospitare i dati caricati dal Gateway. Lo sviluppatore può allora usare un browser per accedere al pannello di controllo cloud e interagire con i dati attraverso il kit XBee Cloud. La figura 2 evidenzia le funzionalità di XBee ZigBee Cloud kit.

Figura 2: rappresentazione schematica delle funzionalità offerte da XBee ZigBee Cloud Kit realizzata da Digi

Anche Intel ha una soluzione per i gateway, intesa per progetti IoT con un maggior grado di complessità. Oltre a supportare 10/100/1000 Ethernet e WiFi, il DK300 Series Gateway Solution può anche inviare i dati su internet attraverso il cellulare 2G/3G/4G. Per raccogliere i dati iniziali dai nodi, il gateway vanta Bluetooth, USB, porte seriali e ZigBee.

Conclusioni

Uno sviluppatore che comincia da zero dovrà considerare i costi e il tempo per progettare il sistema completo, cosi come le numerose differenti tipologie di abilità specialistiche richieste per implementare tale sistema. La compagnia dovrebbe invece avere accesso a personale con competenze in comunicazioni cablate e wireless, progettazione di hardware e software embedded, e sviluppo driver per i nodi che raccolgono i dati, cosi come le competenze per lo sviluppo di applicazioni mobile e cloud per il lato IT del sistema. I kit di sviluppo progettati specificamente per l'IoT forniscono, hardware, software, firmware e gli strumenti per il sistema IoT, permettendo allo sviluppatore di concentrarsi interamente sullo sviluppo di applicazioni che è specifico per quella unica implementazione. Con una cosi ampia varietà di kit di sviluppo disponibili, con opzioni per quasi tutti i protocolli di comunicazione concepibili, nonché funzionalità scalabili per cloud, la creazione di un sistema IoT non è mai stata cosi facile.

A cura di Mark Patrick, Mouser Electronics

 

 

2 Commenti

  1. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 12 maggio 2017
  2. Giovanni Di Maria Giovanni Di Maria 12 maggio 2017

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *