Avvio rapido: Inviare dati di telemetria da un dispositivo a un hub IoT e monitorarlo con l'interfaccia della riga di comando di Azure

L'hub IoT è un servizio di Azure che consente di acquisire volumi elevati di dati di telemetria dai dispositivi IoT nel cloud per l'archiviazione o l'elaborazione. In questa guida introduttiva senza codice si usa l'interfaccia della riga di comando di Azure per creare un hub IoT e un dispositivo simulato. Si invieranno i dati di telemetria del dispositivo all'hub e si inviano messaggi, metodi di chiamata e proprietà di aggiornamento nel dispositivo. Si userà anche il portale di Azure per visualizzare le metriche del dispositivo. Questo articolo illustra un flusso di lavoro di base per gli sviluppatori che usano l'interfaccia della riga di comando per interagire con un'applicazione hub IoT.

Prerequisiti

  • Se non si dispone di sottoscrizione di Azure, crearne una 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 dell'interfaccia della riga di comando interattiva eseguita nel browser o in un'app, ad esempio Terminale Windows. Se si usa Cloud Shell, non è necessario installare alcun componente. Se si preferisce usare l'interfaccia della riga di comando in locale, questa guida introduttiva richiede l'interfaccia della riga di comando di Azure versione 2.36 o successiva. Eseguire az --version per trovare la versione. Per installare o eseguire l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Accedere al portale di Azure

Accedere al portale di Azure.

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

Avviare Cloud Shell

In questa sezione viene avviata un'istanza di Azure 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.

Per avviare Cloud Shell:

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

    Pulsante Cloud Shell nel portale di Azure

    Nota

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

  2. Selezionare l'ambiente dell'interfaccia della riga di comando preferito nell'elenco a discesa Seleziona ambiente. In questa Guida introduttiva viene usato l'ambiente Bash. È anche possibile usare l'ambiente PowerShell .

    Nota

    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 correttamente.

    Selezionare l'ambiente dell'interfaccia della riga di comando

Preparare due sessioni dell'interfaccia della riga di comando

Successivamente, si preparano due sessioni dell'interfaccia della riga di comando di Azure. Se si usa la Cloud Shell, si eseguiranno queste sessioni in schede di Cloud Shell separate. Se si usa un client dell'interfaccia della riga di comando locale, si eseguiranno istanze separate dell'interfaccia della riga di comando. 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.

L'interfaccia della riga di comando di Azure richiede l'accesso 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 usata con un dispositivo reale, ad esempio una stringa di connessione.

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

    az extension add --name azure-iot
    

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

    Nota

    Questo articolo usa la versione più recente dell'estensione Azure IoT, denominata azure-iot. La versione legacy viene chiamata azure-cli-iot-ext. Deve essere installata solo una 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 visualizzare le estensioni installate, usare az extension list.

  • Aprire la seconda sessione dell'interfaccia della riga di comando. Se si usa la Cloud Shell in un browser, usare il pulsante Apri nuova sessione. Se si usa l'interfaccia della riga di comando in locale, aprire una seconda istanza dell'interfaccia della riga di comando.

    Aprire una nuova sessione di Cloud Shell

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.

Suggerimento

Facoltativamente, è possibile creare un gruppo di risorse di Azure, un hub IoT e altre risorse usando il portale di Azure, Visual Studio Code o altri metodi programmatici.

  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 denominato MyResourceGroup nella posizione eastus.

    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. Sono necessari alcuni minuti per creare un hub IoT.

    YourIotHubName. Sostituire questo segnaposto e le parentesi graffe circostanti nel comando seguente, usando il nome scelto per l'hub IoT. Un nome dell'hub IoT deve essere univoco a livello globale in Azure. Usare il nome dell'hub IoT nel resto di questa guida introduttiva ovunque venga visualizzato 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 è possibile monitorare gli eventi e i dati di telemetria.

Per creare e avviare un dispositivo simulato:

  1. Nella prima sessione dell'interfaccia della riga di comando eseguire il comando az iot hub device-identity create . Questo comando crea l'identità del dispositivo simulata.

    YourIotHubName. sostituire il segnaposto in basso 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 dell'interfaccia della riga di comando eseguire 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.

    YourIotHubName. sostituire il segnaposto in basso con il nome scelto per l'hub IoT.

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

Per monitorare un dispositivo:

  1. Nella seconda sessione dell'interfaccia della riga di comando 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 stato della proprietà, che il dispositivo simulato invia all'hub IoT.

    YourIotHubName. sostituire il segnaposto in basso con il nome scelto per l'hub IoT.

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

    Screenshot degli eventi di monitoraggio in un dispositivo simulato.

  2. Dopo aver monitorato il dispositivo simulato nella seconda sessione dell'interfaccia della riga di comando, premere CTRL+C per interrompere il monitoraggio. Mantenere aperta la seconda sessione dell'interfaccia della riga di comando per l'uso 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 dell'interfaccia della riga di comando verificare che il dispositivo simulato sia ancora in esecuzione. Se il dispositivo è stato arrestato, eseguire il comando seguente per riavviarlo:

    YourIotHubName. sostituire il segnaposto in basso con il nome scelto per l'hub IoT.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  2. Nella seconda sessione dell'interfaccia della riga di comando, 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.

    YourIotHubName. sostituire il segnaposto in basso 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. A tale scopo, passare alla pagina di panoramica per l'hub IoT, selezionare Dispositivi IoT, selezionare il dispositivo simulato e quindi Messaggio per il dispositivo.

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

    Screenshot di 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 si è fatto prima, 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 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.

    YourIotHubName. sostituire il segnaposto in basso con il nome scelto per l'hub IoT.

    az iot hub invoke-device-method --mn MySampleMethod -d simDevice -n {YourIoTHubName}
    
  3. Nella prima sessione dell'interfaccia della riga di comando verificare che l'output mostri la chiamata al metodo.

    Screenshot di 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 viene aggiornato lo stato del dispositivo simulato impostando i valori delle proprietà.

  1. Come si è fatto prima, 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 dell'hub IoT gemello corrispondente 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 seguente. PowerShell richiede di eseguire l'escape dei caratteri nel payload JSON.

    YourIotHubName. sostituire il segnaposto in basso 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. Nella prima sessione dell'interfaccia della riga di comando verificare che il dispositivo simulato restituisca l'aggiornamento della proprietà.

    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.

    YourIotHubName. sostituire il segnaposto in basso 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

La portale di Azure consente di gestire tutti gli aspetti dell'hub e dei dispositivi IoT. 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 di spostamento a sinistra 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 di panoramica relativa all'hub.

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

    Metriche di messaggistica dell'hub IoT

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

  5. Nel campo Spazio dei nomi delle metriche selezionare Metriche standard dell'hub Iot.

  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.

    Visualizzare le metriche dell'hub IoT di Azure

  8. Facoltativamente, usare l'elenco a discesa Metriche per visualizzare altre metriche sul dispositivo simulato, ad esempio i recapiti di messaggi da cloud a dispositivo completati o i dispositivi totali (anteprima).

Pulire le risorse

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

Se si continua con il prossimo articolo consigliato, è possibile conservare le risorse già create e usarle di nuovo.

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
    

Passaggi successivi

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 i dati di telemetria, chiamare un metodo, impostare le proprietà desiderate e pulire le risorse. È stato usato il portale di Azure per visualizzare le metriche di messaggistica sul dispositivo.

Se si è uno sviluppatore di dispositivi, il passaggio successivo consigliato consiste nel vedere la guida introduttiva alla telemetria che usa Azure IoT Device SDK per C. Facoltativamente, vedere uno degli articoli di avvio rapido di telemetria hub IoT di Azure disponibili nel linguaggio o nell'SDK preferito.

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