Tutoriel : Générer des données d’appareil simulées
S’applique à : IoT Edge 1.1
Important
IoT Edge la date de fin du support 1.1 était le 13 décembre 2022. Consultez la page Politique de support Microsoft pour plus d’informations sur la prise en charge de ce produit, de ce service, de cette technologie ou de cette API. Pour plus d’informations sur la mise à jour vers la dernière version d’IoT Edge, consultez Mettre à jour IoT Edge.
Dans cet article, nous utilisons des données d’entraînement de Machine Learning pour simuler un appareil qui envoie des données de télémétrie à Azure IoT Hub. Comme indiqué dans l’introduction, ce tutoriel utilise le Turbofan engine degradation simulation data set (jeu de données de simulation de dégradation d’un turboréacteur à double flux) pour simuler les données d’un ensemble de moteurs d’avion à des fins d’entraînement et de test.
Dans notre scénario expérimental, nous savons que :
- Les données se composent de plusieurs séries chronologiques multidimensionnelles.
- Chaque jeu de données est divisé en sous-ensembles d’entraînement et de test.
- Chaque série chronologique provient d’un moteur différent.
- Chaque moteur a un niveau d’usure initial différent et des variations de fabrication.
Pour ce tutoriel, nous utilisons le sous-ensemble de données d’entraînement d’un seul jeu de données (FD003).
En réalité, chaque moteur est un appareil IoT indépendant. Comme nous supposons que vous n’avez pas de groupe de turboréacteurs connectés à Internet sous la main, nous utilisons un logiciel pour les remplacer.
Le simulateur est un programme C# qui utilise les API IoT Hub pour inscrire par programmation des appareils virtuels dans IoT Hub. Ensuite, nous lisons les données de chaque appareil à partir du sous-ensemble de données fournies par la NASA et les envoyons à votre hub IoT à l’aide d’un appareil IoT simulé. Tout le code de cette partie du tutoriel se trouve dans le répertoire DeviceHarness du dépôt.
Le projet DeviceHarness est un projet .NET Core écrit en C# divisé en quatre classes :
- Program : Point d’entrée permettant au responsable d’exécution de gérer l’entrée utilisateur et la coordination générale.
- TrainingFileManager : chargé de la lecture et de l’analyse du fichier de données sélectionné.
- CycleData : représente une seule ligne de données dans un fichier convertie en message.
- TurbofanDevice : chargé de créer un appareil IoT qui correspond à un seul appareil (série chronologique) dans les données et de transmettre les données à IoT Hub.
L’exécution des tâches décrites dans cet article doit prendre environ 20 minutes.
L’équivalent du travail de cette étape dans le monde réel est généralement exécutée par des développeurs d’appareil et des développeurs du cloud.
Dans cette section du tutoriel, vous allez apprendre à :
- Intégrer un projet externe à votre environnement de développement.
- Utiliser l’exemple de projet DeviceHarness pour générer des données d’appareil IoT simulé.
- Examiner les données générées dans votre hub IoT.
Prérequis
Cet article fait partie d’une série décrivant l’utilisation d’Azure Machine Learning sur IoT Edge. Chaque article de la série s’appuie sur le travail réalisé dans le cadre de l’article précédent. Si vous êtes tombé directement sur cet article, reportez-vous au premier article de la série.
Configurer Visual Studio Code et générer le projet DeviceHarness
Ouvrez une session Bureau à distance sur votre machine virtuelle de développement.
Dans Visual Studio Code, ouvrez le dossier
C:\source\IoTEdgeAndMlSample\DeviceHarness
.Comme vous utilisez ces extensions sur cette machine pour la première fois, certaines extensions se mettent à jour et installent leurs dépendances. Vous pouvez être invité à mettre à jour l’extension. Dans ce cas, sélectionnez Recharger la fenêtre.
Si des erreurs OmniSharp apparaissent dans la fenêtre de sortie, vous devez désinstaller l’extension C#.
Vous êtes inviter à ajouter les ressources dont DeviceHarness a besoin. Sélectionnez Oui pour les ajouter.
- La notification peut prendre quelques secondes à s’afficher.
- Si vous avez manqué cette notification, consultez l’icône de cloche en bas à droite.
Sélectionnez Restaurer pour restaurer les dépendances de package.
Si vous ne recevez pas ces notifications, fermez Visual Studio Code, supprimez les répertoires bin et obj dans
C:\source\IoTEdgeAndMlSample\DeviceHarness
, ouvrez Visual Studio Code, puis rouvrez le dossier DeviceHarness.Vérifiez que votre environnement est correctement configuré en déclenchant une build : Ctrl + Maj + B ou Terminal>Exécuter la tâche de génération.
Vous êtes invité à sélectionner la tâche de build à exécuter. Sélectionnez Build.
La build s’exécute et génère un message de réussite.
Vous pouvez définir cette build comme build par défaut en sélectionnant Terminal>Configurer une tâche de build par défaut... et en choisissant Build à partir de l’invite.
Se connecter à IoT Hub et exécuter DeviceHarness
Maintenant que nous avons la génération de projet, connectez-vous à votre hub IoT pour accéder à la chaîne de connexion et superviser la progression de la génération des données.
Se connecter à Azure dans Visual Studio Code
Connectez-vous à votre abonnement Azure dans Visual Studio Code en ouvrant la palette de commandes :
Ctrl + Shift + P
ou Afficher>Palette de commandes.Recherchez la commande Azure : Se connecter.
Une fenêtre de navigateur s’ouvre et vous invite à entrer vos informations d’identification. Dès que vous êtes redirigé vers une page de réussite, vous pouvez fermer le navigateur.
Se connecter à votre hub IoT et récupérer la chaîne de connexion du hub
Dans la section inférieure de l’Explorateur Visual Studio Code, sélectionnez le cadre Azure IoT Hub pour le développer.
Dans le cadre développé, cliquez sur Sélectionner un hub IoT.
Quand vous y êtes invité, sélectionnez votre abonnement Azure, puis votre hub IoT.
Cliquez sur ... à droite de Azure IoT Hub pour accéder à d’autres actions. Sélectionnez Copier une chaîne de connexion IoT Hub.
Exécuter le projet DeviceHarness
Sélectionnez Afficher>Terminal pour ouvrir le terminal Visual Studio Code.
Si vous ne voyez pas d’invite, appuyez sur Entrée.
Entrez
dotnet run
dans le terminal.Quand vous êtes invité à entrer la chaîne de connexion IoT Hub, collez la chaîne de connexion copiée dans la section précédente.
Dans le cadre Appareils Azure IoT Hub, cliquez sur le bouton Actualiser.
Notez que les appareils sont ajoutés au hub IoT et qu’ils s’affichent en vert pour indiquer qu’ils envoient des données. Après l’envoi de messages au hub IoT, les appareils se déconnectent et apparaissent en bleu.
Vous pouvez voir les messages envoyés au hub en cliquant avec le bouton droit sur un appareil et en sélectionnant Démarrer la supervision du point de terminaison d’événement intégré. Les messages s’affichent dans le volet de sortie dans Visual Studio Code.
Arrêtez la supervision en cliquant dans le volet de sortie Azure IoT Hub et choisissez Arrêter la supervision du point de terminaison d’événement intégré.
Laissez l’application s’exécuter jusqu’à la fin, c’est-à-dire pendant quelques minutes.
Rechercher une activité sur le hub IoT
Les données envoyées par DeviceHarness ont été acheminées à votre hub IoT, ce que vous pouvez vérifier dans le portail Azure.
Ouvrez le portail Azure et accédez au hub IoT créé pour ce tutoriel.
Dans le menu du volet de gauche, sous Supervision, sélectionnez Métriques.
Dans la page définition du graphique, cliquez sur la liste déroulante Métrique, faites défiler la liste et sélectionnez Routing: data delivered to storage (Routage : données remises au stockage). Le graphique doit montrer le pic correspondant au routage des données vers le stockage.
Valider les données dans le Stockage Azure
Les données que nous venons d’envoyer à votre hub IoT ont été routées vers le conteneur de stockage que nous avons créé dans l’article précédent. Examinons les données dans notre compte de stockage.
Dans le portail Azure, accédez à votre compte de stockage.
Dans le navigateur du compte de stockage, sélectionnez Explorateur Stockage (préversion) .
Dans l’explorateur de stockage, sélectionnez Conteneurs d’objets blob, puis
devicedata
.Dans le volet de contenu, cliquez sur le dossier avec le nom du hub IoT suivi de l’année, du mois, du jour et de l’heure. Vous voyez plusieurs dossiers correspondant aux minutes auxquelles les données ont été écrites.
Cliquez sur un de ces dossiers pour rechercher les fichiers de données étiquetés 00 et 01 correspondant à la partition.
Les fichiers sont écrits au format Avro. Double-cliquez sur l’un de ces fichiers pour ouvrir un autre onglet de navigateur et afficher partiellement les données. Si vous êtes invité à ouvrir le fichier dans un programme, vous pouvez choisir VS Code pour qu’il s’affiche correctement.
Vous n’avez pas besoin d’essayer de lire ou d’interpréter les données pour le moment, ce sera l’objet de l’article suivant.
Nettoyer les ressources
Ce tutoriel fait partie d’une série où chaque article s’appuie sur le travail effectué dans les articles précédents. Ne nettoyez pas les ressources avant d’avoir terminé le dernier tutoriel.
Étapes suivantes
Dans cet article, nous avons utilisé un projet .NET Core pour créer un ensemble d’appareils IoT virtuels et envoyer des données par le biais de ces appareils à notre hub IoT et dans un conteneur Stockage Azure. Ce projet simule un scénario réel dans lequel des appareils IoT physiques envoient des données à un hub IoT, puis dans un stockage organisé. Ces données comprennent des relevés de capteur, des paramètres opérationnels, des signaux et modes d’échec, etc. Une fois que nous avons collecté suffisamment de données, nous les utilisons pour entraîner des modèles qui prédisent la durée de vie restante (RUL) de l’appareil. Ce modèle Machine Learning est décrit dans le prochain article.
Passez à l’article suivant pour entraîner un modèle Machine Learning avec les données.