Condividi tramite


Guida rapida: Gestire un dispositivo collegato a un hub IoT

In questa guida introduttiva si usa un metodo diretto per controllare un dispositivo simulato connesso all'hub IoT. L'hub IoT è un servizio di Azure che consente di gestire i dispositivi IoT dal cloud e di inserire volumi elevati di dati di telemetria dei dispositivi nel cloud per l'archiviazione o l'elaborazione. È possibile usare metodi diretti per modificare in remoto il comportamento dei dispositivi connessi all'hub IoT.

La guida introduttiva usa due applicazioni .NET già scritte:

  • Applicazione del dispositivo simulato che risponde ai metodi diretti chiamati da un'applicazione di servizio. Per ricevere le chiamate al metodo diretto, questa applicazione si connette a un endpoint specifico del dispositivo nell'hub IoT.

  • Applicazione di servizio che chiama i metodi diretti nel dispositivo simulato. Per chiamare un metodo diretto su un dispositivo, questa applicazione si connette all'endpoint del servizio dell'hub IoT.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creane uno gratis.

  • Le due applicazioni di esempio eseguite in questa guida introduttiva vengono scritte con C#. Nel computer di sviluppo è necessario .NET SDK 6.0 o versione successiva.

    È possibile scaricare .NET Core SDK per più piattaforme da .NET.

    È possibile verificare la versione corrente di C# installata nel computer di sviluppo tramite il comando seguente:

    dotnet --version
    
  • Clonare o scaricare Microsoft Azure IoT SDK per .NET da GitHub. Le applicazioni di esempio usate da questa guida introduttiva sono incluse nell'SDK.

  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio di dispositivo in questa guida introduttiva usa il protocollo MQTT, che comunica sulla porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici. Per altre informazioni e modi per risolvere questo problema, vedere la sezione Connettersi all'hub IoT di Comunicare con un hub IoT usando il protocollo MQTT.

Annotazioni

Questo articolo usa la versione più recente dell'estensione Azure IoT, denominata azure-iot. La versione legacy è denominata azure-cli-iot-ext. Deve 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.

In questa sezione si usa l'interfaccia della riga di comando di Azure per creare un hub IoT e un gruppo di risorse. 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.

Se si ha già un hub IoT nella sottoscrizione di Azure, è possibile ignorare questa sezione.

Per creare un hub IoT e un gruppo di risorse:

  1. Avvia l'app CLI. Per eseguire i comandi dell'interfaccia della riga di comando nel resto di questo articolo, copiare la sintassi del comando, incollarla nell'app dell'interfaccia della riga di comando, modificare i valori delle variabili e premere Enter.

    • Se si utilizza Cloud Shell, selezionare il pulsante Prova nei comandi della CLI per avviare Cloud Shell in una finestra del browser divisa. In alternativa, è possibile aprire Cloud Shell in una scheda separata del browser.
    • Se stai usando Azure CLI in locale, avvia la console CLI e accedi ad Azure CLI.
  2. Eseguire az extension add per installare o aggiornare l'estensione azure-iot alla versione corrente.

    az extension add --upgrade --name azure-iot
    
  3. Nell'app 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.

    Annotazioni

    Facoltativamente, è possibile impostare una posizione diversa. Per visualizzare i percorsi disponibili, eseguire az account list-locations. Questa guida introduttiva usa eastus come illustrato nel comando di esempio.

    az group create --name MyResourceGroup --location eastus
    
  4. Eseguire il comando az iot hub create per creare un hub IoT. La creazione di un hub IoT potrebbe richiedere 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 questo argomento di avvio rapido ovunque venga visualizzato il segnaposto.

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

Recuperare la stringa di connessione del servizio

È necessaria anche la stringa di connessione del servizio dell'hub IoT per consentire all'applicazione di servizio di connettersi all'hub e recuperare i messaggi. La stringa di connessione del servizio è per l'hub IoT nel suo complesso ed è diversa dalla stringa di connessione del dispositivo recuperata nella sezione precedente.

Il comando seguente recupera la stringa di connessione del servizio per l'hub IoT:

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Prendere nota della stringa di connessione del servizio, simile alla seguente:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Il valore verrà usato più avanti in questa guida introduttiva.

Simulare un dispositivo

L'applicazione del dispositivo simulato si connette a un endpoint specifico del dispositivo nell'hub IoT, invia dati di telemetria simulati e ascolta le chiamate dei metodi diretti dall'hub. In questa guida introduttiva la chiamata dei metodi diretti dall'hub indica al dispositivo di modificare l'intervallo di invio dei dati di telemetria. Il dispositivo simulato invia un riconoscimento all'hub dopo l'esecuzione del metodo diretto.

  1. In una finestra del terminale locale passare alla cartella radice dell'SDK. Passare quindi alla cartella iothub\device\samples\getting started\SimulatedDeviceWithCommand .

  2. Eseguire il comando seguente per installare i pacchetti necessari per l'applicazione del dispositivo simulato:

    dotnet restore
    
  3. Eseguire il comando seguente per compilare ed eseguire l'applicazione del dispositivo simulato.

    {DeviceConnectionString}: sostituire questo segnaposto con la stringa di connessione del dispositivo annotata in precedenza.

    dotnet run -- -c "{DeviceConnectionString}"
    

    La schermata seguente mostra l'output mentre l'applicazione del dispositivo simulato invia i dati di telemetria all'hub IoT:

    Screenshot di una finestra del terminale che mostra l'output dell'applicazione del dispositivo simulato.

Chiamare il metodo diretto

L'applicazione di servizio si connette a un endpoint lato servizio nell'hub IoT. L'applicazione effettua chiamate dei metodi diretti a un dispositivo tramite l'hub IoT e rimane in ascolto degli acknowledgement. Un'applicazione di servizio dell'hub IoT viene in genere eseguita nel cloud.

  1. In un'altra finestra del terminale locale passare alla cartella radice dell'SDK. Passare quindi alla cartella iothub\service\samples\getting started\InvokeDeviceMethod .

  2. Nella finestra del terminale locale eseguire i comandi seguenti per installare le librerie necessarie per l'applicazione di servizio:

    dotnet build
    
  3. Nella finestra del terminale locale eseguire i comandi seguenti per compilare ed eseguire l'applicazione di servizio.

    {ServiceConnectionString}: sostituire questo segnaposto con la stringa di connessione del servizio dell'hub IoT annotata in precedenza.

    {DeviceName}: sostituire questo segnaposto con il nome del dispositivo registrato.

    dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
    

    Lo screenshot seguente mostra l'output quando l'applicazione effettua una chiamata diretta al metodo del dispositivo e riceve una conferma:

    Screenshot di una finestra del terminale che mostra il risultato della chiamata al metodo diretto dall'applicazione di servizio.

    Dopo aver eseguito l'applicazione di servizio, viene visualizzato un messaggio nella finestra del terminale locale che esegue il dispositivo simulato e la frequenza con cui invia i messaggi cambia:

    Screenshot di una finestra del terminale che mostra il risultato diretto del messaggio e l'output aggiornato dall'applicazione del dispositivo simulato.

Questa guida introduttiva usa due applicazioni Java:

  • Applicazione del dispositivo simulato che risponde ai metodi diretti chiamati da un'applicazione back-end.
  • Applicazione di servizio che chiama il metodo diretto nel dispositivo simulato.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creane uno gratis.

  • Java SE Development Kit 8. In Supporto a lungo termine Java per Azure e Azure Stack, in Supporto a lungo termine selezionare Java 8.

    È possibile verificare la versione corrente di Java nel computer di sviluppo usando il comando seguente:

    java -version
    
  • Apache Maven 3.

    È possibile verificare la versione corrente di Maven nel computer di sviluppo usando il comando seguente:

    mvn --version
    
  • Clonare o scaricare gli esempi di Azure IoT per Java da GitHub.

  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio di dispositivo in questa guida introduttiva usa il protocollo MQTT, che comunica sulla porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici. Per altre informazioni e modi per risolvere questo problema, vedere la sezione Connettersi all'hub IoT di Comunicare con un hub IoT usando il protocollo MQTT.

Annotazioni

Questo articolo usa la versione più recente dell'estensione Azure IoT, denominata azure-iot. La versione legacy è denominata azure-cli-iot-ext. Deve 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.

Creare un hub IoT

In questa sezione si usa l'interfaccia della riga di comando di Azure per creare un hub IoT e un gruppo di risorse. 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.

Se si ha già un hub IoT nella sottoscrizione di Azure, è possibile ignorare questa sezione.

Per creare un hub IoT e un gruppo di risorse:

  1. Avviare l'app dell'interfaccia della riga di comando. Per eseguire i comandi dell'interfaccia della riga di comando nel resto di questo articolo, copiare la sintassi del comando, incollarla nell'app dell'interfaccia della riga di comando, modificare i valori delle variabili e premere Enter.

    • Se si usa Cloud Shell, selezionare il pulsante Prova nel comando dell'interfaccia della riga di comando per avviare Cloud Shell in una finestra divisa del browser. In alternativa, è possibile aprire Cloud Shell in una scheda separata del browser.
    • Se si usa l'interfaccia della riga di comando di Azure in locale, avviare l'app console dell'interfaccia della riga di comando e accedere.
  2. Eseguire az extension add per installare o aggiornare l'estensione azure-iot alla versione corrente.

    az extension add --upgrade --name azure-iot
    
  3. Nell'app 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.

    Annotazioni

    Facoltativamente, è possibile impostare una posizione diversa. Per visualizzare i percorsi disponibili, eseguire az account list-locations. Questa guida introduttiva usa eastus come illustrato nel comando di esempio.

    az group create --name MyResourceGroup --location eastus
    
  4. Eseguire il comando az iot hub create per creare un hub IoT. La creazione di un hub IoT potrebbe richiedere 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 questo argomento di avvio rapido ovunque venga visualizzato il segnaposto.

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

Registrazione di un dispositivo

È necessario registrare un dispositivo con l'hub IoT perché questo possa connettersi. In questa sezione si usa l'interfaccia della riga di comando di Azure per creare un'identità del dispositivo.

Se è già stato registrato un dispositivo nell'hub IoT, è possibile ignorare questa sezione.

Per creare un'identità del dispositivo:

  1. Esegui il comando az iot hub device-identity create nella shell CLI. Questo comando crea l'identità del dispositivo.

    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.

    myDevice. È possibile usare questo nome per l'ID dispositivo in questo articolo o specificare un nome di dispositivo diverso.

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. Eseguire il comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    La stringa di connessione prodotta è nel seguente formato:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Salvare il stringa di connessione in una posizione sicura.

Annotazioni

Mantenere aperta l'app dell'interfaccia della riga di comando. Lo userai nei passaggi successivi.

Recuperare la stringa di connessione del servizio

È necessaria anche una stringa di connessione del servizio per consentire all'applicazione back-end di connettersi all'hub IoT e recuperare i messaggi. Il comando seguente recupera la stringa di connessione del servizio per l'hub IoT:

YourIoTHubName: sostituire questo segnaposto nel comando seguente con il nome scelto per l'hub IoT.

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Prendere nota della stringa di connessione del servizio, simile alla seguente:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Il valore verrà usato più avanti in questa guida introduttiva. Questa stringa di connessione del servizio è diversa dalla stringa di connessione del dispositivo annotata nel passaggio precedente.

Simulare un dispositivo

L'applicazione del dispositivo simulato si connette a un endpoint specifico del dispositivo nell'hub IoT, invia dati di telemetria simulati e ascolta le chiamate dei metodi diretti dall'hub. In questa guida introduttiva la chiamata dei metodi diretti dall'hub indica al dispositivo di modificare l'intervallo di invio dei dati di telemetria. Il dispositivo simulato invia un riconoscimento all'hub dopo l'esecuzione del metodo diretto.

  1. In una finestra del terminale locale passare alla cartella radice del progetto Java di esempio. Passare quindi alla cartella iot-hub\Quickstarts\simulated-device-2 .

  2. Aprire il file src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java in un editor di testo di propria scelta.

    Sostituire il valore della connString variabile con la stringa di connessione del dispositivo annotato in precedenza. Salvare quindi le modifiche in SimulatedDevice.java.

  3. Nella finestra del terminale locale eseguire i comandi seguenti per installare le librerie necessarie e compilare l'applicazione del dispositivo simulato:

    mvn clean package
    
  4. Nella finestra del terminale locale eseguire i comandi seguenti per eseguire l'applicazione del dispositivo simulato:

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    La schermata seguente mostra l'output mentre l'applicazione del dispositivo simulato invia i dati di telemetria all'hub IoT:

    Screenshot di una finestra del terminale che mostra l'output dell'applicazione del dispositivo simulato.

Chiamare il metodo diretto

L'applicazione back-end si connette a un endpoint sul lato servizio nell'IoT Hub dell'utente. L'applicazione effettua chiamate dei metodi diretti a un dispositivo tramite l'hub IoT e rimane in ascolto degli acknowledgement. Un'applicazione back-end dell'hub IoT viene in genere eseguita nel cloud.

  1. In un'altra finestra del terminale locale passare alla cartella radice del progetto Java di esempio. Passare quindi alla cartella iot-hub\Quickstarts\back-end-application .

  2. Aprire il file src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java in un editor di testo di propria scelta.

    Sostituisci il valore della variabile iotHubConnectionString con la stringa di connessione del servizio annotata in precedenza. Salvare quindi le modifiche in BackEndApplication.java.

  3. Nella finestra del terminale locale eseguire i comandi seguenti per installare le librerie necessarie e compilare l'applicazione back-end:

    mvn clean package
    
  4. Nella finestra del terminale locale eseguire i comandi seguenti per eseguire l'applicazione back-end:

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    La schermata seguente mostra l'output visualizzato quando l'applicazione effettua una chiamata del metodo diretto al dispositivo e riceve un acknowledgement:

    Screenshot di una finestra del terminale che mostra il risultato della chiamata al metodo diretto dall'applicazione di servizio.

    Dopo aver eseguito l'applicazione back-end, viene visualizzato un messaggio nella finestra del terminale locale che esegue il dispositivo simulato e la frequenza con cui invia i messaggi cambia:

    Screenshot di una finestra del terminale che mostra il risultato diretto del messaggio e l'output aggiornato dall'applicazione del dispositivo simulato.

Questa guida introduttiva usa due applicazioni Node.js:

  • Applicazione del dispositivo simulato che risponde ai metodi diretti chiamati da un'applicazione back-end. Per ricevere le chiamate al metodo diretto, questa applicazione si connette a un endpoint specifico del dispositivo nell'hub IoT.
  • Un'applicazione back-end che chiama i metodi diretti sul dispositivo simulato. Per chiamare un metodo diretto in un dispositivo, questa applicazione si connette a un endpoint specifico del servizio nell'hub IoT.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Creane uno gratis.

  • Node.js 12+.

    È possibile verificare la versione corrente di Node.js installata nel computer di sviluppo tramite il comando seguente:

    node --version
    
  • Clonare o scaricare gli esempi di Node.js di Azure IoT da GitHub.

  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio di dispositivo in questa guida introduttiva usa il protocollo MQTT, che comunica sulla porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici. Per altre informazioni e modi per risolvere questo problema, vedere la sezione Connettersi all'hub IoT di Comunicare con un hub IoT usando il protocollo MQTT.

Annotazioni

Questo articolo usa la versione più recente dell'estensione Azure IoT, denominata azure-iot. La versione legacy è denominata azure-cli-iot-ext. Deve 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.

Creare un hub IoT

In questa sezione si usa l'interfaccia della riga di comando di Azure per creare un hub IoT e un gruppo di risorse. 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.

Se si ha già un hub IoT nella sottoscrizione di Azure, è possibile ignorare questa sezione.

Per creare un hub IoT e un gruppo di risorse:

  1. Avvia l'app CLI. Per eseguire i comandi dell'interfaccia della riga di comando nel resto di questo articolo, copiare la sintassi del comando, incollarla nell'app dell'interfaccia della riga di comando, modificare i valori delle variabili e premere Enter.

    • Se si usa Cloud Shell, selezionare il pulsante Prova nel comando dell'interfaccia della riga di comando per avviare Cloud Shell in una finestra divisa del browser. In alternativa, è possibile aprire Cloud Shell in una scheda separata del browser.
    • Se si usa Azure CLI in locale, avviare l'app console di Azure CLI e accedervi.
  2. Eseguire az extension add per installare o aggiornare l'estensione azure-iot alla versione corrente.

    az extension add --upgrade --name azure-iot
    
  3. Nell'app CLI, esegui il comando az group create per creare un gruppo di risorse. Il comando seguente crea un gruppo denominato MyResourceGroup nella posizione eastus.

    Annotazioni

    Facoltativamente, è possibile impostare una posizione diversa. Per visualizzare i percorsi disponibili, eseguire az account list-locations. Questa guida introduttiva usa eastus come illustrato nel comando di esempio.

    az group create --name MyResourceGroup --location eastus
    
  4. Eseguire il comando az iot hub create per creare un hub IoT. La creazione di un hub IoT potrebbe richiedere 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 questo argomento di avvio rapido ovunque venga visualizzato il segnaposto.

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

Registrazione di un dispositivo

È necessario registrare un dispositivo con l'hub IoT perché questo possa connettersi. In questa sezione si usa l'interfaccia della riga di comando di Azure per creare un'identità del dispositivo.

Se è già stato registrato un dispositivo nell'hub IoT, è possibile ignorare questa sezione.

Per creare un'identità del dispositivo:

  1. Eseguire il comando az iot hub device-identity create nella shell dell'interfaccia della riga di comando. Questo comando crea l'identità del dispositivo.

    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.

    myDevice. È possibile usare questo nome per l'ID dispositivo in questo articolo o specificare un nome di dispositivo diverso.

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. Eseguire il comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    L'output della stringa di connessione è nel formato seguente:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Salvare il stringa di connessione in una posizione sicura.

Annotazioni

Mantenere aperta l'app dell'interfaccia della riga di comando. Viene usato nei passaggi successivi.

Recuperare la stringa di connessione del servizio

È necessaria anche la stringa di connessione del servizio dell'hub IoT per consentire all'applicazione back-end di connettersi all'hub IoT e recuperare i messaggi. Il comando seguente recupera la stringa di connessione del servizio per l'hub IoT:

YourIoTHubName: sostituire questo segnaposto nel comando seguente con il nome scelto per l'hub IoT.

az iot hub connection-string show \
  --policy-name service --hub-name {YourIoTHubName} --output table

Prendere nota della stringa di connessione del servizio, simile alla seguente:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Il valore verrà usato più avanti in questa guida introduttiva. Questa stringa di connessione del servizio è diversa dalla stringa di connessione del dispositivo annotata nel passaggio precedente.

Simulare un dispositivo

L'applicazione del dispositivo simulato si connette a un endpoint specifico del dispositivo nell'hub IoT, invia dati di telemetria simulati e ascolta le chiamate dei metodi diretti dall'hub. In questa guida introduttiva la chiamata dei metodi diretti dall'hub indica al dispositivo di modificare l'intervallo di invio dei dati di telemetria. Il dispositivo simulato invia un riconoscimento all'hub dopo l'esecuzione del metodo diretto.

  1. In una finestra del terminale locale passare alla cartella radice del progetto di esempio Node.js. Passare quindi alla cartella iot-hub\Quickstarts\simulated-device-2 .

  2. Aprire il fileSimulatedDevice.js in un editor di testo di propria scelta.

    Sostituire il valore della connectionString variabile con la stringa di connessione del dispositivo annotato in precedenza. Salvare quindi le modifiche in SimulatedDevice.js.

  3. Nella finestra del terminale locale eseguire i comandi seguenti per installare le librerie necessarie ed eseguire l'applicazione del dispositivo simulato:

    npm install
    node SimulatedDevice.js
    

    La schermata seguente mostra l'output mentre l'applicazione del dispositivo simulato invia i dati di telemetria all'hub IoT:

    Screenshot di una finestra del terminale che mostra l'output dell'applicazione del dispositivo simulato.

Chiamare il metodo diretto

L'applicazione back-end si connette a un endpoint sul lato servizio nell'IoT Hub dell'utente. L'applicazione effettua chiamate dirette a un dispositivo tramite il tuo hub IoT e rimane in ascolto degli avvisi di conferma. Un'applicazione back-end dell'hub IoT viene in genere eseguita nel cloud.

  1. In un'altra finestra del terminale locale passare alla cartella radice del progetto di esempio Node.js. Passare quindi alla cartella iot-hub\Quickstarts\back-end-application .

  2. Aprire il fileBackEndApplication.js in un editor di testo di propria scelta.

    Sostituire il valore della variabile connectionString con la stringa di connessione del servizio di cui hai preso nota in precedenza. Salvare quindi le modifiche in BackEndApplication.js.

  3. Nella finestra del terminale locale eseguire i comandi seguenti per installare le librerie necessarie ed eseguire l'applicazione back-end:

    npm install
    node BackEndApplication.js
    

    La schermata seguente mostra l'output visualizzato quando l'applicazione effettua una chiamata del metodo diretto al dispositivo e riceve un acknowledgement:

    Screenshot di una finestra del terminale che mostra il risultato della chiamata al metodo diretto dall'applicazione di servizio.

    Dopo aver eseguito l'applicazione back-end, viene visualizzato un messaggio nella finestra del terminale locale che esegue il dispositivo simulato e la frequenza con cui invia i messaggi cambia:

    Screenshot di una finestra del terminale che mostra il risultato diretto del messaggio e l'output aggiornato dall'applicazione del dispositivo simulato.

Questa guida introduttiva usa due applicazioni Python:

  • Applicazione del dispositivo simulato che risponde ai metodi diretti chiamati da un'applicazione back-end.
  • Un'applicazione back-end che chiama i metodi diretti sul dispositivo simulato.

Prerequisiti

Annotazioni

Questo articolo usa la versione più recente dell'estensione Azure IoT, denominata azure-iot. La versione legacy è denominata azure-cli-iot-ext. Deve 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.

Creare un hub IoT

In questa sezione si usa l'interfaccia della riga di comando di Azure per creare un hub IoT e un gruppo di risorse. 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.

Se si ha già un hub IoT nella sottoscrizione di Azure, è possibile ignorare questa sezione.

Per creare un hub IoT e un gruppo di risorse:

  1. Avvia la tua app CLI. Per eseguire i comandi dell'interfaccia della riga di comando nel resto di questo articolo, copiare la sintassi del comando, incollarla nell'app dell'interfaccia della riga di comando, modificare i valori delle variabili e premere Enter.

    • Se utilizzi Cloud Shell, seleziona il pulsante Provalo nei comandi dell'interfaccia a riga di comando per avviare Cloud Shell in una finestra del browser divisa. In alternativa, è possibile aprire Cloud Shell in una scheda separata del browser.
    • Se stai usando Azure CLI localmente, avvia la tua app console CLI e accedi ad Azure CLI.
  2. Eseguire az extension add per installare o aggiornare l'estensione azure-iot alla versione corrente.

    az extension add --upgrade --name azure-iot
    
  3. Nell'app CLI, eseguire il comando az group create per creare un gruppo di risorse. Il comando seguente crea un gruppo denominato MyResourceGroup nella posizione eastus.

    Annotazioni

    Facoltativamente, è possibile impostare una posizione diversa. Per visualizzare i percorsi disponibili, eseguire az account list-locations. Questa guida introduttiva usa eastus come illustrato nel comando di esempio.

    az group create --name MyResourceGroup --location eastus
    
  4. Eseguire il comando az iot hub create per creare un hub IoT. La creazione di un hub IoT potrebbe richiedere 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 questo argomento di avvio rapido ovunque venga visualizzato il segnaposto.

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

Registrazione di un dispositivo

È necessario registrare un dispositivo con l'hub IoT perché questo possa connettersi. In questa sezione si usa l'interfaccia della riga di comando di Azure per creare un'identità del dispositivo.

Se è già stato registrato un dispositivo nell'hub IoT, è possibile ignorare questa sezione.

Per creare un'identità del dispositivo:

  1. Eseguire il comando az iot hub device-identity create nella shell CLI. Questo comando crea l'identità del dispositivo.

    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.

    myDevice. È possibile usare questo nome per l'ID dispositivo in questo articolo o specificare un nome di dispositivo diverso.

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. Eseguire il comando az iot hub device-identity connection-string show.

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    L'output della stringa di connessione è nel formato seguente:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Salvare il stringa di connessione in una posizione sicura.

Annotazioni

Mantieni aperta l'app CLI. Viene usato nei passaggi successivi.

Recuperare la stringa di connessione del servizio

È necessaria anche una stringa di connessione del servizio per consentire all'applicazione back-end di connettersi all'hub IoT e recuperare i messaggi. Il comando seguente recupera la stringa di connessione del servizio per l'hub IoT:

YourIoTHubName: sostituire questo segnaposto nel comando seguente con il nome scelto per l'hub IoT.

az iot hub connection-string show \
  --policy-name service \
  --hub-name {YourIoTHubName} \
  --output table

Prendere nota della stringa di connessione del servizio, simile alla seguente:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Il valore verrà usato più avanti in questa guida introduttiva. Questa stringa di connessione del servizio è diversa dalla stringa di connessione del dispositivo annotata nel passaggio precedente.

Simulare un dispositivo

L'applicazione del dispositivo simulato si connette a un endpoint specifico del dispositivo nel tuo hub IoT, invia dati di telemetria simulati e rimane in ascolto per le chiamate di metodi diretti provenienti dall'hub. In questa guida introduttiva la chiamata dei metodi diretti dall'hub indica al dispositivo di modificare l'intervallo di invio dei dati di telemetria. Il dispositivo simulato invia un riconoscimento all'hub dopo l'esecuzione del metodo diretto.

  1. In una finestra del terminale locale passare alla cartella radice del progetto Python di esempio. Passare quindi alla cartella iot-hub\Quickstarts\simulated-device-2 .

  2. Aprire il file SimulatedDeviceSync.py in un editor di testo di propria scelta.

    Sostituire il valore della CONNECTION_STRING variabile con la stringa di connessione del dispositivo annotato in precedenza. Salvare quindi le modifiche in SimulatedDeviceSync.py.

  3. Nella finestra del terminale locale eseguire i comandi seguenti per installare le librerie necessarie per l'applicazione del dispositivo simulato:

    pip install azure-iot-device
    
  4. Nella finestra del terminale locale eseguire i comandi seguenti per eseguire l'applicazione del dispositivo simulato:

    python SimulatedDeviceSync.py
    

    La schermata seguente mostra l'output mentre l'applicazione del dispositivo simulato invia i dati di telemetria all'hub IoT:

    Screenshot di una finestra del terminale che mostra l'output dell'applicazione del dispositivo simulato.

Chiamare il metodo diretto

L'applicazione back-end si connette a un endpoint sul lato servizio nell'IoT Hub dell'utente. L'applicazione effettua chiamate dei metodi diretti a un dispositivo tramite l'hub IoT e rimane in ascolto degli acknowledgement. Un'applicazione back-end dell'hub IoT viene in genere eseguita nel cloud.

  1. In un'altra finestra del terminale locale passare alla cartella radice del progetto Python di esempio. Passare quindi alla cartella iot-hub\Quickstarts\back-end-application .

  2. Aprire il file BackEndApplication.py in un editor di testo di propria scelta.

    Sostituire il valore della variabile CONNECTION_STRING con la stringa di connessione del servizio annotata in precedenza. Salvare quindi le modifiche in BackEndApplication.py.

  3. Nella finestra del terminale locale eseguire i comandi seguenti per installare le librerie necessarie per l'applicazione del dispositivo simulato:

    pip install azure-iot-hub
    
  4. Nella finestra del terminale locale eseguire i comandi seguenti per eseguire l'applicazione back-end:

    python BackEndApplication.py
    

    La schermata seguente mostra l'output visualizzato quando l'applicazione effettua una chiamata del metodo diretto al dispositivo e riceve un acknowledgement:

    Screenshot di una finestra del terminale che mostra il risultato della chiamata al metodo diretto dall'applicazione di servizio.

    Dopo aver eseguito l'applicazione back-end, viene visualizzato un messaggio nella finestra della console che esegue il dispositivo simulato e la frequenza con cui invia i messaggi cambia:

    Screenshot di una finestra del terminale che mostra il risultato diretto del messaggio e l'output aggiornato dall'applicazione del dispositivo simulato.

Pulire le risorse

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

In caso contrario, è possibile eliminare le risorse di Azure create in questo articolo per evitare addebiti.

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. Se è stato creato l'hub IoT all'interno di un gruppo di risorse esistente che contiene le risorse da mantenere, eliminare solo la risorsa dell'hub IoT invece di eliminare il gruppo di risorse.

Per eliminare un gruppo di risorse per nome:

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.

  2. Nella casella di testo Filtra per qualsiasi campo digitare il nome del gruppo di risorse contenente l'hub IoT.

  3. Nell'elenco dei risultati selezionare il gruppo di risorse contenente l'hub IoT.

  4. Nel riquadro di lavoro per il gruppo di risorse selezionare Elimina gruppo di risorse dalla barra dei comandi.

    Screenshot che mostra il riquadro di lavoro di un gruppo di risorse nel portale di Azure, con il comando Elimina gruppo di risorse evidenziato nella barra dei comandi.

  5. Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Digitare di nuovo il nome del gruppo di risorse per confermare e quindi selezionare Elimina. Dopo qualche istante il gruppo di risorse e tutte le risorse che contiene vengono eliminati.

Passaggi successivi

In questa guida introduttiva è stato chiamato un metodo diretto su un dispositivo da un'applicazione di servizio e si è risposto alla chiamata al metodo diretto in un'applicazione per dispositivi simulati.

Per informazioni su come instradare i messaggi da dispositivo a cloud a destinazioni diverse nel cloud, passare all'esercitazione successiva.