Esercitazione: Connessione un'applicazione del dispositivo Plug and Play IoT di esempio in esecuzione in Linux o Windows per hub IoT

Questa esercitazione illustra come creare un'applicazione del dispositivo di esempio Plug and Play IoT, connetterla all'hub IoT e usare lo strumento Azure IoT Explorer per visualizzare i dati di telemetria inviati. L'applicazione di esempio è scritta in C ed è inclusa in Azure IoT SDK per dispositivi per C. Un generatore di soluzioni può usare lo strumento Azure IoT Explorer per conoscere le funzionalità di un dispositivo Plug and Play IoT senza dover visualizzare il codice del dispositivo.

Esplora il codice

Prerequisiti

Prima di continuare, assicurarsi di aver configurato l'ambiente, incluso l'hub IoT.

È possibile eseguire questa esercitazione in Linux o in Windows. I comandi della shell in questa esercitazione seguono la convenzione Linux per i separatori di percorso '/'. Se si usa Windows, assicurarsi di sostituire questi separatori con '\'.

I prerequisiti variano in base al sistema operativo:

Linux

Questa esercitazione presuppone l'uso di Ubuntu Linux. I passaggi in questa esercitazione sono stati testati con Ubuntu 18.04.

Per completare questa esercitazione, installare il software seguente nell'ambiente Linux locale:

Installare GCC, Git, cmake e tutte le dipendenze necessarie usando il comando apt-get:

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

Verificare che la versione di cmake sia superiore alla 2.8.12 e che la versione di GCC sia superiore alla 4.4.7.

cmake --version
gcc --version

Windows

Per completare questa esercitazione in Windows, installare il software seguente nell'ambiente Windows locale:

Scaricare il codice

In questa esercitazione viene preparato un ambiente di sviluppo che è possibile usare per clonare e compilare Azure IoT Hub SDK per dispositivi per C.

Aprire un prompt dei comandi nella directory di propria scelta. Eseguire questo comando per clonare il repository GitHub di SDK e librerie di Azure IoT per C in tale percorso:

git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

Il completamento di questa operazione richiederà alcuni minuti.

Compilare il codice

È possibile compilare ed eseguire il codice usando Visual Studio oppure eseguendo cmake dalla riga di comando.

Usare Visual Studio

  1. Aprire la cartella radice del repository clonato. Dopo alcuni secondi, il supporto CMake in Visual Studio crea tutti gli elementi necessari per l'esecuzione e il debug del progetto.

  2. Quando Visual Studio è pronto, in Esplora soluzioni passare all'esempio iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. Fare clic con il pulsante destro del mouse sul file pnp_simple_thermostat.c e scegliere Aggiungi configurazione di debug. Selezionare l'impostazione predefinita.

  4. In Visual Studio viene aperto il file launch.vs.json. Modificare questo file come illustrato nel frammento di codice seguente per impostare le variabili di ambiente richieste. L'ID ambito e la chiave primaria di registrazione sono stati annotati quando sono state completate le guide di avvio rapido e le esercitazioni per configurare l'ambiente per Plug and Play IoT:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c",
          "projectTarget": "",
          "name": "pnp_simple_thermostat.c",
          "env": {
            "IOTHUB_DEVICE_SECURITY_TYPE": "DPS",
            "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>",
            "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device",
            "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>"
          }
        }
      ]
    }
    
  5. Fare clic con il pulsante destro del mouse sul file pnp_simple_thermostat.c e scegliere Imposta come elemento di avvio.

  6. Per tracciare l'esecuzione del codice in Visual Studio, aggiungere un punto di interruzione alla main funzione nel file pnp_simple_thermostat.c .

  7. È ora possibile eseguire l'esempio ed eseguirne il debug dal menu Debug.

Il dispositivo è ora pronto a ricevere comandi e aggiornamenti delle proprietà e ha iniziato a inviare dati di telemetria all'hub. Lasciare l'esempio in esecuzione mentre si completano i passaggi successivi.

Usare cmake per compilare il codice

Usare l'utilità della riga di comando cmake per compilare il codice:

  1. Creare una sottodirectory cmake nella cartella radice dell'SDK per dispositivi e passare a tale cartella:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. Eseguire i comandi seguenti per compilare l'SDK e gli esempi:

    cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF ..
    cmake --build .
    

Eseguire l'esempio del dispositivo

Nell'articolo Configurare l'ambiente sono state create quattro variabili di ambiente per configurare l'esempio in modo da usare il servizio Device Provisioning per connettersi all'hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE con il valore DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE con l'ambito ID servizio Device Provisioning.
  • IOTHUB_DEVICE_DPS_DEVICE_ID con il valore my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY con la chiave primaria di registrazione.
  • IOTHUB_DEVICE_DPS_ENDPOINT con il valore global.azure-devices-provisioning.net.

Per altre informazioni sulla configurazione di esempio, vedere il file Leggimi dell'esempio.

Per eseguire l'applicazione di esempio nell'SDK che simula un dispositivo Plug and Play IoT che invia dati di telemetria all'hub IoT:

Dalla cartella cmake passare alla cartella che contiene il file eseguibile ed eseguirlo:

# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe

Suggerimento

Per tracciare l'esecuzione del codice in Visual Studio in Windows, aggiungere un punto di interruzione alla funzione main nel file pnp_simple_thermostat.c.

Il dispositivo è ora pronto a ricevere comandi e aggiornamenti delle proprietà e ha iniziato a inviare dati di telemetria all'hub. Lasciare l'esempio in esecuzione mentre si completano i passaggi successivi.

Usare Azure IoT Explorer per convalidare il codice

Dopo l'avvio dell'esempio client del dispositivo, usare lo strumento Azure IoT Explorer per verificarne il funzionamento.

  1. Aprire Azure IoT Explorer.

  2. Nella pagina Hub IoT, se non è già stata aggiunta una connessione all'hub IoT, selezionare + Aggiungi connessione. Immettere la stringa di connessione per l'hub IoT creato in precedenza e selezionare Salva.

  3. Nella pagina Plug and Play IoT Impostazioni selezionare + Aggiungi > cartella locale e selezionare la cartella modelli locale in cui sono stati salvati i file del modello.

  4. Nella pagina Hub IoT fare clic sul nome dell'hub che si vuole usare. Viene visualizzato un elenco dei dispositivi registrati nell'hub IoT.

  5. Fare clic sull'ID dispositivo del dispositivo creato in precedenza.

  6. Il menu a sinistra mostra i diversi tipi di informazioni disponibili per il dispositivo.

  7. Selezionare Componenti Plug and Play IoT per visualizzare le informazioni sul modello del dispositivo.

  8. È possibile visualizzare i diversi componenti del dispositivo. Componente predefinito ed eventuali componenti aggiuntivi. Selezionare un componente da usare.

  9. Selezionare la pagina Telemetria e quindi selezionare Avvia per visualizzare i dati di telemetria inviati dal dispositivo per questo componente.

  10. Selezionare la pagina Proprietà (solo lettura) per visualizzare le proprietà di sola lettura segnalate per questo componente.

  11. Selezionare la pagina Properties (writable) (Proprietà - accessibili in scrittura) per visualizzare le proprietà accessibili in scrittura che è possibile aggiornare per questo componente.

  12. Selezionare una proprietà in base al nome, immettere un nuovo valore e selezionare Update desired value (Aggiorna valore desiderato).

  13. Per visualizzare il nuovo valore, selezionare il pulsante Aggiorna.

  14. Selezionare la pagina Comandi per visualizzare tutti i comandi per questo componente.

  15. Selezionare il comando di cui si vuole testare l'impostazione del parametro, se presente. Selezionare Invia comando per chiamare il comando nel dispositivo. Nella finestra del prompt dei comandi in cui è in esecuzione il codice di esempio si vedrà che il dispositivo risponde al comando.

Esaminare il codice

Questo esempio implementa un semplice dispositivo termostato Plug and Play IoT. Il modello termostato non usa componenti Plug and Play IoT. Il file di modello DTDL per il dispositivo termostato definisce i dati di telemetria, le proprietà e i comandi implementati dal dispositivo.

Il codice del dispositivo usa la funzione standard per la connessione all'hub IoT:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

Il dispositivo invia l'ID modello del modello DTDL implementato nella richiesta di connessione. Un dispositivo che invia un ID modello è un dispositivo Plug and Play IoT:

static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

Il codice che aggiorna le proprietà, gestisce i comandi e invia i dati di telemetria è identico al codice per un dispositivo che non usa le convenzioni di Plug and Play IoT.

Il codice usa la libreria Parson per analizzare oggetti JSON nei payload inviati dall'hub IoT:

// JSON parser
#include "parson.h"

Pulire le risorse

Se sono state completate le guide introduttive e le esercitazioni, vedere Pulire le risorse.

Questa esercitazione illustra come creare un'applicazione del dispositivo di esempio Plug and Play IoT, connetterla all'hub IoT e usare lo strumento Azure IoT Explorer per visualizzare i dati di telemetria inviati. L'applicazione di esempio è scritta in C# ed è inclusa in Azure IoT SDK per C#. Un integratore di soluzioni può usare lo strumento Azure IoT Explorer per conoscere le funzionalità di un dispositivo Plug and Play IoT senza doverne visualizzare il codice.

Esplora il codice

Prerequisiti

Prima di continuare, assicurarsi di aver configurato l'ambiente, incluso l'hub IoT.

È possibile eseguire questa esercitazione in Linux o in Windows. I comandi della shell in questa esercitazione seguono la convenzione Linux per i separatori di percorso '/'. Se si usa Windows, assicurarsi di sostituire questi separatori con '\'.

Scaricare il codice

In questa esercitazione si prepara un ambiente di sviluppo che è possibile usare per clonare e compilare il repository Azure IoT SDK per C#.

Aprire un prompt dei comandi in una cartella di propria scelta. Eseguire il comando seguente per clonare il repository GitHub di Microsoft Azure IoT SDK per C# (.NET) in questo percorso:

git clone  https://github.com/Azure/azure-iot-sdk-csharp

Compilare il codice

È ora possibile compilare l'esempio ed eseguirlo. Eseguire i comandi seguenti per compilare l'esempio:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

Eseguire l'esempio del dispositivo

Per eseguire l'esempio, eseguire il comando seguente:

dotnet run

Il dispositivo è ora pronto a ricevere comandi e aggiornamenti delle proprietà e ha iniziato a inviare dati di telemetria all'hub. Lasciare l'esempio in esecuzione mentre si completano i passaggi successivi.

Usare Azure IoT Explorer per convalidare il codice

Dopo l'avvio dell'esempio client del dispositivo, usare lo strumento Azure IoT Explorer per verificarne il funzionamento.

  1. Aprire Azure IoT Explorer.

  2. Nella pagina Hub IoT, se non è già stata aggiunta una connessione all'hub IoT, selezionare + Aggiungi connessione. Immettere la stringa di connessione per l'hub IoT creato in precedenza e selezionare Salva.

  3. Nella pagina Plug and Play IoT Impostazioni selezionare + Aggiungi > cartella locale e selezionare la cartella modelli locale in cui sono stati salvati i file del modello.

  4. Nella pagina Hub IoT fare clic sul nome dell'hub che si vuole usare. Viene visualizzato un elenco dei dispositivi registrati nell'hub IoT.

  5. Fare clic sull'ID dispositivo del dispositivo creato in precedenza.

  6. Il menu a sinistra mostra i diversi tipi di informazioni disponibili per il dispositivo.

  7. Selezionare Componenti Plug and Play IoT per visualizzare le informazioni sul modello del dispositivo.

  8. È possibile visualizzare i diversi componenti del dispositivo. Componente predefinito ed eventuali componenti aggiuntivi. Selezionare un componente da usare.

  9. Selezionare la pagina Telemetria e quindi selezionare Avvia per visualizzare i dati di telemetria inviati dal dispositivo per questo componente.

  10. Selezionare la pagina Proprietà (solo lettura) per visualizzare le proprietà di sola lettura segnalate per questo componente.

  11. Selezionare la pagina Properties (writable) (Proprietà - accessibili in scrittura) per visualizzare le proprietà accessibili in scrittura che è possibile aggiornare per questo componente.

  12. Selezionare una proprietà in base al nome, immettere un nuovo valore e selezionare Update desired value (Aggiorna valore desiderato).

  13. Per visualizzare il nuovo valore, selezionare il pulsante Aggiorna.

  14. Selezionare la pagina Comandi per visualizzare tutti i comandi per questo componente.

  15. Selezionare il comando di cui si vuole testare l'impostazione del parametro, se presente. Selezionare Invia comando per chiamare il comando nel dispositivo. Nella finestra del prompt dei comandi in cui è in esecuzione il codice di esempio si vedrà che il dispositivo risponde al comando.

Esaminare il codice

Questo esempio implementa un semplice dispositivo termostato Plug and Play IoT. Il modello implementato da questo esempio non usa componenti di Plug and Play IoT. Il file di modello DTDL (Digital Twins Definition Language) per il dispositivo termostato definisce i dati di telemetria, le proprietà e i comandi implementati dal dispositivo.

Il codice del dispositivo si connette all'hub IoT usando il metodo CreateFromConnectionString standard. Il dispositivo invia l'ID modello del modello DTDL implementato nella richiesta di connessione. Un dispositivo che invia un ID modello è un dispositivo Plug and Play IoT:

private static void InitializeDeviceClientAsync()
{
  var options = new ClientOptions
  {
    ModelId = ModelId,
  };
  s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
  s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
  {
     s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
  });
}

L'ID modello viene archiviato nel codice come mostrato nel frammento seguente:

private const string ModelId = "dtmi:com:example:Thermostat;1";

Il codice che aggiorna le proprietà, gestisce i comandi e invia i dati di telemetria è identico al codice per un dispositivo che non usa le convenzioni di Plug and Play IoT.

L'esempio usa una libreria JSON per analizzare oggetti JSON nei payload inviati dall'hub IoT:

using Newtonsoft.Json;

...

DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);

Pulire le risorse

Se sono state completate le guide introduttive e le esercitazioni, vedere Pulire le risorse.

Questa esercitazione illustra come creare un'applicazione del dispositivo di esempio Plug and Play IoT, connetterla all'hub IoT e usare lo strumento Azure IoT Explorer per visualizzare i dati di telemetria inviati. L'applicazione di esempio è scritta in Java ed è inclusa in Azure IoT SDK per dispositivi per Java. Un integratore di soluzioni può usare lo strumento Azure IoT Explorer per conoscere le funzionalità di un dispositivo Plug and Play IoT senza doverne visualizzare il codice.

Esplora il codice

Prerequisiti

Prima di continuare, assicurarsi di aver configurato l'ambiente, incluso l'hub IoT.

È possibile eseguire questa esercitazione in Linux o in Windows. I comandi della shell in questa esercitazione seguono la convenzione Linux per i separatori di percorso '/'. Se si usa Windows, assicurarsi di sostituire questi separatori con '\'.

Per completare questa esercitazione, installare il software seguente nell'ambiente di sviluppo locale:

Scaricare il codice

In questa esercitazione viene preparato un ambiente di sviluppo che è possibile usare per clonare e compilare Azure IoT Hub SDK per dispositivi per Java.

Aprire un prompt dei comandi nella directory di propria scelta. Eseguire il comando seguente per clonare il repository GitHub di SDK e librerie di Azure IoT per Java in questo percorso:

git clone https://github.com/Azure/azure-iot-sdk-java.git

Compilare il codice

Passare alla cartella radice dell'esempio di termostato nel repository Java SDK clonato e compilarla:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

Eseguire l'esempio del dispositivo

Nell'articolo Configurare l'ambiente sono state create quattro variabili di ambiente per configurare l'esempio in modo da usare il servizio Device Provisioning per connettersi all'hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE con il valore DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE con l'ambito ID servizio Device Provisioning.
  • IOTHUB_DEVICE_DPS_DEVICE_ID con il valore my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY con la chiave primaria di registrazione.
  • IOTHUB_DEVICE_DPS_ENDPOINT con il valore global.azure-devices-provisioning.net.

Per altre informazioni sulla configurazione di esempio, vedere il file Leggimi dell'esempio.

Dalla cartella /device/iot-device-samples/pnp-device-sample/thermostat-device-sample eseguire l'applicazione:

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

Il dispositivo è ora pronto a ricevere comandi e aggiornamenti delle proprietà e ha iniziato a inviare dati di telemetria all'hub. Lasciare l'esempio in esecuzione mentre si completano i passaggi successivi.

Usare Azure IoT Explorer per convalidare il codice

Dopo l'avvio dell'esempio client del dispositivo, usare lo strumento Azure IoT Explorer per verificarne il funzionamento.

  1. Aprire Azure IoT Explorer.

  2. Nella pagina Hub IoT, se non è già stata aggiunta una connessione all'hub IoT, selezionare + Aggiungi connessione. Immettere la stringa di connessione per l'hub IoT creato in precedenza e selezionare Salva.

  3. Nella pagina Plug and Play IoT Impostazioni selezionare + Aggiungi > cartella locale e selezionare la cartella modelli locale in cui sono stati salvati i file del modello.

  4. Nella pagina Hub IoT fare clic sul nome dell'hub che si vuole usare. Viene visualizzato un elenco dei dispositivi registrati nell'hub IoT.

  5. Fare clic sull'ID dispositivo del dispositivo creato in precedenza.

  6. Il menu a sinistra mostra i diversi tipi di informazioni disponibili per il dispositivo.

  7. Selezionare Componenti Plug and Play IoT per visualizzare le informazioni sul modello del dispositivo.

  8. È possibile visualizzare i diversi componenti del dispositivo. Componente predefinito ed eventuali componenti aggiuntivi. Selezionare un componente da usare.

  9. Selezionare la pagina Telemetria e quindi selezionare Avvia per visualizzare i dati di telemetria inviati dal dispositivo per questo componente.

  10. Selezionare la pagina Proprietà (solo lettura) per visualizzare le proprietà di sola lettura segnalate per questo componente.

  11. Selezionare la pagina Properties (writable) (Proprietà - accessibili in scrittura) per visualizzare le proprietà accessibili in scrittura che è possibile aggiornare per questo componente.

  12. Selezionare una proprietà in base al nome, immettere un nuovo valore e selezionare Update desired value (Aggiorna valore desiderato).

  13. Per visualizzare il nuovo valore, selezionare il pulsante Aggiorna.

  14. Selezionare la pagina Comandi per visualizzare tutti i comandi per questo componente.

  15. Selezionare il comando di cui si vuole testare l'impostazione del parametro, se presente. Selezionare Invia comando per chiamare il comando nel dispositivo. Nella finestra del prompt dei comandi in cui è in esecuzione il codice di esempio si vedrà che il dispositivo risponde al comando.

Esaminare il codice

Questo esempio implementa un semplice dispositivo termostato Plug and Play IoT. Il modello implementato da questo esempio non usa componenti di Plug and Play IoT. Il file di modello DTDL per il dispositivo termostato definisce i dati di telemetria, le proprietà e i comandi implementati dal dispositivo.

Il codice del dispositivo usa la classe DeviceClient standard per la connessione all'hub IoT. Il dispositivo invia l'ID modello del modello DTDL implementato nella richiesta di connessione. Un dispositivo che invia un ID modello è un dispositivo Plug and Play IoT:

private static void initializeDeviceClient() throws URISyntaxException, IOException {
    ClientOptions options = new ClientOptions();
    options.setModelId(MODEL_ID);
    deviceClient = new DeviceClient(deviceConnectionString, protocol, options);

    deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
        log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);

        if (throwable != null) {
            log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
            throwable.printStackTrace();
        }
    }, deviceClient);

    deviceClient.open();
}

L'ID modello viene archiviato nel codice come mostrato nel frammento seguente:

private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";

Il codice che aggiorna le proprietà, gestisce i comandi e invia i dati di telemetria è identico al codice per un dispositivo che non usa le convenzioni di Plug and Play IoT.

L'esempio usa una libreria JSON per analizzare oggetti JSON nei payload inviati dall'hub IoT:

import com.google.gson.Gson;

...

Date since = new Gson().fromJson(jsonRequest, Date.class);

Pulire le risorse

Se sono state completate le guide introduttive e le esercitazioni, vedere Pulire le risorse.

Questa esercitazione illustra come creare un'applicazione del dispositivo di esempio Plug and Play IoT, connetterla all'hub IoT e usare lo strumento Azure IoT Explorer per visualizzare i dati di telemetria inviati. L'applicazione di esempio è scritta in Node.js ed è inclusa in Azure IoT SDK per dispositivi per Node.js. Un integratore di soluzioni può usare lo strumento Azure IoT Explorer per conoscere le funzionalità di un dispositivo Plug and Play IoT senza doverne visualizzare il codice.

Esplora il codice

Prerequisiti

Prima di continuare, assicurarsi di aver configurato l'ambiente, incluso l'hub IoT.

È possibile eseguire questa esercitazione in Linux o in Windows. I comandi della shell in questa esercitazione seguono la convenzione Linux per i separatori di percorso '/'. Se si usa Windows, assicurarsi di sostituire questi separatori con '\'.

Per completare questa esercitazione, è necessario Node.js nel computer di sviluppo. È possibile scaricare la versione più recente consigliata per più piattaforme da nodejs.org.

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

node --version

Scaricare il codice

In questa esercitazione viene preparato un ambiente di sviluppo che è possibile usare per clonare e compilare Azure IoT Hub Device SDK per Node.js.

Aprire un prompt dei comandi nella directory di propria scelta. Eseguire questo comando per clonare il repository GitHub di Microsoft Azure IoT SDK per Node.js in questo percorso:

git clone https://github.com/Azure/azure-iot-sdk-node

Installare le librerie necessarie

Usare l'SDK del dispositivo per compilare il codice di esempio incluso. L'applicazione compilata simula un dispositivo che si connette a un hub IoT. L'applicazione invia proprietà e dati di telemetria e riceve comandi.

  1. In una finestra del terminale locale passare alla cartella del repository clonato e passare alla cartella /azure-iot-sdk-node/device/samples/javascript . Eseguire quindi il comando seguente per installare le librerie necessarie:

    npm install
    

Eseguire il dispositivo di esempio

Questo esempio implementa un semplice dispositivo termostato Plug and Play IoT. Il modello implementato da questo esempio non usa componenti di Plug and Play IoT. Il file di modello DTDL per il dispositivo termostato definisce i dati di telemetria, le proprietà e i comandi implementati dal dispositivo.

Aprire il file pnp_simple_thermostat.js . In questo file è possibile osservare come:

  1. Importare le interfacce necessarie.
  2. Scrivere un gestore di aggiornamento delle proprietà e un gestore di comandi.
  3. Gestire le patch delle proprietà desiderate e inviare i dati di telemetria.
  4. Eseguire facoltativamente il provisioning del dispositivo con il servizio Device Provisioning (DPS) di Azure.

Nella funzione principale è possibile osservare come vengono combinate tutte queste operazioni:

  1. Creare il dispositivo dalla stringa di connessione o eseguirne il provisioning usando il servizio Device Provisioning.
  2. Usare l'opzione modelID per specificare il modello di dispositivo Plug and Play IoT.
  3. Abilitare il gestore dei comandi.
  4. Inviare i dati di telemetria dal dispositivo all'hub.
  5. Ottenere i dispositivi gemelli e aggiornare le proprietà segnalate.
  6. Abilitare il gestore di aggiornamento delle proprietà desiderato.

Nell'articolo Configurare l'ambiente sono state create quattro variabili di ambiente per configurare l'esempio in modo da usare il servizio Device Provisioning per connettersi all'hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE con il valore DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE con l'ambito ID servizio Device Provisioning.
  • IOTHUB_DEVICE_DPS_DEVICE_ID con il valore my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY con la chiave primaria di registrazione.
  • IOTHUB_DEVICE_DPS_ENDPOINT con il valore global.azure-devices-provisioning.net.

Per altre informazioni sulla configurazione di esempio, vedere il file Leggimi dell'esempio.

Eseguire l'applicazione di esempio per simulare un dispositivo Plug and Play IoT che invia dati di telemetria all'hub IoT. Per eseguire l'applicazione di esempio, usare il comando seguente:

node pnp_simple_thermostat.js

Viene visualizzato l'output seguente, che indica che il dispositivo ha iniziato a inviare dati di telemetria all'hub ed è ora pronto a ricevere comandi e aggiornamenti delle proprietà.

Messaggi di conferma del dispositivo

Lasciare l'esempio in esecuzione mentre si completano i passaggi successivi.

Usare Azure IoT Explorer per convalidare il codice

Dopo l'avvio dell'esempio client del dispositivo, usare lo strumento Azure IoT Explorer per verificarne il funzionamento.

  1. Aprire Azure IoT Explorer.

  2. Nella pagina Hub IoT, se non è già stata aggiunta una connessione all'hub IoT, selezionare + Aggiungi connessione. Immettere la stringa di connessione per l'hub IoT creato in precedenza e selezionare Salva.

  3. Nella pagina Plug and Play IoT Impostazioni selezionare + Aggiungi > cartella locale e selezionare la cartella modelli locale in cui sono stati salvati i file del modello.

  4. Nella pagina Hub IoT fare clic sul nome dell'hub che si vuole usare. Viene visualizzato un elenco dei dispositivi registrati nell'hub IoT.

  5. Fare clic sull'ID dispositivo del dispositivo creato in precedenza.

  6. Il menu a sinistra mostra i diversi tipi di informazioni disponibili per il dispositivo.

  7. Selezionare Componenti Plug and Play IoT per visualizzare le informazioni sul modello del dispositivo.

  8. È possibile visualizzare i diversi componenti del dispositivo. Componente predefinito ed eventuali componenti aggiuntivi. Selezionare un componente da usare.

  9. Selezionare la pagina Telemetria e quindi selezionare Avvia per visualizzare i dati di telemetria inviati dal dispositivo per questo componente.

  10. Selezionare la pagina Proprietà (solo lettura) per visualizzare le proprietà di sola lettura segnalate per questo componente.

  11. Selezionare la pagina Properties (writable) (Proprietà - accessibili in scrittura) per visualizzare le proprietà accessibili in scrittura che è possibile aggiornare per questo componente.

  12. Selezionare una proprietà in base al nome, immettere un nuovo valore e selezionare Update desired value (Aggiorna valore desiderato).

  13. Per visualizzare il nuovo valore, selezionare il pulsante Aggiorna.

  14. Selezionare la pagina Comandi per visualizzare tutti i comandi per questo componente.

  15. Selezionare il comando di cui si vuole testare l'impostazione del parametro, se presente. Selezionare Invia comando per chiamare il comando nel dispositivo. Nella finestra del prompt dei comandi in cui è in esecuzione il codice di esempio si vedrà che il dispositivo risponde al comando.

Pulire le risorse

Se sono state completate le guide introduttive e le esercitazioni, vedere Pulire le risorse.

Questa esercitazione illustra come creare un'applicazione del dispositivo di esempio Plug and Play IoT, connetterla all'hub IoT e usare lo strumento Azure IoT Explorer per visualizzare i dati di telemetria inviati. L'applicazione di esempio è scritta per Python ed è inclusa in Azure IoT Hub Device SDK per Python. Un integratore di soluzioni può usare lo strumento Azure IoT Explorer per conoscere le funzionalità di un dispositivo Plug and Play IoT senza doverne visualizzare il codice.

Esplora il codice

Prerequisiti

Prima di continuare, assicurarsi di aver configurato l'ambiente, incluso l'hub IoT.

Per completare questa esercitazione, è necessario che Python sia installato nel computer di sviluppo. Controllare Azure IoT Python SDK per i requisiti correnti per la versione di Python. È possibile controllare la versione di Python con il comando seguente:

python --version

È possibile scaricare la versione più recente consigliata per più piattaforme da python.org.

Nell'ambiente Python locale installare il pacchetto nel modo seguente:

pip install azure-iot-device

Clonare il repository IoT di Python SDK:

git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python

Eseguire il dispositivo di esempio

La cartella azure-iot-sdk-python/samples/pnp contiene il codice di esempio per il dispositivo Plug and Play IoT. Questa esercitazione usa il file simple_thermostat.py . Questo codice di esempio implementa un dispositivo compatibile con Plug and Play IoT e usa la libreria client dei dispositivi Python di Azure IoT.

Aprire il file simple_thermostat.py in un editor di testo. Si noti che:

  1. Definisce un singolo identificatore di modello di dispositivo gemello che rappresenta in modo univoco il termostato. Un identificatore di modello di dispositivo gemello deve essere noto all'utente e dipende dallo scenario di implementazione del dispositivo. Per l'esempio corrente il modello rappresenta un termostato con dati di telemetria, proprietà e comandi associati al monitoraggio della temperatura.

  2. Include funzioni per definire implementazioni del gestore di comandi. È necessario scrivere questi gestori per definire il modo in cui il dispositivo risponde alle richieste dei comandi.

  3. Include una funzione per definire una risposta ai comandi. È necessario creare funzioni di risposta ai comandi per restituire una risposta all'hub IoT.

  4. Definisce una funzione listener di tastiera di input che consente di uscire dall'applicazione.

  5. Include una funzione main. La funzione main:

    1. Usa l'SDK del dispositivo per creare un client del dispositivo e connettersi all'hub IoT.

    2. Aggiorna le proprietà. Il modello Thermostat definisce targetTemperature e maxTempSinceLastReboot come le due proprietà per il termostato. Le proprietà vengono aggiornate tramite il metodo patch_twin_reported_properties definito in device_client.

    3. Avvia l'ascolto di richieste di comandi tramite la funzione execute_command_listener. La funzione configura un "listener" per ascoltare i comandi provenienti dal servizio. Quando si configura il listener, si specifica un method_nameoggetto , user_command_handlere create_user_response_handler.

      • La funzione user_command_handler definisce l'operazione che il dispositivo deve eseguire quando riceve un comando.
      • La funzione create_user_response_handler crea una risposta da inviare all'hub IoT quando un comando viene eseguito correttamente. È possibile visualizzare questa risposta nel portale.
    4. Avviare l'invio dei dati di telemetria. Il valore pnp_send_telemetry viene definito nel file pnp_methods.py. Il codice di esempio usa un ciclo per chiamare questa funzione ogni otto secondi.

    5. Disabilita tutti i listener e le attività ed esce dal ciclo quando si preme Q o q.

Nell'articolo Configurare l'ambiente sono state create quattro variabili di ambiente per configurare l'esempio in modo da usare il servizio Device Provisioning per connettersi all'hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE con il valore DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE con l'ambito ID servizio Device Provisioning.
  • IOTHUB_DEVICE_DPS_DEVICE_ID con il valore my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY con la chiave primaria di registrazione.
  • IOTHUB_DEVICE_DPS_ENDPOINT con il valore global.azure-devices-provisioning.net.

Per altre informazioni sulla configurazione di esempio, vedere il file Leggimi dell'esempio.

Dopo avere esaminato il codice, usare il comando seguente per eseguire l'esempio:

python simple_thermostat.py

Viene visualizzato l'output seguente, che indica che il dispositivo invia dati di telemetria all'hub ed è ora pronto a ricevere comandi e aggiornamenti delle proprietà:

Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message

Lasciare l'esempio in esecuzione mentre si completano i passaggi successivi.

Usare Azure IoT Explorer per convalidare il codice

Dopo l'avvio dell'esempio client del dispositivo, usare lo strumento Azure IoT Explorer per verificarne il funzionamento.

  1. Aprire Azure IoT Explorer.

  2. Nella pagina Hub IoT, se non è già stata aggiunta una connessione all'hub IoT, selezionare + Aggiungi connessione. Immettere la stringa di connessione per l'hub IoT creato in precedenza e selezionare Salva.

  3. Nella pagina Plug and Play IoT Impostazioni selezionare + Aggiungi > cartella locale e selezionare la cartella modelli locale in cui sono stati salvati i file del modello.

  4. Nella pagina Hub IoT fare clic sul nome dell'hub che si vuole usare. Viene visualizzato un elenco dei dispositivi registrati nell'hub IoT.

  5. Fare clic sull'ID dispositivo del dispositivo creato in precedenza.

  6. Il menu a sinistra mostra i diversi tipi di informazioni disponibili per il dispositivo.

  7. Selezionare Componenti Plug and Play IoT per visualizzare le informazioni sul modello del dispositivo.

  8. È possibile visualizzare i diversi componenti del dispositivo. Componente predefinito ed eventuali componenti aggiuntivi. Selezionare un componente da usare.

  9. Selezionare la pagina Telemetria e quindi selezionare Avvia per visualizzare i dati di telemetria inviati dal dispositivo per questo componente.

  10. Selezionare la pagina Proprietà (solo lettura) per visualizzare le proprietà di sola lettura segnalate per questo componente.

  11. Selezionare la pagina Properties (writable) (Proprietà - accessibili in scrittura) per visualizzare le proprietà accessibili in scrittura che è possibile aggiornare per questo componente.

  12. Selezionare una proprietà in base al nome, immettere un nuovo valore e selezionare Update desired value (Aggiorna valore desiderato).

  13. Per visualizzare il nuovo valore, selezionare il pulsante Aggiorna.

  14. Selezionare la pagina Comandi per visualizzare tutti i comandi per questo componente.

  15. Selezionare il comando di cui si vuole testare l'impostazione del parametro, se presente. Selezionare Invia comando per chiamare il comando nel dispositivo. Nella finestra del prompt dei comandi in cui è in esecuzione il codice di esempio si vedrà che il dispositivo risponde al comando.

Pulire le risorse

Se sono state completate le guide introduttive e le esercitazioni, vedere Pulire le risorse.

Se si sviluppa per i dispositivi vincolati, è possibile usare Plug and Play IoT con:

Questo articolo include collegamenti e risorse per questi scenari vincolati.

Prerequisiti

Molti degli esempi seguenti richiedono un dispositivo hardware specifico e i prerequisiti sono diversi per ognuno degli esempi. Seguire il collegamento all'esempio pertinente per istruzioni dettagliate su prerequisiti, configurazione e compilazione.

Usare l'SDK per Embedded C

L'SDK per Embedded C offre una soluzione leggera per connettere i dispositivi vincolati ai servizi Azure IoT, inclusa l'uso delle convenzioni di Plug and Play IoT. I collegamenti seguenti includono esempi per i dispositivi basati su MCU e per scopi didattici e di debug.

Usare un dispositivo basato su MCU

Per un'esercitazione end-to-end completa sull'uso dell'SDK per Embedded C, il servizio Device Provisioning e Plug and Play IoT in un MCU, vedere Repurpose PIC-IoT Wx Development Board to Connessione to Azure through hub IoT Device Provisioning Service (Repurpose PIC-IoT Wx Development Board to Connessione to Azure through hub IoT Device Provisioning Service).

Esempi introduttivi

Il repository SDK per Embedded C contiene diversi esempi che illustrano come usare Plug and Play IoT:

Nota

Questi esempi vengono visualizzati in esecuzione in Windows e Linux per scopi didattici e di debug. In uno scenario di produzione, gli esempi sono destinati solo ai dispositivi vincolati.

Uso di Eclipse ThreadX

Eclipse ThreadX include un livello leggero che aggiunge connettività nativa ai servizi cloud Azure IoT. Questo livello offre un meccanismo semplice per connettere i dispositivi vincolati ad Azure IoT usando le funzionalità avanzate di Eclipse ThreadX. Per altre informazioni, vedere la panoramica di Eclipse ThreadX.

Toolchain

Gli esempi di Eclipse ThreadX vengono forniti con diversi tipi di combinazioni di IDE e toolchain, ad esempio:

Esempi

La tabella seguente elenca gli esempi che illustrano come iniziare a usare dispositivi diversi con Eclipse ThreadX e Plug and Play IoT:

Produttore Dispositivo Esempi
Microchip ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMake • IARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

Passaggi successivi

In questa esercitazione si è appreso come connettere un dispositivo Plug and Play IoT a un hub IoT. Per altre informazioni su come creare una soluzione che interagisce con i dispositivi Plug and Play IoT, vedere: