Tutoriel : Connecter un exemple d’application pour appareil IoT Plug-and-Play s’exécutant sur Linux ou Windows à IoT Hub

Ce tutoriel montre comment créer un exemple d’application d’appareil IoT Plug-and-Play, comment le connecter à votre hub IoT, et comment utiliser l’outil Explorateur Azure IoT pour afficher la télémétrie qu’il envoie. L’exemple d’application est écrit en C et est inclus dans le Azure IoT device SDK pour C. Un générateur de solutions peut utiliser l’outil Explorateur Azure IoT pour comprendre les fonctionnalités d’un appareil IoT Plug-and-Play sans avoir à afficher de code d’appareil.

Parcourir le code

Prérequis

Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.

Vous pouvez exécuter ce tutoriel sur Linux ou Windows. Dans ce tutoriel, les commandes de l’interpréteur de commandes suivent la convention Linux des séparateurs de chemin « / ». Si vous suivez ce guide sur Windows, veillez à remplacer les séparateurs par « \ ».

Les prérequis diffèrent selon le système d’exploitation :

Linux

Ce tutoriel suppose que vous utilisez Ubuntu Linux. Les étapes de ce didacticiel ont été testées à l’aide d’Ubuntu 18.04.

Pour suivre ce tutoriel sur Linux, installez les logiciels suivants dans votre environnement Linux local :

Installez GCC, Git, cmake et toutes les dépendances nécessaires à l’aide de la commande apt-get :

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

Vérifiez que la version de cmake est supérieure à 2.8.12 et que la version de GCC est supérieure à 4.4.7.

cmake --version
gcc --version

Windows

Pour effectuer ce tutoriel sur Windows, vous devez installer les logiciels suivants sur votre environnement Windows local :

Téléchargement du code

Dans ce tutoriel, vous préparez un environnement de développement qui vous permet de cloner et générer le kit SDK Azure IoT Hub Device C.

Ouvrez une invite de commandes dans le répertoire de votre choix. Exécutez la commande suivante pour cloner le dépôt GitHub Azure IoT C SDKs and Libraries à cet emplacement :

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

Attendez-vous à ce que cette opération prenne plusieurs minutes.

Générer le code

Vous pouvez générer et exécuter le code à l’aide de Visual Studio ou de cmake sur la ligne de commande.

Utiliser Visual Studio

  1. Ouvrez le dossier racine du dépôt cloné. Après quelques secondes, la prise en charge de CMake dans Visual Studio crée tout ce dont vous avez besoin pour exécuter et déboguer le projet.

  2. Une fois que Visual Studio est prêt, dans l’Explorateur de solutions, accédez à l’exemple iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. Cliquez avec le bouton droit sur le fichier pnp_simple_thermostat.c, puis sélectionnez Ajouter une configuration Debug. Sélectionnez Par défaut.

  4. Visual Studio ouvre le fichier launch.vs.json. Modifiez ce fichier comme indiqué dans l’extrait suivant pour définir les variables d’environnement nécessaires. Vous avez noté l’ID d’étendue et la clé primaire d’inscription lorsque vous avez terminé Configurer votre environnement pour les guides de démarrages rapides et tutoriels IoT Plug-and-Play :

    {
      "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. Cliquez avec le bouton droit sur le fichier pnp_simple_thermostat.c, puis sélectionnez Définir comme élément de démarrage.

  6. Pour effectuer le suivi de l’exécution du code dans Visual Studio, ajoutez un point d’arrêt à la fonction main dans le fichier pnp_simple_thermostat.c.

  7. Vous pouvez à présent exécuter et déboguer l’exemple à partir du menu Déboguer.

L’appareil, désormais prêt à recevoir des commandes et des mises à jour de propriétés, a commencé à envoyer des données de télémétrie au hub. Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.

Utiliser cmake pour générer le code

Vous utilisez l’utilitaire de ligne de commande cmake pour générer le code :

  1. Créez un sous-répertoire cmake dans le dossier racine du SDK d’appareil, puis accédez à ce dossier :

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. Exécutez les commandes suivantes pour générer le SDK et les exemples :

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

Exécuter l’exemple d’appareil

Dans Configurer votre environnement, vous avez créé quatre variables d’environnement pour configurer l’exemple afin d’utiliser le service Device Provisioning Service (DPS) pour vous connecter à votre hub IoT :

  • IOTHUB_DEVICE_SECURITY_TYPE avec la valeur DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE avec l’étendue ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID avec la valeur my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY avec la clé primaire d’inscription.
  • IOTHUB_DEVICE_DPS_ENDPOINT avec la valeur global.azure-devices-provisioning.net.

Pour en savoir plus sur l’exemple de configuration, consultez l’exemple de fichier Lisez-moi.

Pour exécuter l’exemple d’application dans le SDK qui simule un appareil IoT Plug-and-Play envoyant des données de télémétrie à votre hub IoT :

Dans le dossier cmake, accédez au dossier qui contient le fichier exécutable et exécutez-le :

# 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

Conseil

Pour effectuer le suivi de l’exécution du code dans Visual Studio sur Windows, ajoutez un point d’arrêt à la fonction main dans le fichier main.

L’appareil, désormais prêt à recevoir des commandes et des mises à jour de propriétés, a commencé à envoyer des données de télémétrie au hub. Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.

Utiliser l’Explorateur Azure IoT pour valider le code

Une fois l’exemple de client d’appareil démarré, utilisez l’outil Explorateur Azure IoT pour vérifier qu’il fonctionne.

  1. Ouvrez l’explorateur Azure IoT.

  2. Dans la page Hubs IoT, si vous n’avez pas encore ajouté de connexion à votre hub IoT, sélectionnez + Ajouter une connexion. Entrez la chaîne de connexion pour le hub IoT que vous avez créé précédemment et sélectionnez Enregistrer.

  3. Dans la page Paramètres IoT Plug-and-Play, sélectionnez + Ajouter > Dossier local et sélectionnez le dossier models local dans lequel vous avez enregistré vos fichiers de modèle.

  4. Dans la page Hubs IoT, cliquez sur le nom du hub que vous souhaitez utiliser. Vous voyez la liste des appareils enregistrés sur le hub IoT.

  5. Cliquez sur l’ID d’appareil de l’appareil que vous avez créé précédemment.

  6. Le menu de gauche affiche les différents types d’informations disponibles pour l’appareil.

  7. Sélectionnez Composants IoT Plug-and-Play pour afficher les informations de modèle de votre appareil.

  8. Vous pouvez afficher les différents composants de l’appareil, Le composant par défaut et tous les composants supplémentaires. Sélectionnez un composant à utiliser.

  9. Sélectionnez la page Télémétrie, puis sélectionnez Démarrer pour afficher les données de télémétrie envoyées par l’appareil pour ce composant.

  10. Sélectionnez la page Propriétés (lecture seule) pour afficher les propriétés en lecture seule signalées pour ce composant.

  11. Sélectionnez la page Propriétés (accessibles en écriture) pour afficher les propriétés accessibles en écriture que vous pouvez mettre à jour pour ce composant.

  12. Sélectionnez une propriété par son nom, entrez une nouvelle valeur, puis sélectionnez Mettre à jour la valeur souhaitée.

  13. Pour afficher la nouvelle valeur, sélectionnez le bouton Actualiser.

  14. Sélectionnez la page Commandes pour afficher toutes les commandes pour ce composant.

  15. Sélectionnez la commande que vous souhaitez tester, le cas échéant. Sélectionnez Envoyer la commande pour appeler la commande sur l’appareil. Vous pouvez voir que votre appareil répond à la commande dans la fenêtre d’invite de commandes où l’exemple de code est en cours d’exécution.

Vérifier le code

Cet exemple implémente un appareil à thermostat IoT Plug-and-Play simple. Le modèle de thermostat n’utilise pas IoT Plug-and-Play composants. Le fichier de modèle DTDL pour l’appareil à thermostat définit la télémétrie, les propriétés et les commandes implémentées par l’appareil.

Le code de l’appareil utilise la fonction standard pour se connecter à votre hub IoT :

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

L’appareil envoie l’ID du modèle DTDL qu’il implémente dans la demande de connexion. Un appareil qui envoie un ID de modèle est un appareil IoT Plug-and-Play :

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

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

Le code qui met à jour les propriétés, gère les commandes et envoie les données de télémétrie est identique au code d’un appareil qui n’utilise pas les conventions IoT Plug-and-Play.

Le code utilise la bibliothèque Parson pour analyser les objets JSON dans les charges utiles envoyées à partir de votre hub IoT :

// JSON parser
#include "parson.h"

Nettoyer les ressources

Si vous avez terminé les guides de démarrage rapide et les tutoriels, consultez Nettoyer les ressources.

Ce tutoriel montre comment créer un exemple d’application d’appareil IoT Plug-and-Play, comment le connecter à votre hub IoT, et comment utiliser l’outil Explorateur Azure IoT pour afficher la télémétrie qu’il envoie. L’exemple d’application est écrit en C# et est inclus dans le SDK Azure IoT pour C#. Un créateur de solutions peut utiliser l’outil Explorateur Azure IoT pour comprendre les fonctionnalités d’un appareil IoT Plug-and-Play sans avoir besoin d’examiner du code d’appareil.

Parcourir le code

Prérequis

Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.

Vous pouvez exécuter ce tutoriel sur Linux ou Windows. Dans ce tutoriel, les commandes de l’interpréteur de commandes suivent la convention Linux des séparateurs de chemin « / ». Si vous suivez ce guide sur Windows, veillez à remplacer les séparateurs par « \ ».

Téléchargement du code

Dans ce tutoriel, vous préparez un environnement de développement pour cloner et générer le référentiel SDK Azure IoT pour C#.

Ouvrez une invite de commandes dans un dossier de votre choix. Exécutez la commande suivante pour cloner le référentiel GitHub SDK Microsoft Azure IoT pour C# (.NET) à cet emplacement :

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

Générer le code

Vous pouvez maintenant construire l’échantillon et l'exécuter. Exécutez les commandes suivantes pour générer l’échantillon :

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

Exécuter l’exemple d’appareil

Pour exécuter l’exemple, exécutez la commande suivante :

dotnet run

L’appareil, désormais prêt à recevoir des commandes et des mises à jour de propriétés, a commencé à envoyer des données de télémétrie au hub. Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.

Utiliser l’Explorateur Azure IoT pour valider le code

Une fois l’exemple de client d’appareil démarré, utilisez l’outil Explorateur Azure IoT pour vérifier qu’il fonctionne.

  1. Ouvrez l’explorateur Azure IoT.

  2. Dans la page Hubs IoT, si vous n’avez pas encore ajouté de connexion à votre hub IoT, sélectionnez + Ajouter une connexion. Entrez la chaîne de connexion pour le hub IoT que vous avez créé précédemment et sélectionnez Enregistrer.

  3. Dans la page Paramètres IoT Plug-and-Play, sélectionnez + Ajouter > Dossier local et sélectionnez le dossier models local dans lequel vous avez enregistré vos fichiers de modèle.

  4. Dans la page Hubs IoT, cliquez sur le nom du hub que vous souhaitez utiliser. Vous voyez la liste des appareils enregistrés sur le hub IoT.

  5. Cliquez sur l’ID d’appareil de l’appareil que vous avez créé précédemment.

  6. Le menu de gauche affiche les différents types d’informations disponibles pour l’appareil.

  7. Sélectionnez Composants IoT Plug-and-Play pour afficher les informations de modèle de votre appareil.

  8. Vous pouvez afficher les différents composants de l’appareil, Le composant par défaut et tous les composants supplémentaires. Sélectionnez un composant à utiliser.

  9. Sélectionnez la page Télémétrie, puis sélectionnez Démarrer pour afficher les données de télémétrie envoyées par l’appareil pour ce composant.

  10. Sélectionnez la page Propriétés (lecture seule) pour afficher les propriétés en lecture seule signalées pour ce composant.

  11. Sélectionnez la page Propriétés (accessibles en écriture) pour afficher les propriétés accessibles en écriture que vous pouvez mettre à jour pour ce composant.

  12. Sélectionnez une propriété par son nom, entrez une nouvelle valeur, puis sélectionnez Mettre à jour la valeur souhaitée.

  13. Pour afficher la nouvelle valeur, sélectionnez le bouton Actualiser.

  14. Sélectionnez la page Commandes pour afficher toutes les commandes pour ce composant.

  15. Sélectionnez la commande que vous souhaitez tester, le cas échéant. Sélectionnez Envoyer la commande pour appeler la commande sur l’appareil. Vous pouvez voir que votre appareil répond à la commande dans la fenêtre d’invite de commandes où l’exemple de code est en cours d’exécution.

Vérifier le code

Cet exemple implémente un appareil à thermostat IoT Plug-and-Play simple. Le modèle implémenté par cet exemple n’utilise pas de composants IoT Plug-and-Play. Le fichier de modèle DTDL (Digital Twins Definition Language) pour l’appareil à thermostat définit la télémétrie, les propriétés et les commandes implémentées par l’appareil.

Le code de l’appareil se connecte à votre hub IoT en utilisant la méthode CreateFromConnectionString standard. L’appareil envoie l’ID de modèle du modèle DTDL qu’il implémente dans la demande de connexion. Un appareil qui envoie un ID de modèle est un appareil IoT Plug-and-Play :

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 de modèle est stocké dans le code, comme indiqué dans l’extrait de code suivant :

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

Le code qui met à jour les propriétés, gère les commandes et envoie les données de télémétrie est identique au code d’un appareil qui n’utilise pas les conventions IoT Plug-and-Play.

L’exemple utilise une bibliothèque JSON pour analyser les objets JSON dans les charges utiles envoyées à partir de votre hub IoT :

using Newtonsoft.Json;

...

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

Nettoyer les ressources

Si vous avez terminé les guides de démarrage rapide et les tutoriels, consultez Nettoyer les ressources.

Ce tutoriel montre comment créer un exemple d’application d’appareil IoT Plug-and-Play, comment le connecter à votre hub IoT, et comment utiliser l’outil Explorateur Azure IoT pour afficher la télémétrie qu’il envoie. L’exemple d’application est écrit en Java et est inclus dans l’Azure IoT device SDK pour Java. Un créateur de solutions peut utiliser l’outil Explorateur Azure IoT pour comprendre les fonctionnalités d’un appareil IoT Plug-and-Play sans avoir besoin d’examiner du code d’appareil.

Parcourir le code

Prérequis

Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.

Vous pouvez exécuter ce tutoriel sur Linux ou Windows. Dans ce tutoriel, les commandes de l’interpréteur de commandes suivent la convention Linux des séparateurs de chemin « / ». Si vous suivez ce guide sur Windows, veillez à remplacer les séparateurs par « \ ».

Pour suivre ce tutoriel, installez le logiciel suivant dans votre environnement local :

Téléchargement du code

Dans ce tutoriel, vous préparez un environnement de développement que vous pouvez utiliser pour cloner et générer le SDK Azure IoT Hub Device Java.

Ouvrez une invite de commandes dans le répertoire de votre choix. Exécutez la commande suivante pour cloner le dépôt GitHub de kits de développement logiciel (SDK) et de bibliothèques Java Azure IoT dans cet emplacement :

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

Générer le code

Accédez au dossier racine de l’exemple de thermostat dans le référentiel du SDK Java cloné et générez-le :

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

Exécuter l’exemple d’appareil

Dans Configurer votre environnement, vous avez créé quatre variables d’environnement pour configurer l’exemple afin d’utiliser le service Device Provisioning Service (DPS) pour vous connecter à votre hub IoT :

  • IOTHUB_DEVICE_SECURITY_TYPE avec la valeur DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE avec l’étendue ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID avec la valeur my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY avec la clé primaire d’inscription.
  • IOTHUB_DEVICE_DPS_ENDPOINT avec la valeur global.azure-devices-provisioning.net.

Pour en savoir plus sur l’exemple de configuration, consultez l’exemple de fichier Lisez-moi.

À partir du dossier /device/iot-device-samples/pnp-device-sample/thermostat-device-sample , exécutez l’application :

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

L’appareil, désormais prêt à recevoir des commandes et des mises à jour de propriétés, a commencé à envoyer des données de télémétrie au hub. Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.

Utiliser l’Explorateur Azure IoT pour valider le code

Une fois l’exemple de client d’appareil démarré, utilisez l’outil Explorateur Azure IoT pour vérifier qu’il fonctionne.

  1. Ouvrez l’explorateur Azure IoT.

  2. Dans la page Hubs IoT, si vous n’avez pas encore ajouté de connexion à votre hub IoT, sélectionnez + Ajouter une connexion. Entrez la chaîne de connexion pour le hub IoT que vous avez créé précédemment et sélectionnez Enregistrer.

  3. Dans la page Paramètres IoT Plug-and-Play, sélectionnez + Ajouter > Dossier local et sélectionnez le dossier models local dans lequel vous avez enregistré vos fichiers de modèle.

  4. Dans la page Hubs IoT, cliquez sur le nom du hub que vous souhaitez utiliser. Vous voyez la liste des appareils enregistrés sur le hub IoT.

  5. Cliquez sur l’ID d’appareil de l’appareil que vous avez créé précédemment.

  6. Le menu de gauche affiche les différents types d’informations disponibles pour l’appareil.

  7. Sélectionnez Composants IoT Plug-and-Play pour afficher les informations de modèle de votre appareil.

  8. Vous pouvez afficher les différents composants de l’appareil, Le composant par défaut et tous les composants supplémentaires. Sélectionnez un composant à utiliser.

  9. Sélectionnez la page Télémétrie, puis sélectionnez Démarrer pour afficher les données de télémétrie envoyées par l’appareil pour ce composant.

  10. Sélectionnez la page Propriétés (lecture seule) pour afficher les propriétés en lecture seule signalées pour ce composant.

  11. Sélectionnez la page Propriétés (accessibles en écriture) pour afficher les propriétés accessibles en écriture que vous pouvez mettre à jour pour ce composant.

  12. Sélectionnez une propriété par son nom, entrez une nouvelle valeur, puis sélectionnez Mettre à jour la valeur souhaitée.

  13. Pour afficher la nouvelle valeur, sélectionnez le bouton Actualiser.

  14. Sélectionnez la page Commandes pour afficher toutes les commandes pour ce composant.

  15. Sélectionnez la commande que vous souhaitez tester, le cas échéant. Sélectionnez Envoyer la commande pour appeler la commande sur l’appareil. Vous pouvez voir que votre appareil répond à la commande dans la fenêtre d’invite de commandes où l’exemple de code est en cours d’exécution.

Vérifier le code

Cet exemple implémente un appareil à thermostat IoT Plug-and-Play simple. Le modèle implémenté par cet exemple n’utilise pas de composants IoT Plug-and-Play. Le fichier de modèle DTDL pour le thermostat définit la télémétrie, les propriétés et les commandes que l’appareil implémente.

Le code d’appareil utilise la classe DeviceClient standard pour se connecter à votre hub IoT. L’appareil envoie l’ID de modèle du modèle DTDL qu’il implémente dans la demande de connexion. Un appareil qui envoie un ID de modèle est un appareil IoT Plug-and-Play :

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 de modèle est stocké dans le code, comme indiqué dans l’extrait de code suivant :

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

Le code qui met à jour les propriétés, gère les commandes et envoie les données de télémétrie est identique au code d’un appareil qui n’utilise pas les conventions IoT Plug-and-Play.

L’exemple utilise une bibliothèque JSON pour analyser les objets JSON dans les charges utiles envoyées à partir de votre hub IoT :

import com.google.gson.Gson;

...

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

Nettoyer les ressources

Si vous avez terminé les guides de démarrage rapide et les tutoriels, consultez Nettoyer les ressources.

Ce tutoriel montre comment créer un exemple d’application d’appareil IoT Plug-and-Play, comment le connecter à votre hub IoT, et comment utiliser l’outil Explorateur Azure IoT pour afficher la télémétrie qu’il envoie. L’exemple d’application est écrit en Node.js et est inclus dans le kit Azure IoT device SDK pour Node.js. Un créateur de solutions peut utiliser l’outil Explorateur Azure IoT pour comprendre les fonctionnalités d’un appareil IoT Plug-and-Play sans avoir besoin d’examiner du code d’appareil.

Parcourir le code

Prérequis

Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.

Vous pouvez exécuter ce tutoriel sur Linux ou Windows. Dans ce tutoriel, les commandes de l’interpréteur de commandes suivent la convention Linux des séparateurs de chemin « / ». Si vous suivez ce guide sur Windows, veillez à remplacer les séparateurs par « \ ».

Pour suivre ce tutoriel, vous avez besoin de Node.js sur votre machine de développement. Vous pouvez télécharger la dernière version recommandée pour plusieurs plateformes à partir de nodejs.org.

Vous pouvez vérifier la version actuelle de Node.js sur votre machine de développement à l’aide de la commande suivante :

node --version

Téléchargement du code

Dans ce tutoriel, vous préparez un environnement de développement que vous pouvez utiliser pour cloner et générer le SDK Azure IoT Hub Device pour Node.js.

Ouvrez une invite de commandes dans le répertoire de votre choix. Exécutez la commande suivante pour cloner le dépôt GitHub SDK Microsoft Azure IoT pour for Node.js à cet emplacement :

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

Installer les bibliothèques nécessaires

Vous utilisez le kit de développement logiciel (SDK) de l’appareil pour créer l’exemple de code inclus. L’application que vous créez simule un appareil qui se connecte à un hub IoT. L’application envoie les données de télémétrie et les propriétés et reçoit des commandes.

  1. Dans une fenêtre de terminal locale, accédez au dossier de votre dépôt cloné, puis au dossier /azure-iot-sdk-node/device/samples/javascript. Exécutez ensuite la commande suivante pour installer les bibliothèques requises :

    npm install
    

Exécuter l’exemple d’appareil

Cet exemple implémente un appareil à thermostat IoT Plug-and-Play simple. Le modèle implémenté par cet exemple n’utilise pas de composants IoT Plug-and-Play. Le fichier de modèle DTDL pour l’appareil à thermostat définit la télémétrie, les propriétés et les commandes implémentées par l’appareil.

Ouvrez le fichier pnp_simple_thermostat.js. Dans ce fichier, vous pouvez voir comment :

  1. Importer les interfaces nécessaires.
  2. Écrire un gestionnaire de mise à jour de propriété et un gestionnaire de commandes.
  3. Gérer les correctifs de propriété souhaités et envoyer les données de télémétrie.
  4. (Facultatif) Provisionner votre appareil à l’aide du service de provisionnement des appareils (DPS) Azure.

Dans la fonction principale, vous pouvez voir comment tout cela se résume :

  1. Créez l’appareil à partir de votre chaîne de connexion ou provisionnez-le à l’aide de DPS.
  2. Utilisez l’option modelID pour spécifier le modèle d’appareil IoT Plug-and-Play.
  3. Activez le gestionnaire de commandes.
  4. Envoyez les données de télémétrie de l’appareil à votre hub.
  5. Récupérez les jumeaux d’appareil et mettez à jour les propriétés signalées.
  6. Activez le gestionnaire de mise à jour de propriété souhaité.

Dans Configurer votre environnement, vous avez créé quatre variables d’environnement pour configurer l’exemple afin d’utiliser le service Device Provisioning Service (DPS) pour vous connecter à votre hub IoT :

  • IOTHUB_DEVICE_SECURITY_TYPE avec la valeur DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE avec l’étendue ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID avec la valeur my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY avec la clé primaire d’inscription.
  • IOTHUB_DEVICE_DPS_ENDPOINT avec la valeur global.azure-devices-provisioning.net.

Pour en savoir plus sur l’exemple de configuration, consultez l’exemple de fichier Lisez-moi.

Exécutez l’exemple d’application pour simuler un appareil IoT Plug-and-Play qui envoie des données de télémétrie à votre hub IoT. Pour exécuter l’exemple d’application, utilisez la commande suivante :

node pnp_simple_thermostat.js

Vous voyez la sortie suivante, qui indique que l’appareil a commencé à envoyer des données de télémétrie au hub et est maintenant prêt à recevoir des commandes et des mises à jour de propriétés.

Messages de confirmation de l’appareil

Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.

Utiliser l’Explorateur Azure IoT pour valider le code

Une fois l’exemple de client d’appareil démarré, utilisez l’outil Explorateur Azure IoT pour vérifier qu’il fonctionne.

  1. Ouvrez l’explorateur Azure IoT.

  2. Dans la page Hubs IoT, si vous n’avez pas encore ajouté de connexion à votre hub IoT, sélectionnez + Ajouter une connexion. Entrez la chaîne de connexion pour le hub IoT que vous avez créé précédemment et sélectionnez Enregistrer.

  3. Dans la page Paramètres IoT Plug-and-Play, sélectionnez + Ajouter > Dossier local et sélectionnez le dossier models local dans lequel vous avez enregistré vos fichiers de modèle.

  4. Dans la page Hubs IoT, cliquez sur le nom du hub que vous souhaitez utiliser. Vous voyez la liste des appareils enregistrés sur le hub IoT.

  5. Cliquez sur l’ID d’appareil de l’appareil que vous avez créé précédemment.

  6. Le menu de gauche affiche les différents types d’informations disponibles pour l’appareil.

  7. Sélectionnez Composants IoT Plug-and-Play pour afficher les informations de modèle de votre appareil.

  8. Vous pouvez afficher les différents composants de l’appareil, Le composant par défaut et tous les composants supplémentaires. Sélectionnez un composant à utiliser.

  9. Sélectionnez la page Télémétrie, puis sélectionnez Démarrer pour afficher les données de télémétrie envoyées par l’appareil pour ce composant.

  10. Sélectionnez la page Propriétés (lecture seule) pour afficher les propriétés en lecture seule signalées pour ce composant.

  11. Sélectionnez la page Propriétés (accessibles en écriture) pour afficher les propriétés accessibles en écriture que vous pouvez mettre à jour pour ce composant.

  12. Sélectionnez une propriété par son nom, entrez une nouvelle valeur, puis sélectionnez Mettre à jour la valeur souhaitée.

  13. Pour afficher la nouvelle valeur, sélectionnez le bouton Actualiser.

  14. Sélectionnez la page Commandes pour afficher toutes les commandes pour ce composant.

  15. Sélectionnez la commande que vous souhaitez tester, le cas échéant. Sélectionnez Envoyer la commande pour appeler la commande sur l’appareil. Vous pouvez voir que votre appareil répond à la commande dans la fenêtre d’invite de commandes où l’exemple de code est en cours d’exécution.

Nettoyer les ressources

Si vous avez terminé les guides de démarrage rapide et les tutoriels, consultez Nettoyer les ressources.

Ce tutoriel montre comment créer un exemple d’application d’appareil IoT Plug-and-Play, comment le connecter à votre hub IoT, et comment utiliser l’outil Explorateur Azure IoT pour afficher la télémétrie qu’il envoie. L’exemple d’application est écrit pour Python et inclus dans le Kit de développement logiciel (SDK) d’appareil Azure IoT Hub pour Python. Un créateur de solutions peut utiliser l’outil Explorateur Azure IoT pour comprendre les fonctionnalités d’un appareil IoT Plug-and-Play sans avoir besoin d’examiner le code d’appareil.

Parcourir le code

Prérequis

Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.

Pour suivre ce tutoriel, vous avez besoin de l’installation de Python sur votre machine de développement. Consultez le Kit de développement logiciel (SDK) Python Azure IoT pour connaître les exigences actuelles en matière de version de Python. Vous pouvez vérifier votre version de Python à l’aide de la commande suivante :

python --version

Vous pouvez télécharger la dernière version recommandée pour plusieurs plateformes à partir de python.org.

Dans votre environnement Python local, installez le package comme suit :

pip install azure-iot-device

Clonez le référentiel IoT du Kit de développement logiciel (SDK) Python :

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

Exécuter l’exemple d’appareil

Le dossier azure-iot-sdk-python/samples/pnp contient l’exemple de code pour l’appareil IoT Plug-and-Play. Ce tutoriel utilise le fichier simple_thermostat.py. Cet exemple de code implémente un appareil compatible IoT Plug-and-Play et utilise la bibliothèque de client d’appareil Azure IoT Python.

Ouvrez le fichier simple_thermostat.py dans un éditeur de texte. Notez comment il :

  1. Définit un identificateur de modèle de jumeau d’appareil unique (DTMI) qui représente de façon unique le Thermostat. Un DTMI doit être connus de l’utilisateur et varie en fonction du scénario d’implémentation de l’appareil. Pour l’exemple actuel, le modèle représente un thermostat possédant une télémétrie, des propriétés et des commandes associées à la surveillance de la température.

  2. Dispose de fonctions permettant de définir des implémentations de gestionnaire de commandes. Vous écrivez ces gestionnaires pour définir la manière dont l’appareil répond aux demandes de commande.

  3. Dispose d’une fonction pour définir une réponse à la commande. Vous créez des fonctions de réponse à la commande pour renvoyer une réponse à votre hub IoT.

  4. Définit une fonction d’écouteur de clavier de saisie pour vous permettre de quitter l’application.

  5. Dispose d’une fonction main. La fonction main :

    1. Utilise le Kit de développement logiciel (SDK) d’appareil pour créer un client d’appareil et se connecter à votre hub IoT.

    2. Met à jour les propriétés. Le modèle thermostat définit targetTemperature et maxTempSinceLastReboot comme les deux propriétés du thermostat. Les propriétés sont mises à jour à l’aide de la méthode patch_twin_reported_properties définie sur le device_client.

    3. Commence à écouter les demandes de commande à l’aide de la fonction execute_command_listener. La fonction configure un « écouteur » pour écouter les commandes provenant du service. Quand vous configurez l’écouteur, vous fournissez un method_name, un user_command_handler et un create_user_response_handler.

      • La fonction user_command_handler définit ce que l’appareil doit faire quand il reçoit une commande.
      • La fonction create_user_response_handler crée une réponse à envoyer à votre hub IoT quand une commande s’exécute correctement. Vous pouvez afficher cette réponse dans le portail.
    4. Commence à envoyer la télémétrie. La valeur pnp_send_telemetry est définie dans le fichier pnp_methods.py. L’exemple de code utilise une boucle pour appeler cette fonction toutes les huit secondes.

    5. Désactive l’ensemble des écouteurs et des tâches, puis quitte la boucle quand vous appuyez sur Q ou q.

Dans Configurer votre environnement, vous avez créé quatre variables d’environnement pour configurer l’exemple afin d’utiliser le service Device Provisioning Service (DPS) pour vous connecter à votre hub IoT :

  • IOTHUB_DEVICE_SECURITY_TYPE avec la valeur DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE avec l’étendue ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID avec la valeur my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY avec la clé primaire d’inscription.
  • IOTHUB_DEVICE_DPS_ENDPOINT avec la valeur global.azure-devices-provisioning.net.

Pour en savoir plus sur l’exemple de configuration, consultez l’exemple de fichier Lisez-moi.

Maintenant que vous avez vu le code, utilisez la commande suivante pour exécuter l’exemple :

python simple_thermostat.py

Vous voyez la sortie suivante indiquant que l’appareil a commencé à envoyer des données de télémétrie au hub et est prêt à recevoir des commandes et des mises à jour de propriétés :

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

Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.

Utiliser l’Explorateur Azure IoT pour valider le code

Une fois l’exemple de client d’appareil démarré, utilisez l’outil Explorateur Azure IoT pour vérifier qu’il fonctionne.

  1. Ouvrez l’explorateur Azure IoT.

  2. Dans la page Hubs IoT, si vous n’avez pas encore ajouté de connexion à votre hub IoT, sélectionnez + Ajouter une connexion. Entrez la chaîne de connexion pour le hub IoT que vous avez créé précédemment et sélectionnez Enregistrer.

  3. Dans la page Paramètres IoT Plug-and-Play, sélectionnez + Ajouter > Dossier local et sélectionnez le dossier models local dans lequel vous avez enregistré vos fichiers de modèle.

  4. Dans la page Hubs IoT, cliquez sur le nom du hub que vous souhaitez utiliser. Vous voyez la liste des appareils enregistrés sur le hub IoT.

  5. Cliquez sur l’ID d’appareil de l’appareil que vous avez créé précédemment.

  6. Le menu de gauche affiche les différents types d’informations disponibles pour l’appareil.

  7. Sélectionnez Composants IoT Plug-and-Play pour afficher les informations de modèle de votre appareil.

  8. Vous pouvez afficher les différents composants de l’appareil, Le composant par défaut et tous les composants supplémentaires. Sélectionnez un composant à utiliser.

  9. Sélectionnez la page Télémétrie, puis sélectionnez Démarrer pour afficher les données de télémétrie envoyées par l’appareil pour ce composant.

  10. Sélectionnez la page Propriétés (lecture seule) pour afficher les propriétés en lecture seule signalées pour ce composant.

  11. Sélectionnez la page Propriétés (accessibles en écriture) pour afficher les propriétés accessibles en écriture que vous pouvez mettre à jour pour ce composant.

  12. Sélectionnez une propriété par son nom, entrez une nouvelle valeur, puis sélectionnez Mettre à jour la valeur souhaitée.

  13. Pour afficher la nouvelle valeur, sélectionnez le bouton Actualiser.

  14. Sélectionnez la page Commandes pour afficher toutes les commandes pour ce composant.

  15. Sélectionnez la commande que vous souhaitez tester, le cas échéant. Sélectionnez Envoyer la commande pour appeler la commande sur l’appareil. Vous pouvez voir que votre appareil répond à la commande dans la fenêtre d’invite de commandes où l’exemple de code est en cours d’exécution.

Nettoyer les ressources

Si vous avez terminé les guides de démarrage rapide et les tutoriels, consultez Nettoyer les ressources.

Si vous développez pour des appareils avec contraintes, vous pouvez utiliser IoT Plug-and-Play avec :

Cet article contient des liens et des ressources pour ces scénarios limités.

Prérequis

La plupart des exemples ci-dessous nécessitent un appareil matériel spécifique et les prérequis sont différents pour chacun de ces exemples. Suivez le lien vers l’exemple approprié pour obtenir des informations détaillées sur les prérequis, la configuration et les instructions de génération.

Utiliser le kit de développement logiciel (SDK) pour Embedded C

Le kit de développement logiciel (SDK) pour Embedded C offre une solution légère pour connecter des appareils limités aux services Azure IoT, y compris à l’aide des conventions d’IoT Plug-and-Play. Les liens suivants incluent des exemples d’appareil basé sur une MCU, à titre éducatif et à des fins de débogage.

Utiliser un appareil basé sur une MCU

Pour obtenir un tutoriel complet de bout en bout sur l’utilisation du SDK pour Embedded C, le service Device Provisioning et IoT Plug-and-Play sur une MCU, consultez Reprogrammer PIC-IoT WX Development Board pour se connecter à Azure via le service IoT Hub Device Provisioning.

Exemple d’introduction

Le référentiel du kit de développement logiciel (SDK) pour Embedded C contient plusieurs exemples qui vous montrent comment utiliser IoT Plug-and-Play :

Notes

L’exécution de ces exemples est présentée sur Windows et Linux à des fins éducatives et de débogage. Dans un scénario de production, les exemples sont destinés aux appareils limités uniquement.

Utilisation d’Eclipse ThreadX

Eclipse ThreadX inclut une couche légère qui ajoute une connectivité native aux services cloud Azure IoT. Cette couche offre un mécanisme simple pour connecter des appareils limités à Azure IoT tout en utilisant les fonctionnalités avancées d’Eclipse ThreadX. Pour plus d’informations, consultez la vue d’ensemble Eclipse ThreadX.

Chaînes d’outils

Les exemples Eclipse ThreadX sont proposés avec différents types de combinaisons d’IDE et de chaîne d’outils, comme notamment :

Exemples

Le tableau suivant liste des exemples qui vous montrent comment démarrer sur différents appareils avec Eclipse ThreadX et IoT Plug-and-Play :

Fabricant Appareil Exemples
Microchip ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

Étapes suivantes

Dans ce tutoriel, vous avez appris à connecter un appareil IoT Plug-and-Play à un hub IoT. Pour en savoir plus sur la création d’une solution qui interagit avec vos appareils IoT Plug-and-Play, consultez :