Sviluppo di dispositivi Azure IoT

Azure IoT è una raccolta di servizi gestiti e della piattaforma che connettono, monitorano e controllano i dispositivi IoT. Azure IoT offre agli sviluppatori un set completo di opzioni. Le opzioni includono piattaforme per dispositivi, servizi cloud di supporto, SDK, supporto MQTT e strumenti per la creazione di applicazioni cloud abilitate per i dispositivi.

Questo articolo offre diverse considerazioni chiave per gli sviluppatori che iniziano a usare Azure IoT.

Percorsi di sviluppo dei dispositivi

Questo articolo illustra due percorsi di sviluppo comuni dei dispositivi. Ogni percorso include un set di opzioni e attività di sviluppo correlate.

  • Sviluppo generale dei dispositivi: è in linea con le procedure di sviluppo moderne, è destinato a linguaggi di ordine superiore e viene eseguito in un sistema operativo per utilizzo generico, ad esempio Windows o Linux.

    Nota

    Se il dispositivo è in grado di eseguire un sistema operativo per utilizzo generico, è consigliabile seguire il percorso di sviluppo generale dei dispositivi. Offre un set più completo di opzioni di sviluppo.

  • Sviluppo di dispositivi incorporati: descrive lo sviluppo destinato ai dispositivi vincolati alle risorse. Spesso si usa un dispositivo vincolato alle risorse per ridurre i costi per unità, il consumo di energia o le dimensioni del dispositivo. Questi dispositivi hanno il controllo diretto sulla piattaforma hardware su cui vengono eseguiti.

Sviluppo generale dei dispositivi

Alcuni sviluppatori si adattano ai dispositivi per utilizzo generico esistenti per connettersi al cloud e integrarli nelle soluzioni IoT. Questi dispositivi possono supportare linguaggi di ordine superiore, ad esempio C# o Python, e spesso supportano un solido sistema operativo per utilizzo generico, ad esempio Windows o Linux. I dispositivi di destinazione comuni includono PC, contenitori, Raspberry Pis e dispositivi mobili.

Invece di sviluppare dispositivi vincolati su larga scala, gli sviluppatori di dispositivi generali si concentrano sull'abilitazione di uno scenario IoT specifico richiesto dalla soluzione cloud. Alcuni sviluppatori lavorano anche su dispositivi vincolati per la soluzione cloud. Per gli sviluppatori che utilizzano dispositivi vincolati alle risorse, vedere il percorso Sviluppo di dispositivi incorporati.

Importante

Per informazioni sugli SDK da usare per lo sviluppo generale dei dispositivi, vedere SDK per dispositivi.

Sviluppo di dispositivi incorporati

Le destinazioni di sviluppo incorporate hanno dispositivi vincolati con memoria ed elaborazione limitati. I dispositivi vincolati limitano ciò che è possibile ottenere rispetto a una piattaforma di sviluppo tradizionale.

I dispositivi incorporati usano in genere un sistema operativo in tempo reale (RTOS) o nessun sistema operativo. I dispositivi incorporati hanno il controllo completo sull'hardware, a causa della mancanza di un sistema operativo per utilizzo generico. Questo fatto rende i dispositivi incorporati una buona scelta per i sistemi in tempo reale.

Gli SDK incorporati correnti hanno come destinazione il linguaggio C . Gli SDK incorporati non forniscono alcun sistema operativo o il supporto di Eclipse ThreadX. Sono progettati con obiettivi incorporati in mente. Le considerazioni di progettazione includono la necessità di un footprint minimo e una progettazione non di allocazione della memoria.

Importante

Per informazioni sugli SDK da usare con lo sviluppo di dispositivi incorporati, vedere Sdk per dispositivi incorporati.

Scelta dell'hardware

I dispositivi Azure IoT sono i blocchi predefiniti di base di una soluzione IoT e sono responsabili dell'osservazione e dell'interazione con il proprio ambiente. Esistono molti tipi diversi di dispositivi IoT ed è utile comprendere i tipi di dispositivi esistenti e come possono influire sul processo di sviluppo.

Per altre informazioni sulla differenza tra i tipi di dispositivi trattati in questo articolo, vedere Informazioni sui tipi di dispositivo IoT.

Scelta di un SDK

Gli sviluppatori di dispositivi Azure IoT hanno un set diversificato di SDK, protocolli e strumenti per creare applicazioni cloud abilitate per i dispositivi.

Esistono due opzioni principali per connettere i dispositivi e comunicare con hub IoT:

  • Usare gli SDK di Azure IoT. Nella maggior parte dei casi, è consigliabile usare gli SDK di Azure IoT rispetto all'uso diretto di MQTT. Gli SDK semplificano le attività di sviluppo e semplificano la complessità della connessione e della gestione dei dispositivi. hub IoT supporta Il protocollo MQTT v3.1.1 e gli SDK IoT semplificano il processo di utilizzo di MQTT per comunicare con hub IoT.
  • Usare direttamente il protocollo MQTT. Esistono alcuni vantaggi della creazione di una soluzione hub IoT per l'uso diretto di MQTT. Ad esempio, una soluzione che usa MQTT direttamente senza gli SDK può essere compilata sullo standard MQTT aperto. Un approccio basato su standard rende la soluzione più portabile e offre un maggiore controllo sul modo in cui i dispositivi si connettono e comunicano. Tuttavia, hub IoT non è un broker MQTT completo e non supporta tutti i comportamenti specificati nello standard MQTT v3.1.1. Il supporto parziale per MQTT v3.1.1 aggiunge costi e complessità di sviluppo. Gli sviluppatori di dispositivi devono valutare i compromessi dell'uso degli SDK per dispositivi IoT rispetto all'uso diretto di MQTT. Per altre informazioni, vedere Comunicare con un hub IoT usando il protocollo MQTT.

Sono disponibili tre set di SDK IoT per lo sviluppo di dispositivi:

  • SDK per dispositivi (per l'uso di linguaggi di ordine superiore per connettere i dispositivi per utilizzo generico esistenti alle applicazioni IoT)
  • SDK per dispositivi incorporati (per la connessione di dispositivi vincolati alle risorse alle applicazioni IoT)
  • SDK del servizio (per la creazione di soluzioni IoT di Azure che connettono i dispositivi ai servizi)

Per altre informazioni sulla scelta di un dispositivo o un SDK del servizio Azure IoT, vedere Azure IoT SDK.

Selezione di un servizio

Un passaggio chiave nel processo di sviluppo consiste nel selezionare un servizio a cui connettere i dispositivi. Sono disponibili due opzioni principali del servizio Azure IoT per la connessione e la gestione dei dispositivi: hub IoT e IoT Central.

  • Hub IoT di Azure. Usare l'hub IoT per ospitare applicazioni IoT e connettere i dispositivi. hub IoT è un'applicazione PaaS (Platform-as-a-Service) che funge da hub messaggi centrale per la comunicazione bidirezionale tra applicazioni IoT e dispositivi connessi. hub IoT può essere ridimensionato per supportare milioni di dispositivi. Rispetto ad altri servizi Azure IoT, hub IoT offre il massimo controllo e personalizzazione sulla progettazione dell'applicazione. Offre anche la maggior parte delle opzioni dello strumento di sviluppo per lavorare con il servizio, a costo di un certo aumento della complessità di sviluppo e gestione.
  • Azure IoT Central. IoT Central è progettato per semplificare il processo di utilizzo delle soluzioni IoT. È possibile usarlo come modello di verifica per valutare le soluzioni IoT. IoT Central è un'applicazione SaaS (Software-as-a-Service) che fornisce un'interfaccia utente Web per semplificare le attività di creazione di applicazioni e connessione e gestione dei dispositivi. IoT Central usa hub IoT per creare e gestire applicazioni, ma mantiene la maggior parte dei dettagli trasparenti per l'utente.

Strumenti per connettere e gestire i dispositivi

Dopo aver selezionato l'hardware e un SDK per dispositivi da usare, sono disponibili diverse opzioni di strumenti di sviluppo. È possibile usare questi strumenti per connettere il dispositivo a hub IoT e gestirli. La tabella seguente riepiloga le opzioni comuni degli strumenti.

Strumento Documentazione Descrizione
Azure portal Creare un hub IoT con portale di Azure Portale basato su browser per hub IoT e dispositivi. Funziona anche con altre risorse di Azure, tra cui IoT Central.
Azure IoT Explorer Azure IoT Explorer Non è possibile creare hub IoT. Connessione a un hub IoT esistente per gestire i dispositivi. Spesso usato con l'interfaccia della riga di comando o il portale.
Interfaccia della riga di comando di Azure Creare un hub IoT con l'interfaccia della riga di comando Interfaccia della riga di comando per la creazione e la gestione di applicazioni IoT.
Azure PowerShell Creare un hub IoT con PowerShell Interfaccia di PowerShell per la creazione e la gestione di applicazioni IoT
Azure IoT Tools per VS Code Creare un hub IoT con Strumenti per VS Code Estensione vs Code per le applicazioni hub IoT.

Nota

Oltre agli strumenti elencati in precedenza, è possibile creare e gestire applicazioni IoT a livello di codice usando i modelli di API REST, Azure SDK o Azure Resource Manager. Per altre informazioni, vedere la documentazione del servizio hub IoT.

Passaggi successivi

Per altre informazioni sugli SDK per dispositivi che è possibile usare per connettere i dispositivi ad Azure IoT, vedere l'articolo seguente.

Per iniziare a sviluppare dispositivi pratici, selezionare un'esercitazione sullo sviluppo di dispositivi è rilevante per i dispositivi in uso. Le esercitazioni seguenti sono ottimi punti di partenza per lo sviluppo generale dei dispositivi o lo sviluppo di dispositivi incorporati.