Démarrage rapide : Contrôler un appareil connecté à un hub IoT

Dans ce guide de démarrage rapide, vous utilisez une méthode directe pour contrôler un appareil simulé connecté à votre IoT Hub. IoT Hub est un service Azure qui vous permet de gérer vos appareils IoT à partir du cloud, et d’ingérer de gros volumes de télémétrie d’appareils dans le cloud pour les stocker ou les traiter. Vous pouvez utiliser des méthodes directes pour modifier à distance le comportement d’appareils connectés à votre hub IoT.

Ce démarrage rapide utilise deux applications .NET prédéfinies :

  • Une application d’appareil simulé qui répond aux méthodes directes appelées à partir d’une application de service. Pour recevoir les appels de méthode directe, cette application se connecte à un point de terminaison spécifique à l’appareil sur votre IoT Hub.

  • Une application de service qui appelle les méthodes directes sur l’appareil simulé. Pour appeler une méthode directe sur un appareil, cette application se connecte à un point de terminaison côté service sur votre IoT Hub.

Prérequis

  • Compte Azure avec un abonnement actif. Créez-en un gratuitement.

  • Les deux exemples d’applications que vous exécutez dans ce guide de démarrage rapide sont écrits à l’aide de C#. Votre machine de développement doit disposer du Kit de développement logiciel (SDK) .NET 6.0 ou ultérieur.

    Vous pouvez télécharger le Kit SDK .NET Core pour plusieurs plateformes sur .NET.

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

    dotnet --version
    
  • Clonez ou téléchargez le SDK Azure IoT pour C# à partir de GitHub.

  • Assurez-vous que le port 8883 est ouvert dans votre pare-feu. L’exemple d’appareil de ce guide de démarrage rapide utilise le protocole MQTT, lequel communique sur le port 8883. Ce port peut être bloqué dans certains environnements réseau professionnels et scolaires. Pour plus d’informations sur les différentes façons de contourner ce problème, consultez Connexion à IoT Hub (MQTT).

Notes

Cet article utilise la version la plus récente de l’extension Azure IoT, appelée azure-iot. La version héritée est appelée azure-cli-iot-ext. Une seule version doit être installée à la fois. Vous pouvez utiliser la commande az extension list pour valider les extensions actuellement installées.

Utilisez az extension remove --name azure-cli-iot-ext pour supprimer la version héritée de l’extension.

Utilisez az extension add --name azure-iot pour ajouter la nouvelle version de l’extension.

Pour voir les extensions que vous avez installées, utilisez az extension list.

Dans cette section, vous utilisez Azure CLI pour créer un hub IoT et un groupe de ressources. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Un hub IoT agit en tant que hub de messages central pour la communication bidirectionnelle entre votre application IoT et les appareils.

Si vous disposez déjà d’un hub IoT dans votre abonnement Azure, vous pouvez ignorer cette section.

Pour créer un hub IoT et un groupe de ressources :

  1. Lancez votre application CLI. Pour utiliser les commandes Common Language Infrastructure (CLI) dans le reste de cet article, copiez la syntaxe de la commande, collez-la dans votre application CLI, modifiez les valeurs des variables et appuyez sur Enter.

    • Si vous utilisez Cloud Shell, sélectionnez le bouton Essayer dans les commandes CLI pour lancer Cloud Shell dans une fenêtre de navigateur partagée. Ou vous pouvez ouvrir Cloud Shell dans un onglet de navigateur distinct.
    • Si vous utilisez Azure CLI localement, démarrez votre application console CLI et connectez-vous à Azure CLI.
  2. Exécutez az extension add pour installer ou mettre à niveau l’extension azure-iot vers la version actuelle.

    az extension add --upgrade --name azure-iot
    
  3. Dans votre application CLI, exécutez la commande az group create pour créer un groupe de ressources. La commande suivante crée un groupe de ressources nommé MyResourceGroup à l’emplacement eastus :

    Notes

    Si vous le souhaitez, vous pouvez définir un autre emplacement. Pour voir les régions disponibles, exécutez az account list-locations. Ce démarrage rapide utilise eastus comme indiqué dans l’exemple de commande.

    az group create --name MyResourceGroup --location eastus
    
  4. Exécutez la commande az iot hub create pour créer un hub IoT. La création de votre hub IoT peut prendre plusieurs minutes.

    YourIotHubName. Remplacez cet espace réservé et les accolades qui l’entourent dans la commande suivante, en utilisant le nom que vous avez choisi pour votre hub IoT. Le nom du hub IoT doit être globalement unique dans Azure. Utilisez le nom de votre hub IoT dans le reste de ce guide de démarrage rapide là où vous voyez l’espace réservé.

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

Récupérer la chaîne de connexion de service

Vous avez également besoin de la chaîne de connexion de service de votre hub IoT pour activer l’application de service afin de vous connecter au hub et récupérer les messages. La chaîne de connexion de service s’applique à votre IoT Hub dans son ensemble et est différente de la chaîne de connexion d’appareil que vous avez récupérée dans la section précédente.

La commande suivante récupère la chaîne de connexion de service correspondant à votre hub IoT :

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

Notez la chaîne de connexion de service, qui ressemble à ce qui suit :

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

Vous utiliserez cette valeur plus loin dans ce démarrage rapide.

Simuler un appareil

L’application d’appareil simulé se connecte à un point de terminaison spécifique de l’appareil sur votre IoT Hub, envoie les données de télémétrie simulée et écoute les appels de méthode directe provenant de votre concentrateur. Dans ce démarrage rapide, l’appel de méthode directe à partir du concentrateur indique à l’appareil de modifier la fréquence à laquelle il envoie des données de télémétrie. L’appareil simulé renvoie un accusé de réception à votre hub après l’exécution de la méthode directe.

  1. Dans une fenêtre de terminal local, accédez au dossier racine de l’exemple de projet C#. Accédez ensuite au dossier iothub\device\samples\getting started\SimulatedDeviceWithCommand.

  2. Exécutez la commande suivante pour installer les packages requis pour l’application d’appareil simulé :

    dotnet restore
    
  3. Exécutez la commande suivante pour générer et exécuter l’application d’appareil simulé.

    {DeviceConnectionString} : remplacez cet espace réservé par la chaîne de connexion de l’appareil que vous avez précédemment notée.

    dotnet run -- -c "{DeviceConnectionString}"
    

    La capture d’écran suivante présente la sortie lorsque l’application d’appareil simulé envoie des données de télémétrie à votre IoT Hub :

    Exécuter l’appareil simulé

Appeler la méthode directe

L’application de service se connecte au point de terminaison côté service sur votre hub IoT. L’application effectue des appels de méthode directe à un appareil via votre IoT Hub et écoute les accusés de réception. Une application de service IoT Hub s’exécute généralement dans le cloud.

  1. Dans une autre fenêtre de terminal local, accédez au dossier racine de l’exemple de projet C#. Accédez ensuite au dossier iothub\service\samples\getting started\InvokeDeviceMethod.

  2. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques nécessaires à l’application de service :

    dotnet build
    
  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour générer et exécuter l’application de service.

    {ServiceConnectionString} : remplacez cet espace réservé par la chaîne de connexion de service IoT Hub que vous avez précédemment notée.

    {DeviceName} : remplacez cet espace réservé par le nom de l’appareil que vous avez inscrit.

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

    La capture d’écran suivante montre la sortie lorsque l’application effectue un appel de méthode directe sur l’appareil et reçoit un accusé de réception :

    Exécuter l’application de service

    Après avoir exécuté l’application de service, un message s’affiche dans la fenêtre de la console exécutant l’appareil simulé, et la fréquence à laquelle il envoie les messages change :

    Changement dans le client simulé

Ce démarrage rapide utilise deux applications Java :

  • Une application d’appareil simulé qui répond aux méthodes directes appelées à partir d’une application back-end.
  • Une application de service qui appelle la méthode directe sur l’appareil simulé.

Prérequis

  • Compte Azure avec un abonnement actif. Créez-en un gratuitement.

  • Java SE Development Kit 8. Dans Prise en charge à long terme de Java pour Azure et Azure Stack, sous Prise en charge à long terme, sélectionnez Java 8.

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

    java -version
    
  • Apache Maven 3.

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

    mvn --version
    
  • Clonez ou téléchargez les exemples Java Azure IoT à partir de GitHub.

  • Vérifiez que le port 8883 est ouvert dans votre pare-feu. L’exemple d’appareil de ce guide de démarrage rapide utilise le protocole MQTT, lequel communique sur le port 8883. Ce port peut être bloqué dans certains environnements réseau professionnels et scolaires. Pour plus d’informations sur les différentes façons de contourner ce problème, consultez Connexion à IoT Hub (MQTT).

Notes

Cet article utilise la version la plus récente de l’extension Azure IoT, appelée azure-iot. La version héritée est appelée azure-cli-iot-ext. Une seule version doit être installée à la fois. Vous pouvez utiliser la commande az extension list pour valider les extensions actuellement installées.

Utilisez az extension remove --name azure-cli-iot-ext pour supprimer la version héritée de l’extension.

Utilisez az extension add --name azure-iot pour ajouter la nouvelle version de l’extension.

Pour voir les extensions que vous avez installées, utilisez az extension list.

Créer un hub IoT

Dans cette section, vous utilisez Azure CLI pour créer un hub IoT et un groupe de ressources. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Un hub IoT agit en tant que hub de messages central pour la communication bidirectionnelle entre votre application IoT et les appareils.

Si vous disposez déjà d’un hub IoT dans votre abonnement Azure, vous pouvez ignorer cette section.

Pour créer un hub IoT et un groupe de ressources :

  1. Lancez votre application CLI. Pour utiliser les commandes Common Language Infrastructure (CLI) dans le reste de cet article, copiez la syntaxe de la commande, collez-la dans votre application CLI, modifiez les valeurs des variables et appuyez sur Enter.

    • Si vous utilisez Cloud Shell, sélectionnez le bouton Essayer dans les commandes CLI pour lancer Cloud Shell dans une fenêtre de navigateur partagée. Ou vous pouvez ouvrir Cloud Shell dans un onglet de navigateur distinct.
    • Si vous utilisez Azure CLI localement, démarrez votre application console CLI et connectez-vous à Azure CLI.
  2. Exécutez az extension add pour installer ou mettre à niveau l’extension azure-iot vers la version actuelle.

    az extension add --upgrade --name azure-iot
    
  3. Dans votre application CLI, exécutez la commande az group create pour créer un groupe de ressources. La commande suivante crée un groupe de ressources nommé MyResourceGroup à l’emplacement eastus :

    Notes

    Si vous le souhaitez, vous pouvez définir un autre emplacement. Pour voir les régions disponibles, exécutez az account list-locations. Ce démarrage rapide utilise eastus comme indiqué dans l’exemple de commande.

    az group create --name MyResourceGroup --location eastus
    
  4. Exécutez la commande az iot hub create pour créer un hub IoT. La création de votre hub IoT peut prendre plusieurs minutes.

    YourIotHubName. Remplacez cet espace réservé et les accolades qui l’entourent dans la commande suivante, en utilisant le nom que vous avez choisi pour votre hub IoT. Le nom du hub IoT doit être globalement unique dans Azure. Utilisez le nom de votre hub IoT dans le reste de ce guide de démarrage rapide là où vous voyez l’espace réservé.

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

Inscrire un appareil

Un appareil doit être inscrit dans votre hub IoT pour pouvoir se connecter. Dans cette section, vous utilisez Azure CLI pour créer une identité d’appareil.

Si vous disposez déjà d’un appareil inscrit dans votre hub IoT, vous pouvez ignorer cette section.

Pour créer une identité d’appareil :

  1. Exécutez la commande az iot hub device-identity create dans votre shell CLI. Cette commande crée l'identité de l'appareil.

    nom_de_votre_iothub. Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.

    myDevice. Vous pouvez utiliser ce nom pour l’ID d’appareil tout au long de cet article, ou fournissez un autre nom d’appareil.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Exécutez la commande 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}
    

    La chaîne de connexion en sortie est au format suivant :

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Enregistrez la chaîne de connexion en lieu sûr.

Notes

Maintenez votre application CLI ouverte. Vous l’utiliserez plus tard.

Récupérer la chaîne de connexion de service

Vous avez également besoin d’une chaîne de connexion de service pour activer l’application back-end afin de vous connecter à votre IoT Hub et récupérer les messages. La commande suivante récupère la chaîne de connexion de service correspondant à votre hub IoT :

YourIoTHubName : Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.

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

Notez la chaîne de connexion de service, qui ressemble à ce qui suit :

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

Vous utiliserez cette valeur plus loin dans ce démarrage rapide. La chaîne de connexion de service est différente de la chaîne de connexion d’appareil que vous avez notée à l’étape précédente.

Simuler un appareil

L’application d’appareil simulé se connecte à un point de terminaison spécifique de l’appareil sur votre IoT Hub, envoie les données de télémétrie simulée et écoute les appels de méthode directe provenant de votre concentrateur. Dans ce démarrage rapide, l’appel de méthode directe à partir du concentrateur indique à l’appareil de modifier la fréquence à laquelle il envoie des données de télémétrie. L’appareil simulé renvoie un accusé de réception à votre hub après l’exécution de la méthode directe.

  1. Dans une fenêtre de terminal local, accédez au dossier racine de l’exemple de projet Java. Ensuite, accédez au dossier iot-hub\Quickstarts\simulated-device-2.

  2. Ouvrez le fichier src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java dans l’éditeur de texte de votre choix.

    Remplacez la valeur de la variable connString par la chaîne de connexion d’appareil que vous avez notée précédemment. Enregistrez ensuite les changements apportés à SimulatedDevice.java.

  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques requises et générer l’application d’appareil simulé :

    mvn clean package
    
  4. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour démarrer l’application d’appareil simulé :

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

    La capture d’écran suivante présente la sortie lorsque l’application d’appareil simulé envoie des données de télémétrie à votre IoT Hub :

    Sortie des données de télémétrie envoyées par l’appareil à votre hub IoT

Appeler la méthode directe

L’application back-end se connecte au point de terminaison côté service sur votre IoT Hub. L’application effectue des appels de méthode directe à un appareil via votre IoT Hub et écoute les accusés de réception. Une application back-end de l’IoT Hub s’exécute généralement dans le cloud.

  1. Dans une autre fenêtre de terminal local, accédez au dossier racine de l’exemple de projet Java. Ensuite, accédez au dossier iot-hub\Quickstarts\back-end-application.

  2. Ouvrez le fichier src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java dans l’éditeur de texte de votre choix.

    Remplacez la valeur de la variable iotHubConnectionString par la chaîne de connexion de service que vous avez notée précédemment. Ensuite, enregistrez vos modifications dans BackEndApplication.java.

  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques requises et générer l’application back-end :

    mvn clean package
    
  4. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour exécuter l’application back-end :

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

    La capture d’écran suivante montre la sortie lorsque l’application effectue un appel de méthode directe sur l’appareil et reçoit un accusé de réception :

    Sortie quand l’application effectue un appel de méthode directe par le biais de votre hub IoT

    Après avoir exécuté l’application back-end, un message s’affiche dans la fenêtre de la console exécutant l’appareil simulé, et la fréquence à laquelle il envoie les messages change :

    Le message de la console reçu de l’appareil affiche la fréquence à laquelle il change

Ce démarrage rapide utilise deux applications Node.js :

  • Une application d’appareil simulé qui répond aux méthodes directes appelées à partir d’une application back-end. Pour recevoir les appels de méthode directe, cette application se connecte à un point de terminaison spécifique à l’appareil sur votre IoT Hub.
  • Une application back-end qui appelle les méthodes directes sur l’appareil simulé. Pour appeler une méthode directe sur un appareil, cette application se connecte à un point de terminaison spécifique à un service sur votre hub IoT.

Prérequis

  • Compte Azure avec un abonnement actif. Créez-en un gratuitement.

  • Node.js 12+.

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

    node --version
    
  • Clonez ou téléchargez les exemples Node.js Azure IoT à partir de GitHub.

  • Vérifiez que le port 8883 est ouvert dans votre pare-feu. L’exemple d’appareil de ce guide de démarrage rapide utilise le protocole MQTT, lequel communique sur le port 8883. Ce port peut être bloqué dans certains environnements réseau professionnels et scolaires. Pour plus d’informations sur les différentes façons de contourner ce problème, consultez Connexion à IoT Hub (MQTT).

Notes

Cet article utilise la version la plus récente de l’extension Azure IoT, appelée azure-iot. La version héritée est appelée azure-cli-iot-ext. Une seule version doit être installée à la fois. Vous pouvez utiliser la commande az extension list pour valider les extensions actuellement installées.

Utilisez az extension remove --name azure-cli-iot-ext pour supprimer la version héritée de l’extension.

Utilisez az extension add --name azure-iot pour ajouter la nouvelle version de l’extension.

Pour voir les extensions que vous avez installées, utilisez az extension list.

Créer un hub IoT

Dans cette section, vous utilisez Azure CLI pour créer un hub IoT et un groupe de ressources. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Un hub IoT agit en tant que hub de messages central pour la communication bidirectionnelle entre votre application IoT et les appareils.

Si vous disposez déjà d’un hub IoT dans votre abonnement Azure, vous pouvez ignorer cette section.

Pour créer un hub IoT et un groupe de ressources :

  1. Lancez votre application CLI. Pour utiliser les commandes Common Language Infrastructure (CLI) dans le reste de cet article, copiez la syntaxe de la commande, collez-la dans votre application CLI, modifiez les valeurs des variables et appuyez sur Enter.

    • Si vous utilisez Cloud Shell, sélectionnez le bouton Essayer dans les commandes CLI pour lancer Cloud Shell dans une fenêtre de navigateur partagée. Ou vous pouvez ouvrir Cloud Shell dans un onglet de navigateur distinct.
    • Si vous utilisez Azure CLI localement, démarrez votre application console CLI et connectez-vous à Azure CLI.
  2. Exécutez az extension add pour installer ou mettre à niveau l’extension azure-iot vers la version actuelle.

    az extension add --upgrade --name azure-iot
    
  3. Dans votre application CLI, exécutez la commande az group create pour créer un groupe de ressources. La commande suivante crée un groupe de ressources nommé MyResourceGroup à l’emplacement eastus :

    Notes

    Si vous le souhaitez, vous pouvez définir un autre emplacement. Pour voir les régions disponibles, exécutez az account list-locations. Ce démarrage rapide utilise eastus comme indiqué dans l’exemple de commande.

    az group create --name MyResourceGroup --location eastus
    
  4. Exécutez la commande az iot hub create pour créer un hub IoT. La création de votre hub IoT peut prendre plusieurs minutes.

    YourIotHubName. Remplacez cet espace réservé et les accolades qui l’entourent dans la commande suivante, en utilisant le nom que vous avez choisi pour votre hub IoT. Le nom du hub IoT doit être globalement unique dans Azure. Utilisez le nom de votre hub IoT dans le reste de ce guide de démarrage rapide là où vous voyez l’espace réservé.

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

Inscrire un appareil

Un appareil doit être inscrit dans votre hub IoT pour pouvoir se connecter. Dans cette section, vous utilisez Azure CLI pour créer une identité d’appareil.

Si vous disposez déjà d’un appareil inscrit dans votre hub IoT, vous pouvez ignorer cette section.

Pour créer une identité d’appareil :

  1. Exécutez la commande az iot hub device-identity create dans votre shell CLI. Cette commande crée l'identité de l'appareil.

    nom_de_votre_iothub. Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.

    myDevice. Vous pouvez utiliser ce nom pour l’ID d’appareil tout au long de cet article, ou fournissez un autre nom d’appareil.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Exécutez la commande 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}
    

    La chaîne de connexion en sortie est au format suivant :

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Enregistrez la chaîne de connexion en lieu sûr.

Notes

Maintenez votre application CLI ouverte. Vous l’utiliserez plus tard.

Récupérer la chaîne de connexion de service

Vous avez également besoin de la chaîne de connexion de service de votre hub IoT pour activer l’application back-end afin de vous connecter à votre hub IoT et récupérer les messages. La commande suivante récupère la chaîne de connexion de service correspondant à votre hub IoT :

YourIoTHubName : Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.

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

Notez la chaîne de connexion de service, qui ressemble à ce qui suit :

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

Vous utiliserez cette valeur plus loin dans ce démarrage rapide. La chaîne de connexion de service est différente de la chaîne de connexion d’appareil que vous avez notée à l’étape précédente.

Simuler un appareil

L’application d’appareil simulé se connecte à un point de terminaison spécifique de l’appareil sur votre IoT Hub, envoie les données de télémétrie simulée et écoute les appels de méthode directe provenant de votre concentrateur. Dans ce démarrage rapide, l’appel de méthode directe à partir du concentrateur indique à l’appareil de modifier la fréquence à laquelle il envoie des données de télémétrie. L’appareil simulé renvoie un accusé de réception à votre hub après l’exécution de la méthode directe.

  1. Dans une fenêtre de votre terminal local, accédez au dossier racine de l’exemple de projet Node.js. Ensuite, accédez au dossier iot-hub\Quickstarts\simulated-device-2.

  2. Utilisez un éditeur de texte pour ouvrir le fichier SimulatedDevice.js.

    Remplacez la valeur de la variable connectionString par la chaîne de connexion d’appareil que vous avez notée précédemment. Enregistrez ensuite les changements apportés à SimulatedDevice.js.

  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques requises et exécuter l’application d’appareil simulé :

    npm install
    node SimulatedDevice.js
    

    La capture d’écran suivante présente la sortie lorsque l’application d’appareil simulé envoie des données de télémétrie à votre IoT Hub :

    Exécuter l’appareil simulé

Appeler la méthode directe

L’application back-end se connecte au point de terminaison côté service sur votre hub IoT. L’application effectue des appels de méthode directe à un appareil via votre IoT Hub et écoute les accusés de réception. Une application back-end de l’IoT Hub s’exécute généralement dans le cloud.

  1. Dans une autre fenêtre de terminal local, accédez au dossier racine de l’exemple de projet Node.js. Ensuite, accédez au dossier iot-hub\Quickstarts\back-end-application.

  2. Utilisez un éditeur de texte pour ouvrir le fichier BackEndApplication.js.

    Remplacez la valeur de la variable connectionString par la chaîne de connexion de service que vous avez notée précédemment. Ensuite, enregistrez vos modifications dans BackEndApplication.js.

  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques requises et exécuter l’application back-end :

    npm install
    node BackEndApplication.js
    

    La capture d’écran suivante montre la sortie lorsque l’application effectue un appel de méthode directe sur l’appareil et reçoit un accusé de réception :

    Sortie lorsque l’application effectue un appel de méthode directe sur l’appareil

    Après avoir exécuté l’application back-end, un message s’affiche dans la fenêtre de la console exécutant l’appareil simulé, et la fréquence à laquelle il envoie les messages change :

    Sortie en cas de changement dans le client simulé

Ce démarrage rapide utilise deux applications Python :

  • Une application d’appareil simulé qui répond aux méthodes directes appelées à partir d’une application back-end.
  • Une application back-end qui appelle les méthodes directes sur l’appareil simulé.

Prérequis

  • Compte Azure avec un abonnement actif. Créez-en un gratuitement.

  • Python 3.7+. Pour les autres versions de Python prises en charge, consultez les fonctionnalités des appareils Azure IoT.

  • Clonez ou téléchargez les exemples Python Azure IoT à partir de GitHub.

  • Vérifiez que le port 8883 est ouvert dans votre pare-feu. L’exemple d’appareil de ce guide de démarrage rapide utilise le protocole MQTT, lequel communique sur le port 8883. Ce port peut être bloqué dans certains environnements réseau professionnels et scolaires. Pour plus d’informations sur les différentes façons de contourner ce problème, consultez Connexion à IoT Hub (MQTT).

Notes

Cet article utilise la version la plus récente de l’extension Azure IoT, appelée azure-iot. La version héritée est appelée azure-cli-iot-ext. Une seule version doit être installée à la fois. Vous pouvez utiliser la commande az extension list pour valider les extensions actuellement installées.

Utilisez az extension remove --name azure-cli-iot-ext pour supprimer la version héritée de l’extension.

Utilisez az extension add --name azure-iot pour ajouter la nouvelle version de l’extension.

Pour voir les extensions que vous avez installées, utilisez az extension list.

Créer un hub IoT

Dans cette section, vous utilisez Azure CLI pour créer un hub IoT et un groupe de ressources. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Un hub IoT agit en tant que hub de messages central pour la communication bidirectionnelle entre votre application IoT et les appareils.

Si vous disposez déjà d’un hub IoT dans votre abonnement Azure, vous pouvez ignorer cette section.

Pour créer un hub IoT et un groupe de ressources :

  1. Lancez votre application CLI. Pour utiliser les commandes Common Language Infrastructure (CLI) dans le reste de cet article, copiez la syntaxe de la commande, collez-la dans votre application CLI, modifiez les valeurs des variables et appuyez sur Enter.

    • Si vous utilisez Cloud Shell, sélectionnez le bouton Essayer dans les commandes CLI pour lancer Cloud Shell dans une fenêtre de navigateur partagée. Ou vous pouvez ouvrir Cloud Shell dans un onglet de navigateur distinct.
    • Si vous utilisez Azure CLI localement, démarrez votre application console CLI et connectez-vous à Azure CLI.
  2. Exécutez az extension add pour installer ou mettre à niveau l’extension azure-iot vers la version actuelle.

    az extension add --upgrade --name azure-iot
    
  3. Dans votre application CLI, exécutez la commande az group create pour créer un groupe de ressources. La commande suivante crée un groupe de ressources nommé MyResourceGroup à l’emplacement eastus :

    Notes

    Si vous le souhaitez, vous pouvez définir un autre emplacement. Pour voir les régions disponibles, exécutez az account list-locations. Ce démarrage rapide utilise eastus comme indiqué dans l’exemple de commande.

    az group create --name MyResourceGroup --location eastus
    
  4. Exécutez la commande az iot hub create pour créer un hub IoT. La création de votre hub IoT peut prendre plusieurs minutes.

    YourIotHubName. Remplacez cet espace réservé et les accolades qui l’entourent dans la commande suivante, en utilisant le nom que vous avez choisi pour votre hub IoT. Le nom du hub IoT doit être globalement unique dans Azure. Utilisez le nom de votre hub IoT dans le reste de ce guide de démarrage rapide là où vous voyez l’espace réservé.

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

Inscrire un appareil

Un appareil doit être inscrit dans votre hub IoT pour pouvoir se connecter. Dans cette section, vous utilisez Azure CLI pour créer une identité d’appareil.

Si vous disposez déjà d’un appareil inscrit dans votre hub IoT, vous pouvez ignorer cette section.

Pour créer une identité d’appareil :

  1. Exécutez la commande az iot hub device-identity create dans votre shell CLI. Cette commande crée l'identité de l'appareil.

    nom_de_votre_iothub. Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.

    myDevice. Vous pouvez utiliser ce nom pour l’ID d’appareil tout au long de cet article, ou fournissez un autre nom d’appareil.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Exécutez la commande 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}
    

    La chaîne de connexion en sortie est au format suivant :

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Enregistrez la chaîne de connexion en lieu sûr.

Notes

Maintenez votre application CLI ouverte. Vous l’utiliserez plus tard.

Récupérer la chaîne de connexion de service

Vous avez également besoin d’une chaîne de connexion de service pour activer l’application back-end afin de vous connecter à votre IoT Hub et récupérer les messages. La commande suivante récupère la chaîne de connexion de service correspondant à votre hub IoT :

YourIoTHubName : Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.

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

Notez la chaîne de connexion de service, qui ressemble à ce qui suit :

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

Vous utiliserez cette valeur plus loin dans ce démarrage rapide. La chaîne de connexion de service est différente de la chaîne de connexion d’appareil que vous avez notée à l’étape précédente.

Simuler un appareil

L’application d’appareil simulé se connecte à un point de terminaison spécifique de l’appareil sur votre IoT Hub, envoie les données de télémétrie simulée et écoute les appels de méthode directe provenant de votre concentrateur. Dans ce démarrage rapide, l’appel de méthode directe à partir du concentrateur indique à l’appareil de modifier la fréquence à laquelle il envoie des données de télémétrie. L’appareil simulé renvoie un accusé de réception à votre hub après l’exécution de la méthode directe.

  1. Dans une fenêtre de terminal local, accédez au dossier racine de l’exemple de projet Python. Ensuite, accédez au dossier iot-hub\Quickstarts\simulated-device-2.

  2. Utilisez un éditeur de texte pour ouvrir le fichier SimulatedDeviceSync.py.

    Remplacez la valeur de la variable CONNECTION_STRING par la chaîne de connexion d’appareil que vous avez notée précédemment. Enregistrez ensuite les changements apportés à SimulatedDeviceSync.py.

  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques requises pour l’application d’appareil simulé :

    pip install azure-iot-device
    
  4. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour démarrer l’application d’appareil simulé :

    python SimulatedDeviceSync.py
    

    La capture d’écran suivante présente la sortie lorsque l’application d’appareil simulé envoie des données de télémétrie à votre IoT Hub :

    Exécuter l’appareil simulé

Appeler la méthode directe

L’application back-end se connecte au point de terminaison côté service sur votre IoT Hub. L’application effectue des appels de méthode directe à un appareil via votre IoT Hub et écoute les accusés de réception. Une application back-end de l’IoT Hub s’exécute généralement dans le cloud.

  1. Dans une autre fenêtre de terminal local, accédez au dossier racine de l’exemple de projet Python. Ensuite, accédez au dossier iot-hub\Quickstarts\back-end-application.

  2. Utilisez un éditeur de texte pour ouvrir le fichier BackEndApplication.py.

    Remplacez la valeur de la variable CONNECTION_STRING par la chaîne de connexion de service que vous avez notée précédemment. Ensuite, enregistrez vos modifications dans BackEndApplication.py.

  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques requises pour l’application d’appareil simulé :

    pip install azure-iot-hub
    
  4. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour exécuter l’application back-end :

    python BackEndApplication.py
    

    La capture d’écran suivante montre la sortie lorsque l’application effectue un appel de méthode directe sur l’appareil et reçoit un accusé de réception :

    Exécuter l’application back-end

    Après avoir exécuté l’application back-end, un message s’affiche dans la fenêtre de la console exécutant l’appareil simulé, et la fréquence à laquelle il envoie les messages change :

    Changement dans le client simulé

Nettoyer les ressources

Si vous envisagez de passer à l’article recommandé suivant, vous pouvez conserver les ressources déjà créées afin de les réutiliser.

Sinon, vous pouvez supprimer les ressources Azure créées dans cet article pour éviter des frais.

Important

La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement des ressources ou un groupe de ressources incorrects. Si vous avez créé l’IoT Hub à l’intérieur d’un groupe de ressources existant qui concerne des ressources que vous souhaitez conserver, supprimer uniquement la ressource de l’ IoT Hub au lieu de supprimer le groupe de ressources.

Pour supprimer un groupe de ressources par nom :

  1. Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.

  2. Dans la zone de texte Filtrer par nom, saisissez le nom du groupe de ressources contenant votre IoT Hub.

  3. À droite de votre groupe de ressources dans la liste des résultats, sélectionnez ... , puis Supprimer le groupe de ressources.

    DELETE

  4. Il vous sera demandé de confirmer la suppression du groupe de ressources. Saisissez à nouveau le nom de votre groupe de ressources pour confirmer, puis sélectionnez Supprimer. Après quelques instants, le groupe de ressources et toutes les ressources qu’il contient sont supprimés.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez appelé une méthode directe sur un appareil à partir d’une application de service et répondu à l’appel de méthode directe dans une application d’appareil simulé.

Pour savoir comment acheminer les messages appareil-à-cloud vers différentes destinations dans le cloud, passez au tutoriel suivant.