Seleziona una pagina

IoT, vantaggi nell’adozione e scenario in Umbria

L’Internet of Things estende le possibilità aperte da internet e dall’informatica in generale agli oggetti del nostro quotidiano e alle realtà imprenditoriali produttive e di servizi. Gli infiniti campi di applicazione spaziano dalla domotica, alla sensoristica intelligente in ambito industriale, dalle città intelligenti (smart cities) al biomedicale. La gamma di vantaggi è altrettanto ampia, va dal risparmio (energetico, riduzione degli scarti, e così via) alla prevenzione e gestione in tempo reale, spesso completamente automatizzata, di problematiche, sino alla raccolta capillare di dati su tutti gli aspetti produttivi dell’azienda, di casa nostra, o dell’intera città, indispensabili per una pianificazione ragionata degli interventi e del futuro. Anche in Umbria c’è fermento ed eccitazione riguardo all’IoT, tanto che si moltiplicano convegni e conferenze sul tema da parte di organismi autorevoli e sono già sorte alcune startup (SmartPeg, Innovactive, ecc.) di un certo respiro focalizzate sull’Internet delle Cose. Assumendo come dato di fatto l’ingresso da parte dell’imprenditoria locale tradizionale in questo nuovo mondo, così come è già successo venti anni fa con l’adozione di Internet nella sua forma più classica, sarà opportuno comprendere una metodologia critica nello scegliere una soluzione IoT invece di un’altra salvo pagarne economicamente e gestionalmente lo scotto a lungo termine.

Introduzione

Le piattaforme IoT si presentano in varie configurazioni oggigiorno: chip singoli, moduli e schede già pronte. Ognuna di queste trova uso in un prodotto custom e questa serie di post ne tratterà alcune.

Note
Tenete conto che questa serie di post non tratterà Arduino. Innanzitutto le librerie software di Arduino sono coperte da una licenza che potrebbe risultare incompatibile per un prodotto commerciale costruito su larga scala. Inoltre c’è un numero pressoché infinito di schede che sono derivate dall’hardware originale di Arduino o che eseguono codice su ambiente Arduino.

In ultimo, questa serie di post non coprirà piattaforme che eseguano Linux nelle sue varie forme. Una volta che una scheda, un modulo, ecc. fa girare Linux risulta più o meno equivalente a prodotti hardware simili, e discernere quale piattaforma sia più adatta diventa una questione di quale offra più caratteristiche a prezzo minore piuttosto di quali caratteristiche della scheda siano più calzanti per il fine prefissato.

Il software

Se bisogna trovare un elemento di contatto fra le piattaforme IoT, il punto di partenza ideale è la parte software di questa equazione.

Le piattaforme IoT più comune di questi tempi si basano su un sistema operativo chiamato FreeRTOS, viene utilizzato là dove ci si aspetta alta affidabilità e tempi di reazione immediati.  A differenza di sistemi operativi come Linux, Windows, o macOS, FreeRTOS NON offre supporto internet preconfigurato di serie.  Tradizionalmente non c’è stato in passato un vero bisogno di connettere piccoli prodotti hardware ad Internet, quindi gli sviluppatori che hanno lavorato su FreeRTOS si sono concentrati sul nocciolo del sistema operativo in sé fino a tempi recenti (uno sforzo successivo dallo stesso team di sviluppo si può trovare qua, sebbene il suo design non sia ancora allo stadio definitivo).

Questa lacuna è colmata da lwIP, una libreria software che permette all’hardware embedded di accedere a internet a patto che venga scritto il codice necessario a interagire con l’interfaccia di rete e il sistema operativo.

Dal punto di vista dei non-addetti ai lavori, ciò significa che se i costruttori di hardware si standardizzano in qualche modo su una base FreeRTOS + lwIP, migrare da una soluzione hardware a un’altra diventa una faccenda di riscrivere il codice specifico per quella piattaforma invece di ricominciare da zero. Ciò è già successo grossomodo sul fronte Linux, dove il codice dell’applicazione di rado cambia fra piattaforme hardware diverse fintanto che le suddette fanno girare una qualche forma di Linux.
Esistono comunque alternative a FreeRTOS, sia commerciali, come µC/OS, ThreadX, Nucleus, MQX, ecc. che Open Source tipo RTEMS oppure eCos e così via.  Se prendiamo in considerazione le offerte commerciali i due fattori dirimenti sono il livello di supporto offerto e il costo di licenza per unità, in quanto tutti i prodotti summenzionati sono completi e quasi equivalenti dal punto di vista delle caratteristiche offerte.
Ad ogni modo, un prodotto IoT è assolutamente qualcosa di più che un sistema operativo capace di connettersi a internet. Alcuni costruttori di solito allegano codice di terze parti alle loro piattaforme. Ad esempio, fornendo una libreria per il protocollo MQTT per consentire una facile integrazione con soluzioni di gestione IoT aderenti agli standard, o un parser JSON  per integrarsi con servizi web preesistenti, fra i tanti casi possibili. Altri costruttori possono fornire integrazione con l’Homekit di Apple o AirKiss (un sistema cinese di gestione unificata IoT che s’è garantito un proprio ruolo).

Il prossimo post di questa serie prenderà in esame gli aspetti hardware, in particolare cercherà di gettare luce su quali siano i criteri con cui scegliere la piattaforma IoT giusta per il tuo prodotto.

Guest post di Alessandro Gatti: consulente freelance IoT a Taiwan, in passato dopo aver esordito nello sviluppo di app J2ME nel 2003 ha lavorato fra gli altri come dipendente di Rakuten in Giappone (principale concorrente di Amazon in quel paese) e Opera a Taiwan e in Norvegia. Cura l’intero sviluppo in ambito embedded e su piattaforme iPhone/Android/Windows Phone, fino ad aspetti low-level come la programmazione in assembly o C del firmware e offre servizi di reverse engineering, coaching dei team di sviluppo, design di soluzioni Industry 4.0 dai tempi di SCADA e non solo. Editato da Fabrizio Bartoloni. Alessandro Gatti sarà uno dei relatori, in diretta Skype da Taiwan, all’evento UBG dedicato all’IoT il 22 febbraio presso Hub Corciano.