Avvio rapido: controllare un dispositivo connesso a un hub IoT

In questa guida introduttiva viene usato un metodo diretto per controllare un dispositivo simulato connesso all'hub IoT. hub IoT è un servizio di Azure che consente di gestire i dispositivi IoT dal cloud e 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.

  • Un'applicazione del dispositivo simulato che risponde ai metodi diretti chiamati da un'applicazione di servizio. Per ricevere le chiamate dei metodi diretti, l'applicazione si connette a un endpoint specifico del dispositivo nell'hub IoT.

  • Un'applicazione di servizio che chiama i metodi diretti sul dispositivo simulato. Per chiamare un metodo diretto su un dispositivo l'applicazione si connette a un endpoint sul lato servizio dell'hub IoT.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. È possibile crearne uno gratuitamente.

  • Le due applicazioni di esempio eseguite in questa guida introduttiva sono scritte in C#. È necessario .NET SDK 6.0 o versione successiva nel computer di sviluppo.

    È 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 Azure IoT C# SDK da GitHub.

  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio di dispositivo di questo argomento di avvio rapido usa il protocollo MQTT, che comunica tramite la porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici. Per altre informazioni e soluzioni alternative per questo problema, vedere Connettersi all'hub IoT (MQTT).

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.

In questa sezione viene usata 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 messaggi centrale per la comunicazione bidirezionale tra l'applicazione IoT e i dispositivi.

Se si dispone già di 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 nell'interfaccia della riga di comando per avviare Cloud Shell in una finestra del browser diviso. In alternativa, è possibile aprire la Cloud Shell in una scheda del browser separata.
    • Se si usa l'interfaccia della riga di comando di Azure in locale, avviare l'app console dell'interfaccia della riga di comando di Azure e accedere all'interfaccia della riga di comando di Azure.
  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.

    Nota

    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 questa guida introduttiva ovunque venga visualizzato il segnaposto.

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

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

Annotare la stringa di connessione del servizio, che avrà questo aspetto:

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 acknowledgement all'hub dopo l'esecuzione del metodo diretto.

  1. In una finestra del terminale locale passare alla cartella radice del progetto C# di esempio. 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:

    Eseguire il dispositivo simulato

Chiamare il metodo diretto

L'applicazione di servizio si connette a un endpoint sul lato servizio nell'hub IoT dell'utente. 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 in genere viene eseguita nel cloud.

  1. In un'altra finestra del terminale locale passare alla cartella radice del progetto C# di esempio. 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 del servizio.

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

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

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

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

    Eseguire l'applicazione di servizio

    Dopo l'esecuzione dell'applicazione di servizio, viene visualizzato un messaggio nella finestra della console in cui è in esecuzione il dispositivo simulato e la frequenza di invio dei messaggi cambia:

    Modifica nel client simulato

Questa guida introduttiva usa due applicazioni Java:

  • Un'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. È possibile crearne uno gratuitamente.

  • Java SE Development Kit 8. In Supporto a lungo termine di Java per Azure e Azure Stack selezionare Java 8 nella sezione Supporto a lungo termine.

    Per verificare la versione corrente di Java installata nel computer di sviluppo, usare il comando seguente:

    java -version
    
  • Apache Maven 3.

    Per verificare la versione corrente di Maven installata nel computer di sviluppo, usare il comando seguente:

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

  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio di dispositivo di questo argomento di avvio rapido usa il protocollo MQTT, che comunica tramite la porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici. Per altre informazioni e soluzioni alternative per questo problema, vedere Connettersi all'hub IoT (MQTT).

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.

Creare un hub IoT

In questa sezione viene usata 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 messaggi centrale per la comunicazione bidirezionale tra l'applicazione IoT e i dispositivi.

Se si dispone già di 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 nell'interfaccia della riga di comando per avviare Cloud Shell in una finestra del browser diviso. In alternativa, è possibile aprire la Cloud Shell in una scheda del browser separata.
    • Se si usa l'interfaccia della riga di comando di Azure in locale, avviare l'app console dell'interfaccia della riga di comando di Azure e accedere all'interfaccia della riga di comando di Azure.
  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.

    Nota

    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 questa guida introduttiva ovunque venga visualizzato il segnaposto.

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

Registrare un dispositivo

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

Se si ha già un dispositivo registrato 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.

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

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

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  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 {your_iot_hub_name}
    

    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 la stringa di connessione in una posizione sicura.

Nota

Mantenere aperta l'app dell'interfaccia della riga di comando. Verrà 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 dell'utente e recuperare i messaggi. Il comando seguente recupera la stringa di connessione del servizio per l'hub IoT:

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

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

Annotare la stringa di connessione del servizio, che avrà questo aspetto:

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 acknowledgement 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 variabile connString con la stringa di connessione del dispositivo annotata in precedenza. Salvare quindi le modifiche nel file 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:

    Output dei dati di telemetria inviati dal dispositivo all'hub IoT

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 in genere viene 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.

    Sostituire il valore della variabile iotHubConnectionString con la stringa di connessione del servizio annotata in precedenza. Salvare quindi le modifiche nel file 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:

    Output mentre l'applicazione effettua una chiamata di metodo diretta tramite l'hub IoT

    Dopo l'esecuzione dell'applicazione back-end, viene visualizzato un messaggio nella finestra della console che esegue il dispositivo simulato e cambia la frequenza di invio dei messaggi:

    Il messaggio della console dal dispositivo mostra la frequenza con cui cambia

Questa guida introduttiva usa due applicazioni Node.js:

  • Un'applicazione del dispositivo simulato che risponde ai metodi diretti chiamati da un'applicazione back-end. Per ricevere le chiamate dei metodi diretti, l'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. È possibile crearne uno gratuitamente.

  • 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 azure IoT Node.js da GitHub.

  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio di dispositivo di questo argomento di avvio rapido usa il protocollo MQTT, che comunica tramite la porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici. Per altre informazioni e soluzioni alternative per questo problema, vedere Connettersi all'hub IoT (MQTT).

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.

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 messaggi centrale 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 nella parte restante di questo articolo, copiare la sintassi dei comandi, 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 nei comandi dell'interfaccia della riga di comando per avviare Cloud Shell in una finestra split browser. In alternativa, è possibile aprire il Cloud Shell in una scheda del browser separata.
    • 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 all'interfaccia della riga di comando di Azure.
  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.

    Nota

    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 nella parte restante di questa guida introduttiva ovunque venga visualizzato il segnaposto.

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

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

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

    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 {your_iot_hub_name}
    
  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 {your_iot_hub_name}
    

    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 la stringa di connessione in una posizione sicura.

Nota

Mantenere aperta l'app dell'interfaccia della riga di comando. Verrà 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 il segnaposto in basso con il nome scelto per l'hub IoT.

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

Annotare la stringa di connessione del servizio, che avrà questo aspetto:

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 acknowledgement all'hub dopo l'esecuzione del metodo diretto.

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

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

    Sostituire il valore della variabile connectionString con la stringa di connessione del dispositivo annotata in precedenza. Salvare quindi le modifiche nel file 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:

    Eseguire il dispositivo simulato

Chiamare il metodo diretto

L'applicazione back-end 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 back-end dell'hub IoT in genere viene eseguita nel cloud.

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

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

    Sostituire il valore della variabile connectionString con la stringa di connessione del servizio annotata in precedenza. Salvare quindi le modifiche nel file 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:

    Output quando l'applicazione effettua una chiamata del metodo diretto al dispositivo

    Dopo l'esecuzione dell'applicazione back-end, viene visualizzato un messaggio nella finestra della console che esegue il dispositivo simulato e cambia la frequenza di invio dei messaggi:

    Output in caso di modifica nel client simulato

Questa guida introduttiva usa due applicazioni Python:

  • Un'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

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.

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 messaggi centrale 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 nella parte restante di questo articolo, copiare la sintassi dei comandi, 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 nei comandi dell'interfaccia della riga di comando per avviare Cloud Shell in una finestra split browser. In alternativa, è possibile aprire il Cloud Shell in una scheda del browser separata.
    • 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 all'interfaccia della riga di comando di Azure.
  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.

    Nota

    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 nella parte restante di questa guida introduttiva ovunque venga visualizzato il segnaposto.

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

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

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

    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 {your_iot_hub_name}
    
  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 {your_iot_hub_name}
    

    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 la stringa di connessione in una posizione sicura.

Nota

Mantenere aperta l'app dell'interfaccia della riga di comando. Verrà 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 dell'utente e recuperare i messaggi. Il comando seguente recupera la stringa di connessione del servizio per l'hub IoT:

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

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

Annotare la stringa di connessione del servizio, che avrà questo aspetto:

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 acknowledgement 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 a scelta.

    Sostituire il valore della variabile CONNECTION_STRING con la stringa di connessione del dispositivo annotata 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:

    Eseguire il 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 in genere viene 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 nel file 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:

    Eseguire l'applicazione back-end

    Dopo l'esecuzione dell'applicazione back-end, viene visualizzato un messaggio nella finestra della console che esegue il dispositivo simulato e cambia la frequenza di invio dei messaggi:

    Modifica nel client simulato

Pulire le risorse

Se si continua con il prossimo articolo consigliato, è possibile conservare 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 si è creato l'hub IoT all'interno di un gruppo di risorse esistente che contiene risorse che si vogliono conservare, 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 nome immettere il nome del gruppo di risorse che contiene l'hub IoT.

  3. A destra del gruppo di risorse nell'elenco dei risultati selezionare ... quindi su Elimina gruppo di risorse.

    Delete

  4. 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 di avvio rapido è stato chiamato un metodo diretto su un dispositivo da un'applicazione di servizio ed è stata inviata una risposta alla chiamata del metodo diretto in un'applicazione del dispositivo simulato.

Per informazioni su come indirizzare messaggi da dispositivo a cloud a diverse destinazioni nel cloud, continuare con l'esercitazione successiva.