Come collegare e inviare rapidamente i dati IoT direttamente al cloud e accedervi da remoto

Di Bill Giovino

Contributo di Editori nordamericani di DigiKey

Molti sviluppatori stanno realizzando progetti Internet delle cose (IoT) che devono connettersi al cloud per lo storage dei dati, l'accesso remoto e, più recentemente, servizi di analisi dei dati. Trovare però i mezzi più efficienti e sicuri per tale tipo di connessione non è facile.

Questo articolo descriverà come utilizzare la scheda di valutazione Google Cloud di Microchip Technology come endpoint di sensori IoT per connettersi alla piattaforma Cloud IoT di Google. Ciò consentirà alla scheda di memorizzare dati che possono essere letti da qualsiasi posizione utilizzando una semplice interfaccia basata su browser.

Introduzione allo storage di dati su cloud

Nel caso di un endpoint IoT embedded, per iniziare l'hosting su cloud occorre un server cloud con connettività e software appositi. Google Cloud Platform (GCP) è lo strumento giusto. Inoltre, l'endpoint IoT embedded deve disporre di firmware che consenta il controllo remoto dell'endpoint. Microchip Technology ha semplificato il processo di sviluppo fornendo tutto il software necessario con la scheda di valutazione AVR-IoT AC164160 per cloud.

Immagine della scheda di valutazione AVR-IoT di Microchip per cloud

Figura 1: La scheda di valutazione AVR-IoT per cloud di Microchip è un endpoint IoT completo che uno sviluppatore può utilizzare per collegare rapidamente un progetto al server IoT Google Cloud. (Immagine per gentile concessione di Microchip Technology)

La scheda AVR-IoT è appropriata per un endpoint IoT e un esame attento del suo funzionamento dimostra anche come operano gli endpoint IoT e il cloud computing.

Funzionamento della scheda AVR-IoT

La scheda è configurata per connettersi a un server Google Cloud tramite Wi-Fi. Una volta stabilita una connessione al server, i dati possono essere archiviati e visualizzati in tempo reale.

I componenti della scheda sono stati scelti in funzione dell'ottimizzazione dei consumi, così da farne un prodotto ideale per un endpoint IoT alimentato a batteria. Il microcontroller è un processore AVR® a 8 bit ATMEGA4808-MFR di Microchip a 20 MHz che assorbe 8,5 mA. In modalità standby, quando è in esecuzione solo il clock in tempo reale (RTC), assorbe 690 nA.

Il microcontroller controlla la scheda e le interfacce con tutti i sensori e i LED. Il core è supportato da 48 kbyte di flash, 6 kbyte di SRAM e 256 byte di EEPROM. La EEPROM è utilizzata per archiviare i dati di connettività Wi-Fi. Un moltiplicatore hardware a due cicli consente di risparmiare energia riducendo i cicli della CPU.

ATMEGA4808 ha una serie completa di periferiche, tra cui quattro timer a 16 bit, tre USART, un'interfaccia SPI e un comparatore analogico, che lo rendono idoneo per applicazioni endpoint di sensori IoT a basso consumo.

Per la connettività Wi-Fi, ATMEGA4808 si connette tramite la porta seriale SPI a un modulo Wi-Fi IoT a 2,4 GHz 802.11 b/g/n ATWINC1510-MR210UB1961 di Microchip Technology (Figura 2). È completamente autonomo e supporta la sicurezza WEP, WPA e WPA2. È dotato di un'antenna integrata per aiutare gli sviluppatori che potrebbero non essere esperti di layout delle antenne RF. Per una portata superiore, supporta anche un'antenna esterna. Le connessioni crittografate sono supportate con TLS.

Immagine del modulo Wi-Fi WINC1510 di Microchip Technology

Figura 2: Il modulo Wi-Fi WINC1510 di Microchip Technology ha un ingombro di 21,7x14,7 mm e supporta punti di accesso wireless a 2,4 GHz 802.11 b/g/n. Si collega a un microcontroller host tramite una porta seriale SPI. (Immagine per gentile concessione di Microchip Technology)

WINC1510 funziona con un'alimentazione da 2,7 a 3,6 V e, quando è operativo, assorbe 290 mA. Una modalità di semiriposo spegne il dispositivo ma salva tutte le impostazioni. In questa modalità, il modulo assorbe 380 μA, utile per applicazioni a bassissima potenza che accendono e spengono la radio, come nel monitoraggio dei radiofari. WINC1510 può connettersi a un accesso Wi-Fi in 150 ms. L'interfaccia completa a un microcontroller host utilizza otto pin: un'interfaccia slave SPI a quattro fili e quattro GPIO per i segnali di controllo. Il modulo è provvisto di tutte le certificazioni per l'uso nelle Americhe, in Europa e in Asia. Pertanto è molto più facile ottenere l'approvazione della FCC per il progetto finale.

La scheda AVR-IoT ha un ingombro di 63,5x25,4 mm e si collega a un PC tramite un cavo USB sia per l'alimentazione che per i dati. Sono supportati Windows, Linux e MacOS. Quando alimentati, i quattro LED della scheda (blu, verde, giallo e rosso) lampeggeranno due volte in sequenza da sinistra a destra per indicare che la scheda funziona correttamente.

La scheda assomiglia a una chiavetta di memoria flash per PC e contiene cinque file. Per collegarsi a Internet, lo sviluppatore fa clic sul file chiamato CLICK-ME.HTM. Nel browser predefinito si aprirà una pagina che gli consente di connettersi al Wi-Fi locale (Figura 3).

Immagine della scheda AVR-IoT di Microchip

Figura 3: La scheda AVR-IoT di Microchip viene collegata a una rete Wi-Fi locale inserendo le informazioni del punto di accesso Wi-Fi nella parte inferiore sinistra di questo file CLICK-ME.HTM. (Immagine per gentile concessione di Microchip Technology)

Dopo aver inserito il nome della rete, selezionando il tipo di rete e immettendo la password, il LED blu si illuminerà indicando che la scheda è connessa alla rete Wi-Fi locale. Subito dopo si accenderà il LED verde, per segnalare che la scheda è collegata al server Google Cloud. Ogni volta che la scheda invia i dati al server Google Cloud, il LED giallo lampeggia. Tutte le informazioni scambiate tra AVR-IoT e il server Google Cloud sono crittografate.

IoT, connessioni crittografate e crittografia dei dati

Il traffico Internet tra i punti avviene su una connessione protetta che in genere viene crittografata tramite Transport Layer Security (TLS). Questo non impedisce che un hacker possa trovare un difetto nella connessione crittografata e acquisire i dati lanciando un attacco MIMT (Man-in-the-Middle). Per impedire che un progetto sia vittima di un attacco del genere, anche i dati devono essere crittografati. In genere vengono utilizzati gli standard di crittografia AES o SHA.

Per crittografare i dati trasmessi a Google Cloud, AVR-IoT è dotato di un chip Security CryptoAuthentication™ ATECC608A-MAHCZ-T di Microchip Technology che si interfaccia con il microcontroller AVR tramite un'interfaccia I2C. ATECC608A è un chip di memoria crittografica che supporta numerosi standard di crittografia, inclusi AES-128 e SHA-256. Viene utilizzato per archiviare le chiavi pubbliche e private impiegate per la comunicazione con il server Google Cloud.

Ogni ATECC608A in ogni AVR-IoT viene pre-programmato da Microchip Technology con proprie chiavi pubbliche e private esclusive. La chiave privata di ATECC608A si trova nella memoria sicura e non può essere rivelata nemmeno se l'interfaccia I2C viene monitorata e registrata con un analizzatore logico. La chiave pubblica viene rivelata nell'URL inviato a Google Cloud e si trova anche in un file PUBKEY.TXT che può essere letto dall'interfaccia USB del PC host collegato ad AVR-IoT. Microchip Technology rende disponibile il funzionamento dettagliato di ATECC608A solo previo accordo di non divulgazione.

Tuttavia, il firmware del microcontroller ATMEGA4808 in AVR-IoT è già configurato per utilizzare in modo efficiente ATECC608A in un progetto Google Cloud sicuro. Ciò mostra molto chiaramente allo sviluppatore i dettagli delle funzioni crittografiche di ATECC608A, semplificando e accelerando notevolmente lo sviluppo.

Per endpoint IoT ad alta sicurezza, ATECC608A protegge sia l'applicazione che se stesso. È molto resistente agli attacchi fisici di pirateria informatica e può rilevare e proteggere da molti attacchi del canale laterale, come l'applicazione di freddo estremo per mantenere il contenuto della memoria o un clock I2C insolitamente veloce o lento. Può anche rilevare i tentativi di decapping del dispositivo per esaminarne l'architettura interna. Anche i contenuti della memoria interna del dispositivo sono crittografati. ATECC608A può anche contenere meccanismi di sicurezza riservati noti solo agli ingegneri Microchip Technology.

Lavorare con il server IoT Google Cloud

Dopo essersi collegato al server IoT Google Cloud, AVR-IoT inizia lo scambio di dati. AVR-IoT contiene sia un sensore della luce che uno della temperatura. I dati di questi sensori vengono inviati al server Google Cloud e possono essere visualizzati in tempo reale (Figura 4). Per vedere i dati da qualsiasi browser, lo sviluppatore deve inserire il seguente URL:

avr-iot.com/device/{publickey}

Dove {publickey} è la chiave pubblica assegnata alla scheda AVR-IoT.

Il server Google Cloud utilizzato è un account sandbox demo, pertanto i dati inviati da AVR-IoT a Google Cloud non vengono memorizzati in modo permanente e vengono cancellati quando la connessione al server si interrompe.

Immagine del server IoT Google Cloud

Figura 4: La pagina Web offerta dal server IoT Google Cloud può visualizzare i dati del sensore della temperatura e della luce raccolti da AVR-IoT. (Immagine per gentile concessione di Microchip Technology)

Per un server cloud dotato di maggiori funzionalità, il kit AVR-IoT contiene le istruzioni per aggiornarlo a un account Google Cloud privato. Con un account Google Cloud privato, uno sviluppatore può archiviare le informazioni in modo permanente su Google Cloud per poterle usare in un secondo momento. Può anche creare un'interfaccia Web su Google Cloud privato in grado di comunicare con AVR-IoT, consentendo all'interfaccia Web di ospitare applicazioni online che possono inviare comandi al firmware personalizzato sulla scheda. Ovunque si trovi, può, ad esempio, controllare qualsiasi pin GPIO su ATmega4808, che può essere collegato ad apparecchiature elettroniche.

Conclusione

Esistono molti libri e siti Web che spiegano lo storage, l'accesso e l'utilizzo di dati su cloud, ma spesso è più semplice imparare da un esempio. La scheda AVR-IoT di Microchip semplifica la connessione al cloud e dimostra le basi dello storage di dati su cloud, della crittografia e del controllo degli endpoint IoT.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Bill Giovino

Bill Giovino

Bill Giovino è un ingegnere elettronico con un BSEE ottenuto a Syracuse University, ed è uno dei pochi ad essere passati con successo da progettista, a ingegnere delle applicazioni sul campo, al marketing tecnologico.

Da oltre 25 anni, Bill promuove le nuove tecnologie per un pubblico tecnico e non tecnico a nome di molte aziende, tra cui STMicroelectronics, Intel e Maxim Integrated. In STMicroelectronics, Bill ha contribuito a guidare i primi successi dell'azienda nel settore dei microcontroller. Con Infineon, Bill ha orchestrato i primi successi di progettazione di microcontroller dell'azienda nel settore automotive statunitense. In qualità di consulente di marketing per la sua società CPU Technologies, Bill ha aiutato molte aziende a trasformare prodotti di secondo grado in storie di successo.

Bill è stato uno dei primi ad adottare l'Internet delle cose, compresa l'integrazione del primo stack TCP/IP completo su un microcontroller. Bill è fedele al motto "Le vendite guidate dall'educazione" e tiene molto alla crescente importanza di comunicazioni chiare e ben scritte nella promozione di prodotti online. È moderatore del famoso gruppo Sales & Marketing di LinkedIn Semiconductor e parla correntemente di B2E.

Informazioni su questo editore

Editori nordamericani di DigiKey