Guida introduttiva: inviare dati di telemetria da un dispositivo a un hub IoT e monitorarli con l'interfaccia della riga di comando di Azure

hub IoT di Azure è progettato per raccogliere grandi volumi di dati di telemetria dai dispositivi IoT per l'archiviazione o l'elaborazione nel cloud. In questa guida introduttiva senza codice viene usata l'interfaccia della riga di comando di Azure per creare un hub IoT e un dispositivo simulato. Si inviano dati di telemetria del dispositivo all'hub e si inviano messaggi, metodi di chiamata e aggiornano le proprietà nel dispositivo. Usare il portale di Azure per visualizzare le metriche dei dispositivi.

Questo articolo fornisce un flusso di lavoro di base per gli sviluppatori usando il interfaccia della riga di comando di Azure per interagire con un'applicazione hub IoT.

Prerequisiti

  • Una sottoscrizione di Azure. Se non ne hai uno, puoi crearne uno gratuitamente prima di iniziare.
  • interfaccia della riga di comando di Azure. È possibile eseguire tutti i comandi in questa guida introduttiva usando Azure Cloud Shell, una shell interattiva dell'interfaccia della riga di comando eseguita nel browser o in un'app come Terminale Windows. Se si usa Cloud Shell, non è necessario installare nulla. Se si preferisce usare localmente l'interfaccia della riga di comando, per questa guida rapida è necessaria la versione 2.36 o successiva di interfaccia della riga di comando di Azure. Eseguire az --version per trovare la versione. Per installare o aggiornare, vedere Installare il interfaccia della riga di comando di Azure.

Accedere al portale di Azure

Accedere al portale di Azure.

Indipendentemente dal fatto che si esegua l'interfaccia della riga di comando in locale o in Cloud Shell, mantenere aperto il portale nel browser. perché verrà usato in seguito.

Aprire Cloud Shell

In questa sezione si apre un'istanza di Cloud Shell. Se si usa l'interfaccia della riga di comando in locale, passare alla sezione Preparare due sessioni dell'interfaccia della riga di comando.

  1. Selezionare Cloud Shell nella barra dei menu in alto a destra nel portale di Azure.

    Screenshot che mostra il pulsante Cloud Shell del portale di Azure.

    Se è la prima volta che si usa Cloud Shell, viene richiesto di creare spazio di archiviazione, necessario per usare Cloud Shell. Selezionare una sottoscrizione per creare un account di archiviazione e una condivisione File di Azure.

  2. Seleziona l'ambiente CLI preferito nel menu a discesa Seleziona ambiente. Questa guida introduttiva usa l'ambiente Bash. È anche possibile usare l'ambiente PowerShell.

    Schermata che mostra come selezionare l'ambiente CLI.

    Alcuni comandi richiedono sintassi o formattazione diversi negli ambienti Bash e PowerShell. Per altre informazioni, vedere Suggerimenti per l'uso dell'interfaccia della riga di comando di Azure.

Preparare due sessioni dell'interfaccia della riga di comando

Successivamente, vengono preparate due sessioni dell'interfaccia della riga di comando di Azure. Se si usa Cloud Shell, eseguire queste sessioni in schede Cloud Shell separate. Se si utilizza un client CLI locale, eseguire istanze CLI separate. Usare le sessioni separate dell'interfaccia della riga di comando per le attività seguenti:

  • La prima sessione simula un dispositivo IoT che comunica con l'hub IoT.
  • La seconda sessione monitora il dispositivo nella prima sessione o invia messaggi, comandi e aggiornamenti delle proprietà.

Per eseguire un comando, selezionare Copia per copiare un blocco di codice in questa Guida introduttiva, incollarlo nella sessione della shell e quindi eseguirlo.

Per usare il interfaccia della riga di comando di Azure, è necessario accedere all'account Azure. Tutte le comunicazioni tra la sessione della shell dell'interfaccia della riga di comando di Azure e l'hub IoT vengono autenticate e crittografate. Di conseguenza, questa guida introduttiva non richiede l'autenticazione aggiuntiva necessaria con un dispositivo reale, ad esempio una stringa di connessione.

  • Nella prima sessione CLI, eseguire il comando az extension add. Il comando aggiunge l'estensione Microsoft Azure IoT per interfaccia della riga di comando di Azure alla shell CLI. L'estensione IoT aggiunge comandi hub IoT, Azure IoT Edge e del servizio Device Provisioning IoT specifici del interfaccia della riga di comando di Azure.

    az extension add --name azure-iot
    

    Dopo aver installato l'estensione Azure IoT, non è necessario installarla di nuovo in alcuna sessione di Cloud Shell.

    Nota

    Questo articolo usa la versione più recente dell'estensione Azure IoT, denominata azure-iot. La versione legacy è denominata azure-cli-iot-ext. Dovrebbe essere installata una sola versione alla volta. È possibile usare il comando az extension list per convalidare le estensioni attualmente installate.

    Usare az extension remove --name azure-cli-iot-ext per rimuovere la versione legacy dell'estensione.

    Usare az extension add --name azure-iot per aggiungere la nuova versione dell'estensione.

    Per vedere quali estensioni sono attualmente installate, usare az extension list.

  • Apri la seconda sessione CLI. Se si usa Cloud Shell in un browser, usare Apri nuova sessione. Se usi la CLI localmente, apri una seconda istanza della CLI.

    Screenshot che mostra l'apertura di un nuovo Cloud Shell session.

Creare un hub IoT

In questa sezione viene usata l'interfaccia della riga di comando di Azure per creare un gruppo di risorse e un hub IoT. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. Un hub IoT funge da hub messaggi centrale per la comunicazione bidirezionale tra l'applicazione IoT e i dispositivi.

  1. Nella prima sessione dell’interfaccia della riga di comando eseguire il comando az group create per creare un gruppo di risorse. Il comando seguente crea un gruppo di risorse denominato MyResourceGroup nel eastus percorso.

    az group create --name MyResourceGroup --location eastus
    
  2. Nella prima sessione dell'interfaccia della riga di comando eseguire il comando Az PowerShell module iot hub create per creare un hub IoT. La creazione di un hub IoT richiede alcuni minuti.

    Sostituire il YourIotHubName segnaposto e le parentesi graffe circostanti nel comando seguente con il nome scelto per l'hub IoT. Un nome dell'hub IoT deve essere univoco a livello globale in Azure. Usa il nome del tuo hub IoT nel resto di questa guida introduttiva ovunque vedi il segnaposto.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

Creare e monitorare un dispositivo

In questa sezione viene creato un dispositivo simulato nella prima sessione dell'interfaccia della riga di comando. Il dispositivo simulato invia i dati di telemetria del dispositivo all'hub IoT. Nella seconda sessione dell'interfaccia della riga di comando si monitorano gli eventi e i dati di telemetria.

Per creare e avviare un dispositivo simulato:

  1. Nella prima sessione CLI, eseguire il comando az iot hub device-identity create. Questo comando crea l'identità del dispositivo simulato.

    • YourIotHubName. Sostituire questo segnaposto nel codice seguente con il nome scelto per l'hub IoT.
    • simDevice. È possibile usare questo nome direttamente per il dispositivo simulato nella parte restante di questa Guida introduttiva. Facoltativamente, usare un nome diverso.
    az iot hub device-identity create -d simDevice -n {YourIoTHubName} 
    
  2. Nella prima sessione della CLI, eseguite il comando az iot device simulate. Questo comando avvia il dispositivo simulato. Il dispositivo invia i dati di telemetria all'hub IoT e riceve i messaggi da quest'ultimo.

    Sostituire il YourIotHubName segnaposto nel codice seguente con il nome scelto per l'hub IoT.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    

Per monitorare un dispositivo:

  1. Nella seconda sessione CLI, eseguire il comando az iot hub monitor-events. Questo comando monitora continuamente il dispositivo simulato. L'output mostra i dati di telemetria, ad esempio eventi e modifiche dello stato della proprietà, inviate dal dispositivo simulato all'hub IoT.

    Sostituire il YourIotHubName segnaposto nel codice seguente con il nome scelto per l'hub IoT.

    az iot hub monitor-events --output table -p all -n {YourIoTHubName}
    

    Screenshot degli eventi di monitoraggio su un dispositivo simulato.

  2. Dopo aver monitorato il dispositivo simulato nella seconda sessione dell'interfaccia della riga di comando, selezionare CTRL+C per arrestare il monitoraggio. Mantenere aperta la seconda sessione dell'interfaccia della riga di comando da usare nei passaggi successivi.

Usare l'interfaccia della riga di comando per inviare un messaggio

In questa sezione viene inviato un messaggio al dispositivo simulato.

  1. Nella prima sessione CLI, verificare che il dispositivo simulato sia ancora in esecuzione. Se il dispositivo è stato arrestato, eseguire il comando seguente per riavviarlo.

    Sostituire il YourIotHubName segnaposto nel codice seguente con il nome scelto per l'hub IoT.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  2. Nella seconda sessione della riga di comando (CLI), eseguire il comando az iot device c2d-message send. Questo comando invia un messaggio da cloud a dispositivo dall'hub IoT al dispositivo simulato. Il messaggio include una stringa e due coppie chiave/valore.

    Sostituire il YourIotHubName segnaposto nel codice seguente con il nome scelto per l'hub IoT.

    az iot device c2d-message send -d simDevice --data "Hello World" --props "key0=value0;key1=value1" -n {YourIoTHubName}
    

    Facoltativamente, è possibile inviare messaggi da cloud a dispositivo usando il portale di Azure. Per inviare messaggi tramite il portale di Azure, passare alla pagina Panoramica per l'hub IoT, selezionare Dispositivi IoT, selezionare il dispositivo simulato e selezionare Message in Dispositivo.

  3. Nella prima sessione dell'interfaccia della riga di comando verificare che il dispositivo simulato abbia ricevuto il messaggio.

    Screenshot che mostra un dispositivo simulato che riceve un messaggio.

Usare l'interfaccia della riga di comando per chiamare un metodo del dispositivo

In questa sezione viene chiamato un metodo diretto nel dispositivo simulato.

  1. Come in precedenza, verificare che il dispositivo simulato nella prima sessione dell'interfaccia della riga di comando sia in esecuzione. In caso contrario, riavviarlo.

  2. Nella seconda sessione CLI, eseguire il comando az iot hub invoke-device-method. In questo esempio non esiste alcun metodo preesistente per il dispositivo. Il comando chiama un nome di metodo di esempio nel dispositivo simulato e restituisce un payload.

    Sostituire il YourIotHubName segnaposto nel codice seguente con il nome scelto per l'hub IoT.

    az iot hub invoke-device-method --mn MySampleMethod -d simDevice -n {YourIoTHubName}
    
  3. Nella prima sessione CLI, confermare che l'output mostri la chiamata al metodo.

    Screenshot che mostra un dispositivo simulato che visualizza l'output dopo che è stato richiamato un metodo.

Usare l'interfaccia della riga di comando per aggiornare le proprietà del dispositivo

In questa sezione si aggiorna lo stato del dispositivo simulato impostando i valori delle proprietà.

  1. Come in precedenza, verificare che il dispositivo simulato nella prima sessione dell'interfaccia della riga di comando sia in esecuzione. In caso contrario, riavviarlo.

  2. Nella seconda sessione dell'interfaccia della riga di comando eseguire il comando az iot hub device-twin update. Questo comando aggiorna le proprietà allo stato desiderato nel dispositivo gemello dell'hub IoT che corrisponde al dispositivo simulato. In questo caso, il comando imposta le proprietà della condizione di temperatura di esempio.

    Importante

    Se si usa PowerShell nella shell dell'interfaccia della riga di comando, usare la versione di PowerShell del comando nel codice seguente. PowerShell richiede di eseguire l'escape dei caratteri nel payload JSON.

    Sostituire il YourIotHubName segnaposto nel codice seguente con il nome scelto per l'hub IoT.

    az iot hub device-twin update -d simDevice --desired '{"conditions":{"temperature":{"warning":98, "critical":107}}}' -n {YourIoTHubName}
    
    az iot hub device-twin update -d simDevice --desired '{\"conditions\":{\"temperature\":{\"warning\":98, \"critical\":107}}}' -n {YourIoTHubName}
    
  3. Verificare che il dispositivo simulato emetta l'aggiornamento delle proprietà nella prima sessione dell'interfaccia della riga di comando.

    Screenshot che mostra come aggiornare le proprietà in un dispositivo.

  4. Nella seconda sessione dell'interfaccia della riga di comando eseguire il comando az iot hub device-twin show. Questo comando segnala le modifiche alle proprietà del dispositivo.

    Sostituire il YourIotHubName segnaposto nel codice seguente con il nome scelto per l'hub IoT.

    az iot hub device-twin show -d simDevice --query properties.reported -n {YourIoTHubName}
    

    Screenshot che mostra le proprietà aggiornate in un dispositivo gemello.

Visualizzare le metriche di messaggistica nel portale

È possibile gestire tutti gli aspetti dell'hub IoT e dei dispositivi nel portale di Azure. In una tipica applicazione dell'hub IoT che inserisce i dati di telemetria dai dispositivi, potrebbe essere necessario monitorare i dispositivi o visualizzare le metriche sui dati di telemetria dei dispositivi stessi.

Per visualizzare le metriche di messaggistica nel portale di Azure:

  1. Nel menu del servizio nel portale selezionare Tutte le risorse. Questa scheda elenca tutte le risorse nella sottoscrizione, incluso l'hub IoT creato.

  2. Selezionare il collegamento nell'hub IoT creato. Nel portale viene visualizzata la pagina Panoramica per l'hub.

  3. Selezionare Metriche nel riquadro sinistro dell'hub IoT.

    Schermata che mostra le metriche di messaggistica di hub IoT.

  4. Nel campo Ambito immettere il nome dell'hub IoT.

  5. Nel campo Metric Namespace selezionare hub IoT metriche standard.

  6. Nel campo Metrica selezionare Numero totale di messaggi usati.

  7. Posizionare il puntatore del mouse sull'area della sequenza temporale in cui il dispositivo ha inviato i messaggi. Il numero totale di messaggi in un momento specifico viene visualizzato nell'angolo inferiore sinistro della sequenza temporale.

    Screenshot che mostra una visualizzazione delle metriche hub IoT.

  8. Facoltativamente, usare l'elenco a discesa Metrica per visualizzare altre metriche nel dispositivo simulato. Ad esempio, vedi Recapiti dei messaggi C2D completati o Totale dispositivi (anteprima).

Pulire le risorse

Se le risorse Azure create in questa guida introduttiva non sono più necessarie, è possibile usare il interfaccia della riga di comando di Azure per eliminarle.

Se si continua con l'articolo consigliato successivo, è possibile mantenere le risorse già create e riutilizzarle.

Importante

L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate.

Per eliminare un gruppo di risorse per nome:

  1. Eseguire il comando az group delete. Questo comando rimuove il gruppo di risorse, l'hub IoT e la registrazione del dispositivo creata.

    az group delete --name MyResourceGroup
    
  2. Eseguire il comando az group list per verificare che il gruppo di risorse sia stato eliminato.

    az group list
    

Sommario

In questa Guida introduttiva è stata usata l'interfaccia della riga di comando di Azure per creare un hub IoT, creare un dispositivo simulato, inviare e monitorare dati di telemetria, chiamare un metodo, impostare le proprietà desiderate ed eliminare le risorse. È stato usato il portale di Azure per visualizzare le metriche di messaggistica sul dispositivo.

Se sei uno sviluppatore di dispositivi, il passaggio successivo consigliato è consultare la guida introduttiva alla telemetria che usa Azure IoT Device SDK per C. Facoltativamente, consulta uno degli articoli di avvio rapido sulla telemetria di hub IoT disponibili nella lingua o nell'SDK che preferisci.

Per informazioni su come controllare il dispositivo simulato da un'applicazione back-end, continuare nella Guida introduttiva successiva.

Passo successivo