Guida introduttiva: inviare dati di telemetria da un dispositivo a un hub IoT e monitorarli 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 viene usata l'interfaccia della riga di comando di Azure per creare un hub IoT e un dispositivo simulato. Verranno inviati i dati di telemetria del dispositivo all'hub e verranno inviati i messaggi, i metodi di chiamata e verranno aggiornate le proprietà nel dispositivo. Sarà anche possibile usare 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 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 alcun componente. Se si preferisce installare e usare l'interfaccia della riga di comando in locale, per questa Guida introduttiva è necessaria 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 venga eseguita localmente o in Cloud Shell, tenere 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:
Selezionare il pulsante Cloud Shell nella barra dei menu in alto a destra 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.
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 di PowerShell.
Nota
Alcuni comandi richiedono sintassi o formattazione diverse 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, queste sessioni verranno eseguite in schede Cloud Shell separate. Se si usa un client dell'interfaccia della riga di comando locale, verranno eseguite le istanze dell'interfaccia della riga di comando 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 oppure 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, in questa guida introduttiva non è richiesta alcuna autenticazione aggiuntiva, ad esempio una stringa di connessione, da usare con un dispositivo reale.
Nella prima sessione dell'interfaccia della riga di comando eseguire il comando az extension add. Il comando aggiunge l'estensione Microsoft Azure IoT per l'interfaccia della riga di comando di Azure alla shell in uso. 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 chiamataazure-cli-iot-ext
. Deve essere installata solo una versione alla volta. È possibile usare il comandoaz 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 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 della riga di comando.
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 centrale dei messaggi per la comunicazione bidirezionale tra l'applicazione IoT e i dispositivi.
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
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.
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 si monitorano gli eventi e i dati di telemetria.
Per creare e avviare un dispositivo simulato:
Eseguire il comando az iot hub device-identity create nella prima sessione dell'interfaccia della riga di comando. Questo comando crea l'identità del dispositivo simulato.
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}
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:
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 modifiche dello stato della proprietà, inviate dal dispositivo simulato 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}
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 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.
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 seguente comando per avviarlo:
YourIotHubName. sostituire il segnaposto in basso con il nome scelto per l'hub IoT.
az iot device simulate -d simDevice -n {YourIoTHubName}
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.
Nella prima sessione dell'interfaccia della riga di comando verificare che il dispositivo simulato abbia ricevuto il 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.
Come in precedenza, verificare che il dispositivo simulato nella prima sessione dell'interfaccia della riga di comando sia in esecuzione. In caso contrario, riavviarlo.
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}
Nella prima sessione dell'interfaccia della riga di comando verificare che l'output mostri la chiamata al 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à.
Come in precedenza, verificare che il dispositivo simulato nella prima sessione dell'interfaccia della riga di comando sia in esecuzione. In caso contrario, riavviarlo.
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 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}
Verificare che il dispositivo simulato emetta l'aggiornamento delle proprietà nella prima sessione dell'interfaccia della riga di comando.
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}
Visualizzare le metriche di messaggistica nel portale
Il portale di Azure consente di gestire tutti gli aspetti dell'hub IoT e dei dispositivi. 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:
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.
Selezionare il collegamento nell'hub IoT creato. Nel portale viene visualizzata la pagina di panoramica relativa all'hub.
Selezionare Metriche nel riquadro sinistro dell'hub IoT.
Nel campo Ambito immettere il nome dell'hub IoT.
Selezionare Metriche standard hub IoT in Metriche standard dell'hub Iot.
Nel campo Metrica selezionare Numero totale di messaggi usati.
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.
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:
Eseguire il comando az group delete. Questo comando rimuove il gruppo di risorse, l'hub IoT e la registrazione del dispositivo creato.
az group delete --name MyResourceGroup
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 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.
Per uno sviluppatore di dispositivi, il passaggio successivo suggerito consiste nel vedere la Guida introduttiva per i dati di telemetria che usa Azure IoT SDK per dispositivi per C. Facoltativamente, vedere uno degli articoli della Guida introduttiva ai dati di telemetria dell'hub IoT di Azure per la telemetria nel linguaggio preferito o nell'SDK.
Per informazioni su come controllare il dispositivo simulato da un'applicazione back-end, continuare nella Guida introduttiva successiva.