'Preparare un prodotto connesso'

Aggiornamento: 9 dicembre 2023

'Preparare un prodotto connesso'

'Preparare un prodotto connesso'

Aggiungere un dispositivo connesso al tuo portafoglio può essere difficile. Jonathan Pallant esamina come scegliere gli "ingredienti perfetti".

 

I dispositivi connessi tendono a trovarsi all'estremità più complessa dello spettro del sistema integrato, indipendentemente dal fatto che raccolgano i dati dei sensori da soli o si interfacciano con apparecchiature preesistenti.

La loro complessità nasce dall'interazione tra le loro tre parti costituenti: la parte locale, che genera i dati o necessita di qualche controllo; il sistema far che registra i dati e / o fornisce istruzioni; e la connessione tra di loro, che tipicamente opera su una grande distanza ed è spesso osservabile (e persino interrompibile) da terze parti inaffidabili.

Queste complessità, tuttavia, sono spesso superate dal miglioramento del coinvolgimento dei clienti, da approfondimenti aziendali dettagliati e persino da modelli commerciali completamente nuovi che possono essere raggiunti.

Il sottile equilibrio tra complessità e funzione significa che la costruzione del giusto tipo di dispositivo connesso è spesso in parte arte e in parte scienza. In effetti, è un po 'come cucinare un ottimo pasto: ci sono praticamente un numero infinito di modi per riunire ingredienti e piatti chiave. Alcuni possono essere assemblati abbastanza rapidamente, mentre altri richiedono più tempo e sforzi per essere perfezionati, ma che potrebbero essere più adatti ai gusti di qualcuno.

Un approccio consiste nel suddividere il processo di sviluppo dell'IoT in diverse scelte specifiche ma fondamentalmente connesse. Ma non è sempre facile capire quali decisioni prendere per prime, e c'è sempre il rischio che una decisione anticipata possa limitare le tue scelte successive e portare l'intero sistema a non essere ottimale.

Abbiamo raggruppato in modo allitterativo queste scelte in sei diverse aree da considerare quando si pianifica la perfetta "festa" dell'IoT.

La connettività è probabilmente il miglior punto di partenza, poiché è il componente fondamentale su cui si blocca il resto dell'offerta. Il piatto principale, se vuoi.

Il corso di connettività

La connettività chiave la tecnologia i requisiti per i prodotti sono definiti da costo, consumo energetico, portata, velocità dati e latenza. Ma alla fine sono legati insieme dalle leggi della fisica e dell'economia. E tutte le tecnologie odierne esistono nel loro particolare punto debole all'interno di questo spazio multidimensionale.

La maggior parte dei sistemi avrà probabilmente bisogno della connettività wireless per accedere a Internet, che purtroppo è in genere meno affidabile e più costosa rispetto all'utilizzo di una connessione cablata. Quasi tutti gli standard wireless coinvolgono almeno due classi di dispositivi: un componente più piccolo e a basso consumo (come un telefono cellulare) e un gateway più grande e a maggiore potenza (come un Wi-Fi router). È inoltre necessario considerare la proprietà e l’affidabilità di tali gateway, confrontando ad esempio il router Wi-Fi di un proprietario di casa con l’accesso a una rete mobile.

In qualunque modo tu vada, è quasi sempre meglio fare affidamento sugli standard di connettività esistenti con un'ampia accettazione del mercato piuttosto che sviluppare qualcosa da zero.

Il corso Chipset

La prima decisione da prendere è se optare per un chipset che integri processore, memoria e radio, o se combinare diversi ingredienti per ottenere il giusto mix di prestazioni, prezzo e consumo energetico.

Se hai bisogno di connettività cellulare a basso consumo, con LTE-M o NB-IoT, un dispositivo come il Nordic nRF9160 è un pacchetto convincente di CPU, RAM, Flash, GPS e Modem. Ma se puoi permetterti il pcb spazio, potresti preferire la flessibilità di uno "standard" microcontrollore e un LTE separato modulo. Una storia simile vale per gli standard wireless come Wi-Fi e Bluetooth, dove sono disponibili microcontrollori con radio integrata e anche moduli modem autonomi.

Ovviamente, i dispositivi IoT non funzionano solo su microcontrollori di base. Ci sono molti esempi in cui la potenza e la capacità tecnica di un sistema completamente basato su kernel Linux è stata la scelta giusta, anche con gli effetti a catena sul consumo di energia, lo spazio e il carico di supporto del software.

Il corso principale

Questa fase prevede l'introduzione di software preesistente (essenzialmente "IP di terze parti") tra cui: il kernel del sistema operativo (o sistema operativo in tempo reale); i driver del chipset; e il pacchetto di supporto scheda (BSP) che personalizza quei driver per il tuo particolare progetto PCB.

I fornitori di chipset spesso forniscono un Software Development Kit (SDK) gratuito che contiene tutto questo. Ma vale la pena ricordare che questo SDK potrebbe non funzionare con il silicio di nessun altro, limitando la tua capacità di cambiare fornitore in futuro. Se questo è importante, forse prendi in considerazione un'offerta indipendente dal fornitore come Amazon FreeRTOS o ThreadX di Microsoft.

Anche i sistemi basati su Linux hanno opzioni simili, spesso con una "distribuzione" gratuita per iniziare. Ma potresti preferire il roll-your-own o utilizzare una distribuzione Linux standard più generica, come Ubuntu Smart Start o Fedora IoT. Tutto dipende dai requisiti di sicurezza, dai tempi di sviluppo e da eventuali limitazioni del sistema sul consumo energetico e sullo spazio di archiviazione.

Il corso di codice

Ovviamente, non puoi semplicemente installare Linux incorporato sul tuo dispositivo o eseguire il flash su un RTOS e chiamarlo un giorno. Dovrai aggiungere la "salsa segreta" di

scrivere codice per personalizzare questo sistema in base alle proprie esigenze. Potrebbe essere semplice come specificare gli endpoint e le chiavi per caricare le letture dei sensori, o complesso come eseguire più stack di protocolli personalizzati e sofisticate elaborazioni AI ai margini per una buona misura. In ogni caso, il linguaggio e gli strumenti che utilizzi avranno un enorme impatto sul tuo programma di sviluppo iniziale, nonché sul supporto e sulla manutenzione continui.

Il linguaggio di programmazione C è stato l'impostazione predefinita per quasi 40 anni, ma forse è utile provare un linguaggio di sistema sicuro per la memoria, come Rust o anche qualcosa come MicroPython. Ma se trovi che il tuo chipset o core non è in grado di gestire la tua scelta preferita qui, potresti dover tornare indietro e ripensare.

Il corso Cloud

La maggior parte degli sviluppi dei dispositivi connessi comporta la raccolta di dati per analisi successive e l'emissione di comandi per controllare i dispositivi "sul campo". Ha senso quasi universalmente scaricare questo requisito di elaborazione su una delle offerte predefinite per la gestione IoT e l'archiviazione dei dati disponibili dai grandi fornitori di "cloud", piuttosto che utilizzare sistemi locali.

Qualunque sia la piattaforma cloud che scegli, dovrai bilanciare i costi iniziali dell'integrazione con il supporto e la manutenzione continui. E ricorda, avrai bisogno del supporto del tuo cloud, chipset e provider di connettività per l'intera durata del tuo prodotto sul campo.

E infine ... il corso di comunicazione

Il protocollo di comunicazione predefinito che il tuo codice utilizzerà per parlare con il tuo provider cloud sarà solitamente basato su testo (come JSON o XML) in esecuzione su un collegamento HTTP criptato orientato alla connessione.

Sebbene questo tipo di stack sia onnipresente (è il modo in cui sono costruiti la maggior parte dei siti Web attuali), la sua natura di testo normale aumenta i requisiti di larghezza di banda sulla connettività e sulle risorse del chipset e la natura orientata alla connessione può interagire male con alcuni servizi wireless ad alta latenza. Ad esempio, se stai progettando un sistema di monitoraggio a bassissima potenza utilizzando NB-IoT, potresti essere migliore con un protocollo binario senza connessione come CoAP.

Inoltre, essere in grado di fare affidamento su uno stack di protocolli ben utilizzato e testato nel mondo reale (come quello fornito con il software Core) sarà quasi certamente meglio che provare a farne uno tu stesso.

Vale la pena ricordare

Ci sono pochi assoluti dentro la tecnologia e ci sarà sempre una gamma di soluzioni per soddisfare le tue esigenze. Ciò che funziona meglio dipenderà dai budget, dalle tempistiche e dalle competenze di cui disponi internamente, da un partner di sviluppo esterno o attraverso eventuali rapporti esistenti con fornitori di hardware, software o rete. Ma anche la migliore soluzione tecnica non sarà mai vincente a meno che non arrivi sul mercato in tempo e con la giusta combinazione di prezzo, specifiche e disponibilità.