Seleziona una pagina
Hardware nell’IoT

Hardware nell’IoT

Premessa

Questo è il secondo post di una serie dedicata all’Internet delle Cose nell’ambito più ampio dell’Industria 4.0. Il primo ha coperto, oltre ad una breve introduzione all’argomento, i criteri di scelta del sistema operativo e del software associato, mentre l’intervento di oggi toccherà gli aspetti hardware tentando di chiarire i criteri con cui scegliere la piattaforma IoT giusta per il proprio prodotto. Vale per questo come per il post precedente l’approccio metodologico di non trattare Arduino e piattaforme su cui giri Linux per i motivi già menzionati in quest’ultimo.

 

L’hardware

A questo punto serve qualche chiarimento: ciascuna delle sezioni hardware seguenti descrive un chip, il quale proviene da un singolo costruttore e va acquistato all’ingrosso da terze parti o da distributori autorizzati. Di solito non viene fornito con strumenti in grado di immagazzinare codice o interagire col mondo esterno.  Un modulo invece è un prodotto basato sui succitati chip, aggiungendo caratteristiche come la capacità di immagazzinare dati in maniera persistente, antenne WiFi/Bluetooth integrate, e così via.  I moduli sono rilasciati da produttori diversi ma usano lo stesso chip. Di prassi i suddetti moduli sono versioni prodotte su larga scala del design di riferimento del costruttore del chip, quindi per componenti hardware comuni c’è solitamente ben poca differenza fra i vari moduli, fatta eccezione per il prezzo. Una scheda può contenere un chip o un modulo ma fornisce in più cose come diversi modi di alimentare l’hardware, connettori e pin per collegarvi hardware esterno, e via dicendo. A differenza dei moduli le schede possono variare molto da un costruttore hardware all’altro, e tendono ad essere adattate ad usi o esigenze specifiche. Una occhiata alle immagini qui sotto renderà tale concetto molto più chiaro:


[Chip] Atmel ATXMega 128A1 Photo By Springob – Own work, CC BY 3.0,

[Modulo] ESP8266 Photo By Sparkfun Electronics – CC BY 2.0


[Scheda] Wireless Internet of Things (WIOT) Board by ubld.it CC BY-SA 3.0

Dal punto di vista hardware scegliere la piattaforma giusta è un compito ancora più importante. Non va dato nulla per scontato in quanto soluzioni differenti possono sembrare inferiori comparate ad altre ma potrebbero essere del tutto adeguate al compito cui sono destinate. Concepire soluzioni IoT all’uopo è tutt’altra questione rispetto a idearne per uso generico, si prenda ad esempio la connettività WiFi:

I sistemi per uso generico oggigiorno sono tutti forniti di una qualche interfaccia WiFi che ci si aspetta semplicemente che “funzioni”. Ma la WiFi su dispositivi IoT è un altro paio di maniche. Si tengano a mente un paio di cose quando si sceglie quale chip utilizzare, sebbene nessuno ci penserebbe mai riguardo ad un dispositivo ad uso generico di questi tempi:

* Questo dispositivo è destinato ad un ambiente domestico o industriale? Nel secondo caso chip WiFi differenti possono avere antenne separate per la ricezione e la trasmissione, anche più di una. Si tenga conto che se il dispositivo deve agire come sensore o per acquisizione dati, per fare in modo di ridurre perdite di dati in uscita bisognerà procurarsi un chip che abbia due antenne per la trasmissione e una per la ricezione, ad esempio. Un disturbo da parte di un altro apparecchio può rendere irrealizzabili i design oltre un certo livello di complessità in quanto non sono resilienti verso le interferenze quanto gli elementi più semplici.

* Bisogna inoltre chiedersi quanti dati riceverà e trasmetterà il dispositivo. A differenza dei dispositivi per uso generico, la memoria è spesso scarsa e in tal caso due scenari negativi si prospettano su hardware di fascia bassa: o il firmware è troppo lento nel gestire i dati in ingresso, o è troppo veloce nel generare quelli in uscita. Nel primo caso si deve riuscire a gestire la perdita di dati, e pertanto si potrebbe aver bisogno di implementare un meccanismo di ritrasmissione dei dati se si ha bisogno di una bassa latenza, oppure passare a protocolli che lo facciano di per sé – a spese di un incremento di memoria o maggiore latenza. Nel secondo caso a seconda del sistema si potrebbe riscontrare un crash di sistema o l’impossibilità di trasmettere i dati senza che sia generato un messaggio di errore, dato che per quanto concerne al sistema operativo, l’unica cosa di cui preoccuparsi è il mandare i dati alla scheda di rete per la trasmissione (la cui coda d’invio è piena e i pacchetti finiscono nel nulla senza generare avvisi).

Tutto ciò va ad aggiungersi alle scelte tradizionali di design della parte elettronica, come il consumo di corrente, la dispersione di calore, i requisiti di voltaggio, e così via. Il design dell’hardware non è mai stato facile di suo ma se per un certo periodo ce la si poteva cavare con soluzioni generiche come computer a scheda madre singola con CPU x86 compatibile, di questi tempi clienti potenziali e non vogliono componenti più piccole e meno dispendiose – la qual cosa comporta lavoro extra nel selezionare le componenti che finiranno nel design finale.

Quelli fra di voi che erano attivi tra la seconda metà degli anni Ottanta e la prima dei Novanta possono paragonare senza problemi un simile scenario con quello degli home computer dell’epoca, quando c’era una pletora di sistemi diversi incompatibili fra di loro che si davano battaglia per una fetta di mercato – tutto ciò avveniva prima della standardizzazione verso il PC con cuore Intel. Per l’IoT siamo ancora alla fase “competitiva”, in cui soluzioni diverse incompatibili fanno del loro meglio per dominare il mercato. A titolo di esempio ecco una rapida lista di alcune CPU presenti sulle schede IoT:ARM, ARC, AVR, FT32, MIPS, NDS32 ), PIC, Super-H , x86 e Xtensa.  Alcune di esse sono ben note, come ARM e x86, ma si va anche verso soluzioni esotiche con esempi come NDS32 (la CPU dietro il modulo MediaTek MT7681 per dirne una), o FT32 – la quale è una architettura CPU nuova di zecca creata da FTDI per cui sono appena stati disegnati dei moduli.

 

Il post successivo di questa serie approfondirà le caratteristiche tecniche del chip ESP8266.

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 è stato uno dei relatori, in diretta Skype da Taiwan, all’evento UBG dedicato all’IoT il 22 febbraio presso Hub Corciano.

Le sfide dell’Industria 4.0 per lo sviluppo armonico della PMI

Le sfide dell’Industria 4.0 per lo sviluppo armonico della PMI

L’industria 4.0, l’Internet of Things (IoT), l’intelligenza artificiale, il cloud computing e più in generale la digital transformation sono fattori che stanno cambiando enormemente il modo di fare impresa.

Non si tratta dell’implementazione di nuovi sistemi, di nuove tecnologie o di digitalizzare qualche processo ma di un cambiamento radicale che impatta inevitabilmente sul modo di pensare: una rivoluzione dirompente che riguarda le aziende di ogni settore e in ogni fase del proprio Ciclo di Vita. Alla base di questa trasformazione ci sono i dati: la loro raccolta, la loro gestione e la loro analisi (data driven). La sfida è inevitabile, l’impresa non può affrontare questo passaggio epocale se non attraverso l’adozione di modelli manageriali con un cambio di passo in termini culturali e organizzativi che impattano in maniera multidisciplinare su tutta l’azienda. La trasformazione digitale, passa dunque per la creazione di una cultura aziendale che percepisca i dati come una risorsa strategica che alimenta ogni fase del processo decisionale. I livelli di competitività dell’impresa sono tanto più elevati quanto maggiore è il suo grado di flessibilità e adattabilità al contesto in cui opera. La sua capacità di risposta in termini di produttività ed efficienza, è strettamente legata alla capacità di innovare e pianificare le proprie strategie in modo puntuale, analitico attraverso l’innesto di una gestione razionale del dato.

La raccolta, la gestione e l’analisi dei dati sono attività divenute necessarie per lo sviluppo dell’impresa tanto che l’approccio data driven risulta indispensabile per prendere decisioni e creare strategie. Non possiamo più permetterci di snobbare l’enorme mole di dati disponibili basando le politiche aziendali sull’intuito, formulando scelte “di pancia” o andando, come si dice, “a naso”. I processi di business governance, in ogni ambito della vita aziendale, devono essere supportati da un approccio analitico basato sui dati e sull’impiego di adeguati modelli di analisi.

Un approccio manageriale data driven implica una struttura organizzativa all’interno della quale si sviluppino da un lato, le condizioni per favorire una sensibilità verso l’importanza strategica del dato, e dall’altro, si integrino ai processi operativi già informatizzati, quelli di Data Quality, Data Integration e Data Governance. L’attenzione va riposta all’intero ciclo di vita del dato: deve essere affidabile, accurato e pronto per gli scopi previsti. La qualità dei dati è un elemento imprescindibile per aumentarne l’efficacia nei processi aziendali.

L’integrazione dei dati permette di combinare e unire informazioni provenienti da sistemi diversi, ottenendo una vista di sintesi (sistemica) dei fenomeni analizzati immediata e coerente con le esigenze aziendali. È come realizzare un puzzle a partire da singoli pezzi provenienti da scatole diverse. Tutti i dati rilevanti e strategici devono essere gestiti formalmente a livello enterprise: le strategie di gestione dei dati devono allinearsi alle strategie aziendali coinvolgendo risorse, processi e tecnologie di impiego del dato.

Il patrimonio informativo aziendale deve essere valorizzato trasformandolo in un vero e proprio asset strutturale. L’implementazione di logiche di processo di gestione del dato, in grado di canalizzare correttamente i flussi informativi, le adeguate competenze di analisi e impiego dei dati, unitamente ad opportuni strumenti tecnologici rappresentano il mix di componenti che occorre gradualmente introdurre all’interno dell’impresa.

Applicare il Data Driven Management, in sintesi, significa mettere l’impresa nelle condizioni di aprirsi a nuove opportunità di business, accogliendo strumenti e metodologie operative in grado di sviluppare nuovi prodotti e nuovi servizi, di migliorare l’efficienza operativa ottimizzando i costi e il processo decisionale attraverso l’impiego di modelli di analytics. Grazie al supporto di avanzati modelli di analisi, l’impresa è in grado di scoprire le tendenze del mercato, conoscere in anticipo trend e decifrare il comportamento dei consumatori. Segmentazione analitica della domanda, definizioni di campagne di marketing mirate, strategie di up selling e cross selling sono solo alcune delle possibilità innescate dai processi di data analysis.

La cultura del data driven management resta di fatto l’elemento portante del processo di cambiamento delle imprese, senza il quale difficilmente si riuscirà ad innescare processi di innovazione tali da garantire agilità e flessibilità di business necessari per rimanere competitivi negli attuali contesti di mercato. Le tecnologie sono abilitanti, i dati sono la materia prima e i modelli di analisi sono lo strumento, ma è alle persone che è affidata l’azione: se essa non è guidata dalle analisi allora nessun dato è in grado di condurre ad un beneficio, nonostante le avanzate e innovative tecnologie disponibili.

In definitiva, solo attraverso decisioni basate sui dati, possono raggiungersi in modo continuativo obiettivi di crescita.

Articolo di Fabrizio Galeazzi e Francesco Stefani

Hardware nell’IoT

IoT, criteri di adozione delle piattaforme

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.