Démarrage rapide : Envoyer des données de télémétrie d’un appareil à un hub IoT et les surveiller avec Azure CLI

IoT Hub est un service Azure qui vous permet de traiter de gros volumes de données de télémétrie envoyées par vos appareils IoT dans le cloud à des fins de stockage ou de traitement. Dans ce démarrage rapide sans code, vous utilisez la CLI Azure pour créer un hub IoT et un appareil simulé. Vous allez envoyer des données de télémétrie d’appareil au hub et envoyer des messages, des méthodes d’appel et mettre à jour les propriétés sur l’appareil. Vous utiliserez également le Portail Azure pour visualiser les métriques des appareils. Cet article présente un flux de travail de base pour les développeurs qui utilisent l’interface CLI pour interagir avec une application IoT Hub.

Prérequis

  • Si vous n’avez pas d’abonnement Azure, créez-en un gratuitement avant de commencer.
  • Azure CLI. Vous pouvez exécuter toutes les commandes dans ce démarrage rapide à l’aide de Azure Cloud Shell, un interpréteur de commandes CLI interactif qui s’exécute dans votre navigateur ou dans une application telle que Terminal Windows. Si vous utilisez Cloud Shell, vous n’avez rien à installer. Si vous préférez installer et utiliser l’interface de ligne de commande en local, ce démarrage rapide nécessite au minimum Azure CLI version 2.36. Exécutez az --version pour trouver la version. Pour installer ou mettre à niveau Azure CLI, consultez Installer Azure CLI.

Connectez-vous au portail Azure.

Connectez-vous au portail Azure.

Que vous exécutiez ou non l’interface CLI localement ou dans Cloud Shell, laissez le portail ouvert dans votre navigateur. Vous l’utiliserez plus loin dans ce démarrage rapide.

Lancer Cloud Shell

Dans cette section, vous lancez une instance de Azure Cloud Shell. Si vous utilisez l’interface CLI localement, passez à la section Préparer deux sessions CLI.

Pour lancer Cloud Shell :

  1. Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure.

    Bouton Cloud Shell du portail Azure

    Notes

    S’il s’agit de la première fois que vous utilisez Cloud Shell, vous êtes invité à créer un stockage, requis pour utiliser Cloud Shell. Sélectionnez un abonnement pour créer un compte de stockage et un partage Microsoft Azure Files.

  2. Sélectionnez votre environnement CLI préféré dans la liste déroulante Sélectionner l’environnement. Ce démarrage rapide utilise l’environnement Bash. Vous pouvez également utiliser l’environnement PowerShell.

    Notes

    Certaines commandes nécessitent une syntaxe ou une mise en forme différente dans les environnements Bash et PowerShell. Pour plus d’informations, consultez Conseils pour l’utilisation réussie d’Azure CLI.

    Sélectionner l’environnement CLI

Préparer deux sessions CLI

Vous allez ensuite prépare deux sessions Azure CLI. Si vous utilisez le Cloud Shell, vous allez exécuter ces sessions dans des onglets Cloud Shell distincts. Si vous utilisez un client CLI local, vous exécuterez deux instances CLI distinctes. Utilisez les sessions CLI distinctes pour les tâches suivantes :

  • La première session simule un appareil IoT qui communique avec votre IoT Hub.
  • La deuxième session surveille l’appareil dans la première session ou envoie des messages, des commandes et des mises à jour de propriétés.

Pour exécuter une commande, sélectionnez Copier pour copier un bloc de code dans ce démarrage rapide, collez-le dans votre session d’interpréteur de commandes, puis exécutez-le.

Azure CLI nécessite que vous soyez connecté à votre compte Azure. Toutes les communications entre votre session d’interpréteur de commandes Azure CLI et votre hub IoT sont authentifiées et chiffrées. Par conséquent, ce démarrage rapide n’a pas besoin d’une authentification supplémentaire que vous utiliseriez avec un appareil réel, comme une chaîne de connexion.

  • Dans la première session CLI, exécutez la commande az extension add. La commande ajoute l’extension Microsoft Azure IoT pour Azure CLI dans votre shell CLI. L’extension IoT ajoute des commandes IoT Hub, IoT Edge et IoT Device Provisioning Service (DPS) à Azure CLI.

    az extension add --name azure-iot
    

    Après l’installation de l’extension Azure IOT, vous n’avez pas besoin de l’installer à nouveau dans une session Cloud Shell.

    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.

  • Ouvrez une deuxième session CLI. Si vous utilisez le Cloud Shell dans un navigateur, utilisez le bouton Ouvrir une nouvelle session. Si vous utilisez l’interface CLI localement, ouvrez une deuxième instance.

    Ouvrir une nouvelle session Cloud Shell

Créer un hub IoT

Dans cette section, vous utilisez Azure CLI pour créer un groupe de ressources et un hub IoT. 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.

Conseil

Si vous le souhaitez, vous pouvez créer un groupe de ressources Azure, un hub IoT et d’autres ressources à l’aide du portail Azure, de Visual Studio Code ou d’autres méthodes de programmation.

  1. Dans la première session 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 :

    az group create --name MyResourceGroup --location eastus
    
  2. Dans la première session CLI, exécutez la commande Az PowerShell module iot hub create pour créer un hub IoT. La création d’un 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 {YourIoTHubName}
    

Créer et surveiller un appareil

Dans cette section, vous créez un appareil simulé dans la première session CLI. L’appareil simulé envoie les données de télémétrie de l’appareil à votre hub IoT. La deuxième session CLI permet de surveiller les événements et la télémétrie.

Créer et démarrer un appareil simulé :

  1. Dans la première session CLI, exécutez la commande az iot hub device-identity create. Cette commande crée l’identité de l’appareil simulé.

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

    simDevice. Vous pouvez utiliser ce nom directement pour l’appareil simulé dans le reste de ce démarrage rapide. Vous pouvez aussi utiliser un autre nom.

    az iot hub device-identity create -d simDevice -n {YourIoTHubName} 
    
  2. Dans la première session CLI, exécutez la commande az iot device simulate. Cette commande démarre l’appareil simulé. L’appareil envoie des données de télémétrie à votre hub IoT et reçoit des messages de ce dernier.

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

    az iot device simulate -d simDevice -n {YourIoTHubName}
    

Pour surveiller un appareil :

  1. Dans la deuxième session CLI, exécutez la commande az iot hub monitor-events. Cette commande surveille en permanence l’appareil simulé. La sortie affiche les données de télémétrie telles que les événements et les modifications d’état de propriété que l’appareil simulé envoie au hub IoT.

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

    az iot hub monitor-events --output table -p all -n {YourIoTHubName}
    

    Capture d’écran des événements de supervision sur un appareil simulé.

  2. Après avoir surveillé l’appareil simulé dans la deuxième session CLI, appuyez sur Ctrl + C pour arrêter la surveillance. Laissez la deuxième session CLI ouverte pour l’utiliser dans les étapes ultérieures.

Utiliser l’interface CLI pour envoyer un message

Dans cette section, vous envoyez un message à l’appareil simulé.

  1. Dans la première session CLI, vérifiez que l’appareil simulé est encore en cours d’exécution. Si l’appareil s’est arrêté, exécutez la commande suivante pour le redémarrer :

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

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  2. Dans la deuxième session CLI, exécutez la commande az iot device c2d-message send. Cette commande envoie un message cloud-à-appareil à partir de votre hub IoT vers l’appareil simulé. Le message comprend une chaîne et deux paires clé-valeur.

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

    az iot device c2d-message send -d simDevice --data "Hello World" --props "key0=value0;key1=value1" -n {YourIoTHubName}
    

    Si vous le souhaitez, vous pouvez envoyer des messages cloud-à-appareil à l’aide du portail Azure. Pour ce faire, accédez à la page vue d’ensemble de votre hub IoT, sélectionnez Appareils IoT, sélectionnez l’appareil simulé, puis sélectionnez Message à l’appareil.

  3. Dans la première session CLI, vérifiez que l’appareil simulé a reçu le message.

    Capture d’écran d’un appareil simulé recevant un message.

Utiliser l’interface CLI pour appeler une méthode d’appareil

Dans cette section, vous appelez une méthode directe sur l’appareil simulé.

  1. Comme vous l’avez fait précédemment, vérifiez que l’appareil simulé dans la première session CLI est en cours d’exécution. Si ce n’est pas le cas, redémarrez-le.

  2. Dans la deuxième session CLI, exécutez la commande az iot hub invoke-device-method. Dans cet exemple, il n’existe aucune méthode préexistante pour l’appareil. La commande appelle un exemple de nom de méthode sur l’appareil simulé et retourne une charge utile.

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

    az iot hub invoke-device-method --mn MySampleMethod -d simDevice -n {YourIoTHubName}
    
  3. Dans la première session CLI, vérifiez que la sortie affiche l’appel de méthode.

    Capture d’écran d’un appareil simulé affichant la sortie après l’appel d’une méthode.

Utiliser l’interface CLI pour mettre à jour les propriétés de l’appareil

Dans cette section, vous mettez à jour l’état de l’appareil simulé en définissant des valeurs de propriété.

  1. Comme vous l’avez fait précédemment, vérifiez que l’appareil simulé dans la première session CLI est en cours d’exécution. Si ce n’est pas le cas, redémarrez-le.

  2. Dans la deuxième session CLI, exécutez la commande az iot hub device-twin update. Cette commande met à jour les propriétés à l’état souhaité sur le jumeau d’appareil IoT Hub qui correspond à votre appareil simulé. Dans ce cas, la commande définit des exemples de propriétés de condition de température.

    Important

    Si vous utilisez PowerShell dans l’interpréteur de commandes CLI, utilisez la version PowerShell de la commande ci-dessous. PowerShell vous oblige à placer les caractères dans la charge utile JSON dans une séquence d’échappement.

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

    az iot hub device-twin update -d simDevice --desired '{"conditions":{"temperature":{"warning":98, "critical":107}}}' -n {YourIoTHubName}
    
    az iot hub device-twin update -d simDevice --desired '{\"conditions\":{\"temperature\":{\"warning\":98, \"critical\":107}}}' -n {YourIoTHubName}
    
  3. Dans la première session CLI, vérifiez que l’appareil simulé sort la mise à jour de la propriété.

    Capture d’écran montrant comment mettre à jour les propriétés sur un appareil.

  4. Dans la deuxième session CLI, exécutez la commande az iot hub device-twin show. Cette commande signale les modifications apportées aux propriétés de l’appareil.

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

    az iot hub device-twin show -d simDevice --query properties.reported -n {YourIoTHubName}
    

    Capture d’écran montrant les propriétés mises à jour sur un jumeau d’appareil.

Afficher les métriques de messagerie dans le portail

Le portail Azure vous permet de gérer tous les aspects de votre hub IoT et de vos appareils. Dans une application IoT Hub classique qui ingère les données de télémétrie à partir d’appareils, vous pouvez surveiller les appareils ou afficher des métriques sur la télémétrie des appareils.

Pour visualiser les métriques de messagerie dans e portail Azure :

  1. Dans le menu gauche du portail, sélectionnez Toutes les ressources. Cet onglet répertorie toutes les ressources de votre abonnement, y compris l’hub IoT que vous avez créé.

  2. Sélectionnez le lien sur l’hub IoT que vous avez créé. Le portail affiche la page de vue d’ensemble du hub.

  3. Sélectionnez Métriques dans le volet gauche de votre hub IoT.

    Métriques de messagerie IoT Hub

  4. Dans le champ Étendue, entrez le nom de votre hub IOT.

  5. Dans le champ Espace de noms de la métrique , sélectionnez Métriques standards IOT Hub.

  6. Dans le champ Métrique, sélectionnez Nombre total de messages utilisés.

  7. Placez le pointeur de la souris sur la zone de la chronologie dans laquelle votre appareil a envoyé des messages. Le nombre total de messages à un point dans le temps s’affiche dans l’angle inférieur gauche de la chronologie.

    Afficher les métriques Azure IoT Hub

  8. Si vous le souhaitez, utilisez la liste déroulante Métrique pour afficher d’autres métriques sur votre appareil simulé. Par exemple, les remises de messages C2d terminées ou le nombre total d’appareils (préversion) .

Nettoyer les ressources

Si vous n’avez plus besoin des ressources Azure créées dans ce démarrage rapide, vous pouvez utiliser Azure CLI pour les supprimer.

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

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.

Pour supprimer un groupe de ressources par nom :

  1. Exécutez la commande az group delete. Cette commande supprime le groupe de ressources, le hub IoT et l’inscription de l’appareil que vous avez créés.

    az group delete --name MyResourceGroup
    
  2. Exécutez la commande az group list pour confirmer la suppression du groupe de ressources.

    az group list
    

Étapes suivantes

Dans ce démarrage rapide, vous avez utilisé Azure CLI pour créer un hub IoT, créer un appareil simulé, envoyer et surveiller la télémétrie, appeler une méthode, définir les propriétés souhaitées et nettoyer les ressources. Vous avez utilisé le portail Azure pour visualiser les métriques de messagerie sur votre appareil.

Si vous êtes un développeur d’appareils, l’étape suivante suggérée est de consulter le guide de démarrage rapide de télémétrie qui utilise le kit de développement logiciel Azure IoT Device SDK for C. Si vous le souhaitez, consultez l’un des articles de démarrage rapide de télémétrie Azure IoT Hub disponibles dans votre langue ou votre kit de développement logiciel (SDK).

Pour savoir comment contrôler votre appareil simulé à partir d’une application back-end, passez au démarrage rapide suivant.