Démarrage rapide : Envoyer des données de télémétrie d’un appareil à un hub IoT et les lire avec une application back-end (Python)Quickstart: Send telemetry from a device to an IoT hub and read it with a back-end application (Python)

Dans ce guide de démarrage rapide, vous envoyez la télémétrie d’une application d’appareil simulé via Azure IoT Hub à une application back-end pour traitement.In this quickstart, you send telemetry from a simulated device application through Azure IoT Hub to a back-end application for processing. 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.IoT Hub is an Azure service that enables you to ingest high volumes of telemetry from your IoT devices into the cloud for storage or processing. Ce guide de démarrage rapide comporte deux applications Python prédéfinies : l’une pour envoyer la télémétrie, et l’autre pour lire cette télémétrie à partir du hub.This quickstart uses two pre-written Python applications: one to send the telemetry and one to read the telemetry from the hub. Avant d’exécuter ces deux applications, vous créez un IoT Hub et inscrivez un appareil auprès du concentrateur.Before you run these two applications, you create an IoT hub and register a device with the hub.

PrérequisPrerequisites

Utiliser Azure Cloud ShellUse Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Pour démarrer Azure Cloud Shell :To start Azure Cloud Shell:

OptionOption Exemple/LienExample/Link
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code.Select Try It in the upper-right corner of a code block. La sélection de Essayer ne copie pas automatiquement le code dans Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemple Essayer pour Azure Cloud Shell
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Bouton Cloud Shell du portail Azure

Pour exécuter le code de cet article dans Azure Cloud Shell :To run the code in this article in Azure Cloud Shell:

  1. Démarrez Cloud Shell.Start Cloud Shell.

  2. Sélectionnez le bouton Copier dans un bloc de code pour copier le code.Select the Copy button on a code block to copy the code.

  3. Collez le code dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux, ou en sélectionnant Cmd+Maj+V sur macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Sélectionnez Entrée pour exécuter le code.Select Enter to run the code.

Ajouter une extension Azure IoTAdd Azure IoT Extension

Exécutez la commande suivante afin d’ajouter l’extension Microsoft Azure IoT pour Azure CLI à votre instance Cloud Shell.Run the following command to add the Microsoft Azure IoT Extension for Azure CLI to your Cloud Shell instance. L’extension IoT ajoute des commandes IoT Hub, IoT Edge et du service IoT Hub Device Provisioning (DPS) à Azure CLI.The IoT Extension adds IoT Hub, IoT Edge, and IoT Device Provisioning Service (DPS) specific commands to Azure CLI.

az extension add --name azure-iot

Notes

Cet article utilise la version la plus récente de l’extension Azure IoT, appelée azure-iot.This article uses the newest version of the Azure IoT extension, called azure-iot. La version héritée est appelée azure-cli-iot-ext. Une seule version doit être installée à la fois.The legacy version is called azure-cli-iot-ext.You should only have one version installed at a time. Vous pouvez utiliser la commande az extension list pour valider les extensions actuellement installées.You can use the command az extension list to validate the currently installed extensions.

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

Utilisez az extension add --name azure-iot pour ajouter la nouvelle version de l’extension.Use az extension add --name azure-iot to add the new version of the extension.

Pour voir les extensions que vous avez installées, utilisez az extension list.To see what extensions you have installed, use az extension list.

Créer un hub IoTCreate an IoT hub

Cette section décrit comment créer un hub IoT à l’aide du portail Azure.This section describes how to create an IoT hub using the Azure portal.

  1. Connectez-vous au portail Azure.Sign in to the Azure portal.

  2. Dans la page d’accueil Azure, sélectionnez le bouton + Créer une ressource, puis entrez IoT Hub dans le champ Rechercher dans la Place de marché.From the Azure homepage, select the + Create a resource button, and then enter IoT Hub in the Search the Marketplace field.

  3. Sélectionnez IoT Hub dans les résultats de la recherche, puis Créer.Select IoT Hub from the search results, and then select Create.

  4. Dans l'onglet De base, renseignez les champs comme suit :On the Basics tab, complete the fields as follows:

    • Abonnement: Sélectionnez l’abonnement à utiliser pour votre hub.Subscription: Select the subscription to use for your hub.

    • Groupe de ressources : Sélectionnez un groupe de ressources ou créez-en un.Resource Group: Select a resource group or create a new one. Pour créer un nouveau groupe, sélectionnez Créer et indiquez le nom que vous voulez utiliser.To create a new one, select Create new and fill in the name you want to use. Pour utiliser un groupe de ressources existant, sélectionnez-le.To use an existing resource group, select that resource group. Pour plus d’informations, consultez Gérer des groupes de ressources Azure Resource Manager.For more information, see Manage Azure Resource Manager resource groups.

    • Région : Sélectionnez la région dans laquelle vous voulez placer votre hub.Region: Select the region in which you want your hub to be located. Sélectionnez l’emplacement le plus proche de vous.Select the location closest to you. Certaines fonctionnalités, telles que les flux d’appareils IoT Hub, sont disponibles uniquement dans certaines régions.Some features, such as IoT Hub device streams, are only available in specific regions. Pour ces fonctionnalités limitées, vous devez sélectionner l’une des régions prises en charge.For these limited features, you must select one of the supported regions.

    • Nom du hub IoT : Entrez un nom pour votre hub.IoT Hub Name: Enter a name for your hub. Ce nom doit être globalement unique.This name must be globally unique. Si le nom saisi est disponible, une coche verte s’affiche.If the name you enter is available, a green check mark appears.

    Important

    Comme le hub IoT sera publiquement détectable en tant que point de terminaison DNS, veillez à éviter d’entrer des informations sensibles ou personnellement identifiables quand vous le nommez.Because the IoT hub will be publicly discoverable as a DNS endpoint, be sure to avoid entering any sensitive or personally identifiable information when you name it.

    Créer un hub dans le portail Azure

  5. Sélectionnez Suivant : taille et échelle pour poursuivre la création de votre hub.Select Next: Size and scale to continue creating your hub.

    Définir la taille et la mise à l’échelle d’un nouveau hub avec le portail Azure

    Vous pouvez accepter les paramètres par défaut ici.You can accept the default settings here. Si vous le souhaitez, vous pouvez modifier les champs suivants :If desired, you can modify any of the following fields:

    • Tarification et niveau de mise à l’échelle : Le niveau sélectionné.Pricing and scale tier: Your selected tier. Vous pouvez choisir parmi plusieurs niveaux, selon le nombre de fonctionnalités souhaité et le nombre de messages envoyés par jour par l’intermédiaire de votre solution.You can choose from several tiers, depending on how many features you want and how many messages you send through your solution per day. Le niveau gratuit est destiné aux tests et à l’évaluation.The free tier is intended for testing and evaluation. Il permet la connexion de 500 appareils au hub, avec jusqu’à 8 000 messages par jour.It allows 500 devices to be connected to the hub and up to 8,000 messages per day. Chaque abonnement Azure peut créer un hub IoT dans le niveau gratuit.Each Azure subscription can create one IoT hub in the free tier.

      Si vous suivez un guide de démarrage rapide pour les flux d’appareils IoT Hub, sélectionnez le niveau gratuit.If you are working through a Quickstart for IoT Hub device streams, select the free tier.

    • Unités IoT Hub : Le nombre de messages autorisés par unité par jour dépend du niveau de tarification de votre concentrateur.IoT Hub units: The number of messages allowed per unit per day depends on your hub's pricing tier. Par exemple, si vous souhaitez que le hub prenne en charge l’arrivée de 700 000 messages, vous choisissez deux unités de niveau S1.For example, if you want the hub to support ingress of 700,000 messages, you choose two S1 tier units. Pour plus d’informations sur les autres options de niveau, consultez Choix du bon niveau IoT Hub.For details about the other tier options, see Choosing the right IoT Hub tier.

    • Azure Security Center : Activez cette fonction pour ajouter une couche de protection supplémentaire contre les menaces à IoT et à vos appareils.Azure Security Center: Turn this on to add an extra layer of threat protection to IoT and your devices. Cette option n’est pas disponible pour les hubs au niveau gratuit.This option is not available for hubs in the free tier. Pour plus d’informations sur cette fonctionnalité, consultez Azure Security Center pour IoT.For more information about this feature, see Azure Security Center for IoT.

    • Paramètres avancés > Partitions appareil-à-cloud : cette propriété associe les messages appareil-à-cloud au nombre de lecteurs simultanés des messages.Advanced Settings > Device-to-cloud partitions: This property relates the device-to-cloud messages to the number of simultaneous readers of the messages. La plupart des hubs n’ont besoin que de 4 partitions.Most hubs need only four partitions.

  6. Sélectionnez Suivant : Étiquettes pour continuer à l’écran suivant.Select Next: Tags to continue to the next screen.

    Les étiquettes sont des paires nom/valeur.Tags are name/value pairs. Vous pouvez affecter la même étiquette à plusieurs ressources et groupes de ressources pour catégoriser les ressources et regrouper la facturation.You can assign the same tag to multiple resources and resource groups to categorize resources and consolidate billing. Pour plus d’informations, consultez Organisation des ressources Azure à l’aide de balises.For more information, see Use tags to organize your Azure resources.

    Affecter des étiquettes pour le hub à l’aide du portail Azure

  7. Sélectionnez Suivant : Vérifier + créer pour passer en revue vos choix.Select Next: Review + create to review your choices. Un écran semblable au suivant s’affiche, mais avec les valeurs que vous avez sélectionnées lors de la création du hub.You see something similar to this screen, but with the values you selected when creating the hub.

    Vérifier les informations pour la création du hub

  8. Sélectionnez Créer pour créer votre hub.Select Create to create your new hub. La création du hub prend quelques minutes.Creating the hub takes a few minutes.

Inscrire un appareilRegister a device

Un appareil doit être inscrit dans votre hub IoT pour pouvoir se connecter.A device must be registered with your IoT hub before it can connect. Dans ce démarrage rapide, vous utilisez Azure Cloud Shell pour inscrire un appareil simulé.In this quickstart, you use the Azure Cloud Shell to register a simulated device.

  1. Exécutez les commandes suivantes dans Azure Cloud Shell pour créer l’identité d’appareil.Run the following command in Azure Cloud Shell to create the device identity.

    YourIoTHubName : Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.YourIoTHubName: Replace this placeholder below with the name you chose for your IoT hub.

    MyPythonDevice : il s’agit du nom de l’appareil que vous inscrivez.MyPythonDevice: This is the name of the device you're registering. Il est recommandé d’utiliser MyPythonDevice comme indiqué.It's recommended to use MyPythonDevice as shown. Si vous choisissez un autre nom pour votre appareil, vous devrez utiliser ce nom tout au long de cet article et mettre à jour le nom de l'appareil dans les exemples d'application avant de les exécuter.If you choose a different name for your device, you'll also need to use that name throughout this article, and update the device name in the sample applications before you run them.

    az iot hub device-identity create --hub-name {YourIoTHubName} --device-id MyPythonDevice
    
  2. Exécutez la commande suivante dans Azure Cloud Shell pour obtenir la chaîne de connexion d’appareil que vous venez d’inscrire :Run the following command in Azure Cloud Shell to get the device connection string for the device you registered:

    YourIoTHubName : Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.YourIoTHubName: Replace this placeholder below with the name you chose for your IoT hub.

    az iot hub device-identity show-connection-string --hub-name {YourIoTHubName} --device-id MyPythonDevice --output table
    

    Notez la chaîne de connexion à l’appareil, qui ressemble à ce qui suit :Make a note of the device connection string, which looks like:

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyPythonDevice;SharedAccessKey={YourSharedAccessKey}

    Vous utiliserez cette valeur plus loin dans ce guide de démarrage rapide.You'll use this value later in the quickstart.

  3. Vous avez aussi besoin du point de terminaison compatible Event Hubs, du chemin d’accès compatible Event Hubs et de la clé principale du service à partir de votre IoT Hub pour permettre à l’application back-end de se connecter à votre IoT Hub et de récupérer les messages.You also need the Event Hubs-compatible endpoint, Event Hubs-compatible path, and service primary key from your IoT hub to enable the back-end application to connect to your IoT hub and retrieve the messages. Les commandes suivantes extraient ces valeurs pour votre IoT Hub :The following commands retrieve these values for your IoT hub:

    YourIoTHubName : Remplacez l’espace réservé ci-dessous par le nom que vous avez choisi pour votre hub IoT.YourIoTHubName: Replace this placeholder below with the name you choose for your IoT hub.

    az iot hub show --query properties.eventHubEndpoints.events.endpoint --name {YourIoTHubName}
    
    az iot hub show --query properties.eventHubEndpoints.events.path --name {YourIoTHubName}
    
    az iot hub policy show --name service --query primaryKey --hub-name {YourIoTHubName}
    

    Prenez note de ces trois valeurs, que vous utiliserez plus loin dans ce guide de démarrage rapide.Make a note of these three values, which you'll use later in the quickstart.

Envoyer des données de télémétrie simuléeSend simulated telemetry

L’application d’appareil simulé se connecte à un point de terminaison spécifique de l’appareil sur votre IoT Hub et envoie les données de télémétrie simulée (température et humidité).The simulated device application connects to a device-specific endpoint on your IoT hub and sends simulated temperature and humidity telemetry.

  1. Dans une fenêtre de terminal local, accédez au dossier racine de l’exemple de projet Python.In a local terminal window, navigate to the root folder of the sample Python project. Ensuite, accédez au dossier iot-hub\Quickstarts\simulated-device.Then navigate to the iot-hub\Quickstarts\simulated-device folder.

  2. Utilisez un éditeur de texte pour ouvrir le fichier SimulatedDevice.py.Open the SimulatedDevice.py file in a text editor of your choice.

    Remplacez la valeur de la variable CONNECTION_STRING par la chaîne de connexion d’appareil que vous avez notée précédemment.Replace the value of the CONNECTION_STRING variable with the device connection string you made a note of earlier. Enregistrez ensuite les changements apportés à SimulatedDevice.py.Then save your changes to SimulatedDevice.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é :In the local terminal window, run the following commands to install the required libraries for the simulated device application:

    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é :In the local terminal window, run the following commands to run the simulated device application:

    python SimulatedDevice.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 :The following screenshot shows the output as the simulated device application sends telemetry to your IoT hub:

    Exécuter l’appareil simulé

Lire les données de télémétrie envoyées par votre hubRead the telemetry from your hub

L’application back-end se connecte au point de terminaison Événements du service sur votre IoT Hub.The back-end application connects to the service-side Events endpoint on your IoT Hub. L’application reçoit les messages appareil-à-cloud envoyés à partir de votre appareil simulé.The application receives the device-to-cloud messages sent from your simulated device. Une application back-end IoT Hub s’exécute généralement dans le cloud pour recevoir et traiter les messages appareil-à-cloud.An IoT Hub back-end application typically runs in the cloud to receive and process device-to-cloud messages.

Notes

Les étapes suivantes sont basées sur l’exemple synchrone, read_device_to_cloud_messages_sync.py.The following steps use the synchronous sample, read_device_to_cloud_messages_sync.py. Vous pouvez effectuer les mêmes étapes avec l’exemple asynchrone, read_device_to_cloud_messages_async.py.You can perform the same steps with the asynchronous sample, read_device_to_cloud_messages_async.py.

  1. Dans une autre fenêtre de terminal local, accédez au dossier racine de l’exemple de projet Python.In another local terminal window, navigate to the root folder of the sample Python project. Puis, accédez au dossier iot-hub\Quickstarts\read-d2c-messages.Then navigate to the iot-hub\Quickstarts\read-d2c-messages folder.

  2. Ouvrez le fichier read_device_to_cloud_messages_sync.py dans l’éditeur de texte de votre choix.Open the read_device_to_cloud_messages_sync.py file in a text editor of your choice. Mettez à jour les variables suivantes et enregistrez vos modifications dans le fichier.Update the following variables and save your changes to the file.

    VariableVariable ValeurValue
    EVENTHUB_COMPATIBLE_ENDPOINT Remplacez la valeur de la variable par le point de terminaison compatible Event Hubs que vous avez noté précédemment.Replace the value of the variable with the Event Hubs-compatible endpoint you made a note of earlier.
    EVENTHUB_COMPATIBLE_PATH Remplacez la valeur de la variable par le chemin compatible Event Hubs que vous avez noté précédemment.Replace the value of the variable with the Event Hubs-compatible path you made a note of earlier.
    IOTHUB_SAS_KEY Remplacez la valeur de la variable par la clé principale de service que vous avez notée précédemment.Replace the value of the variable with the service primary key you made a note of earlier.
  3. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour installer les bibliothèques requises pour l’application back-end :In the local terminal window, run the following commands to install the required libraries for the back-end application:

    pip install azure-eventhub
    
  4. Dans la fenêtre de terminal local, exécutez les commandes suivantes pour générer et exécuter l’application back-end :In the local terminal window, run the following commands to build and run the back-end application:

    python read_device_to_cloud_messages_sync.py
    

    La capture d’écran suivante présente la sortie lorsque l’application back-end reçoit les données de télémétrie envoyées par l’appareil simulé au concentrateur :The following screenshot shows the output as the back-end application receives telemetry sent by the simulated device to the hub:

    Exécuter l’application back-end

Nettoyer les ressourcesClean up resources

Si vous envisagez de passer à l’article recommandé suivant, vous pouvez conserver les ressources déjà créées afin de les réutiliser.If you will be continuing to the next recommended article, you can keep the resources you've already created and reuse them.

Sinon, vous pouvez supprimer les ressources Azure créées dans cet article pour éviter des frais.Otherwise, you can delete the Azure resources created in this article to avoid charges.

Important

La suppression d’un groupe de ressources est irréversible.Deleting a resource group is irreversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement.The resource group and all the resources contained in it are permanently deleted. Veillez à ne pas supprimer accidentellement des ressources ou un groupe de ressources incorrects.Make sure that you do not accidentally delete the wrong resource group or resources. 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.If you created the IoT Hub inside an existing resource group that contains resources you want to keep, only delete the IoT Hub resource itself instead of deleting the resource group.

Pour supprimer un groupe de ressources par nom :To delete a resource group by name:

  1. Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.Sign in to the Azure portal and select Resource groups.

  2. Dans la zone de texte Filtrer par nom, saisissez le nom du groupe de ressources contenant votre IoT Hub.In the Filter by name textbox, type the name of the resource group containing your IoT Hub.

  3. À droite de votre groupe de ressources dans la liste des résultats, sélectionnez ... , puis Supprimer le groupe de ressources.To the right of your resource group in the result list, select ... then Delete resource group.

    DELETE

  4. Il vous sera demandé de confirmer la suppression du groupe de ressources.You will be asked to confirm the deletion of the resource group. Saisissez à nouveau le nom de votre groupe de ressources pour confirmer, puis sélectionnez Supprimer.Type the name of your resource group again to confirm, and then select Delete. Après quelques instants, le groupe de ressources et toutes les ressources qu’il contient sont supprimés.After a few moments, the resource group and all of its contained resources are deleted.

Étapes suivantesNext steps

Dans ce guide de démarrage rapide, vous avez configuré un hub IoT, inscrit un appareil, envoyé des données de télémétrie simulée au hub à l’aide d’une application Python et lu les données de télémétrie à partir du hub à l’aide d’une application back-end simple.In this quickstart, you set up an IoT hub, registered a device, sent simulated telemetry to the hub using a Python application, and read the telemetry from the hub using a simple back-end application.

Pour savoir comment contrôler votre appareil simulé à partir d’une application back-end, passez au démarrage rapide suivant.To learn how to control your simulated device from a back-end application, continue to the next quickstart.