- Qu'est-ce que Microsoft Azure IoT Hub?
- Créer un Azure IoT Hub
- Composants requis pour créer notre circuit de test pour Azure IoT avec Raspberry Pi
- Azure IoT avec Raspberry Pi - Schéma matériel
- Programmation de Raspberry Pi pour publier des données sur Azure IoT Hub
- Publier des données sur Azure IoT Hub - Test
Azure IoT Hub, le service de cloud computing de Microsoft, permet aux développeurs de connecter, surveiller et gérer des milliards d'appareils IoT sur une seule plateforme. Il est déjà utilisé dans diverses applications IoT telles que les systèmes domotiques, les systèmes de sécurité, de surveillance et de surveillance. Pour démontrer les capacités du hub Azure IoT, nous allons construire un petit circuit avec le Raspberry Pi, un capteur de température et d'humidité DHT11, afin de traiter les données du capteur avec lui. Enfin, nous publierons les données des capteurs sur le serveur Azure IoT à l'aide du protocole MQTT. Dans ce didacticiel, nous allons apprendre à installer et configurer un serveur Azure et à envoyer des données à l'aide d'un Raspberry Pi.
Qu'est-ce que Microsoft Azure IoT Hub?
Azure IoT Hub est un ensemble de services gérés qui peuvent connecter, surveiller et contrôler les appareils IoT. Il comprend également une communication sécurisée pour les appareils, avec une visualisation et des analyses de données qui aident les fabricants d'appareils à créer, déployer et gérer des applications IoT à l'aide du cloud Azure . Les données de télémétrie Device-to-Cd d'Azure IoT Hub nous permettent de connaître l'état des appareils IoT connectés, et les messages Cloud-to-Device nous permettent d'envoyer des commandes et des notifications aux appareils connectés. Un exemple pourrait être comme, en utilisant un système domotique intelligent, nous pouvons collecter diverses données de capteurs et les envoyer à Azure IoT Hub pour les visualiser, les stocker et les gérer. Nous pouvons également contrôler les appareils de sortie à partir de l'interface Azure IoT Hub.
Le hub central pour la communication bidirectionnelle pour les applications et les appareils IoT prend en charge à la fois la communication appareil-cloud et cloud-appareil, il prend également en charge plusieurs modèles de messagerie tels que la télémétrie appareil-cloud, le téléchargement de fichiers à partir d'appareils et les méthodes de demande-réponse et enfin nous pouvons utiliser la méthode d'authentification par appareil qui permet à chaque appareil de se connecter en toute sécurité à IoT Hub. Maintenant que vous avez compris les bases d'Azure IoT Hub, passons à la configuration du système.
Créer un Azure IoT Hub
Nous sommes prêts à effectuer toutes les configurations nécessaires à la configuration des services Microsoft Azure, mais avant cela, assurez-vous que vous disposez d'un compte Microsoft. Si vous ne l'avez pas, vous pouvez simplement vous inscrire. Ensuite, accédez au portail Azure à l'aide de portal.azure.com et connectez-vous.
Une fois que vous êtes connecté, accédez à la page d'accueil Azure, sélectionnez le bouton Créer une ressource, puis recherchez IoT Hub dans le champ Rechercher sur la place de marché. Sélectionnez IoT Hub dans les résultats de la recherche, puis sélectionnez Créer. Les images ci-dessous vous donneront une meilleure idée du processus.
Remplissez les détails nécessaires pour créer un IoT Hub.
Dans la section Abonnement, vous devez sélectionner l'abonnement pour l'utiliser pour votre hub. Dans notre cas, nous optons pour un compte d'essai et nous avons sélectionné « Essai gratuit» .
Ensuite, dans la section Groupe de ressources, sélectionnez votre groupe de ressources . Si vous n'en avez pas, vous devez en créer un nouveau en cliquant sur Créer nouveau et entrer le nom de la ressource.
Dans la section Région, vous pouvez utiliser le menu déroulant pour sélectionner votre région préférée.
Au nom Hub IdO section, vous devez e nter un nom pour votre hub. Cela doit être unique. Toutes les communications nécessaires se feront avec ce nom.
Sous l'onglet «Taille et échelle», sélectionnez « Offre gratuite » et cliquez sur Suivant. Cliquez ensuite sur «Review + Create». La création de l'IoT Hub prendra quelques minutes. Cliquez sur le nom de l'IoT Hub que vous avez créé. Notez le nom d' hôte de la fenêtre comme indiqué dans l'image ci-dessous. Cliquez ensuite sur les politiques d'accès partagé dans les paramètres. Les politiques d'accès partagé sont mises en évidence dans l'image ci-dessous. Cliquez sur l' option iothubowner sous Politique. Notez la clé primaire et la clé primaire de chaîne de connexion pour les références futures. Maintenant, pour enregistrer un nouvel appareil sous IoT Hub, cliquez sur Appareils IoT. Dans le volet Explorateur de périphériques, cliquez sur Ajouter pour ajouter un périphérique au hub.
Remplissez les informations suivantes dans l'onglet Nouveaux appareils.
- ID de l'appareil: saisissez l'ID de l'appareil. Les identifiants de périphérique doivent être uniques.
- Type d'authentification: sélectionnez une clé symétrique.
- Générer automatiquement les clés: cochez cette case.
- Connecter l'appareil à IoT Hub: cliquez sur Activer.
Une fois l'appareil créé, vous pouvez trouver votre appareil nouvellement créé dans la section Explorateur d'appareils. Cliquez sur le nom de l'appareil. Il montrera les détails de l'appareil. Notez la clé primaire et la clé primaire de la chaîne de connexion de l'appareil. C'est important car nous en avons besoin pour la communication.
Maintenant, lorsque cela est fait, nous pouvons passer au côté matériel des choses.
Composants requis pour créer notre circuit de test pour Azure IoT avec Raspberry Pi
Comme la partie matérielle de ce circuit est très simple, les exigences en matière de composants sont également très simples. Une liste des composants requis est présentée ci-dessous.
- Raspberry Pi 3B (Nous pouvons également utiliser tous les autres modèles de Pi)
- Carte micro SD-16 Go
- Capteur DHT11
- Alimentation Micro USB 5V, 2.4A
Azure IoT avec Raspberry Pi - Schéma matériel
Le schéma de circuit complet pour le projet Azure IoT avec Raspberry Pi est illustré ci-dessous.Il a été construit à l'aide de fritzing. Suivez le schéma du circuit et les connexions pour réaliser le circuit vous-même.
Le circuit ci-dessus envoie des données de température et d'humidité à Microsoft IoT Hub. Dans ce circuit, nous avons utilisé un capteur DHT11 pour collecter les données de température et d'humidité et nous utilisons un Raspberry Pi 3B comme dispositif de traitement de données. Le capteur DHT11 a trois broches. Les broches VCC et GND sont utilisées pour fournir une alimentation 5 V CC au capteur et la broche de sortie de données du DHT11 est connectée au GPIO4 du Raspberry Pi. Si vous souhaitez apprendre à interfacer le capteur de température et d'humidité DHT11 avec Raspberry Pi, vous pouvez consulter notre article précédent sur le sujet. Nous avons également utilisé ce capteur pour construire la station météo IoT Raspberry Pi.
Programmation de Raspberry Pi pour publier des données sur Azure IoT Hub
Avant de commencer le codage de ce projet, nous devons créer un shell cloud Azure (CLI) dans le portail Azure. Cela vous sera utile à bien des égards. Pour cela, cliquez sur le bouton Azure cloud shell dans le portail comme indiqué ci-dessous. Cliquez ensuite sur l'option de création de stockage, marquée en rouge.
Une fois fait, vous pouvez ouvrir la CLI, et exécutez les commandes suivantes pour installer le module complémentaire Azure » s qui seront utilisées pour afficher les données du capteur.
az extension add --name azure-cli-iot-ext
Une fois cela fait, nous devons installer des dépendances sur le Raspberry Pi pour communiquer avec le capteur DHT11 et pour faciliter le processus de communication pour les services Azure IoT. Pour cela, ouvrez un terminal Raspberry Pi pour installer les packages dépendants utilisés dans le projet.
Tout d'abord, nous devons télécharger la bibliothèque DHT pour Raspberry Pi, puis l'extraire du dossier racine et exécuter la commande suivante pour l'installer.
installation sudo python setup.py
Une fois l'installation réussie, exécutez les commandes suivantes pour installer tous les packages dépendants sur Azure IoT Hub.
sudo pip3 installer azure-iot-device sudo pip3 installer azure-iot-hub sudo pip3 installer azure-iothub-service-client sudo pip3 installer azure-iothub-device-client
Une fois que nous avons terminé l'installation de tous les prérequis, il est temps d'écrire le code en Python. Pour ce faire, importez d'abord toutes les bibliothèques:
importation aléatoire importation Adafruit_DHT heure d'importation depuis azure.iot.device importation IoTHubDeviceClient, Message
Dans ce projet, nous utilisons la broche 4 du Raspberry Pi pour traiter les données des données DHT11, elles doivent donc être déclarées comme indiqué.
capteur = Adafruit_DHT.DHT11 broche = 4
Ensuite, nous définissons la chaîne de connexion du code. Remplacez-le par la chaîne de connexion principale de votre appareil que nous avons enregistrée précédemment.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Ensuite, nous créons un tableau qui sera utilisé pour envoyer les données à Azure IoT Hub. Cela peut être fait comme indiqué ci-dessous.
MSG_SND = '{{"température": {température}, "humidité": {humidité}}}'
Ensuite, nous avons défini une boucle while. Dans la boucle while, les données d'humidité et de température sont traitées à l'aide de la fonction Adafruit_DHT.read_retry . De plus, nous définissons deux variables spéciales et affectons les données de sortie à ces variables.
while True: humidité, température = Adafruit_DHT.read_retry (capteur, broche)
Ensuite, une fonction est écrite pour connecter l'IoT Hub à l'aide des paramètres de connexion que nous avons précédemment définis.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) client de retour
Enfin, à l'étape suivante, les données de température et d'humidité sont envoyées à Azure Hub, en utilisant le format indiqué dans le code ci-dessous. De plus, nous avons utilisé une méthode try and catch pour identifier s'il y a une erreur dans le code.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Envoi de données à IoT Hub, appuyez sur Ctrl-C pour quitter") tandis que True: msg_txt_formatted = MSG_SND.format (température = température, humidité = humidité) message = Message (msg_txt_formatted) print ("Envoi du message: {}". format (message)) client.send_message (message) print ("Message envoyé avec succès") time.sleep (3)
Publier des données sur Azure IoT Hub - Test
Après avoir écrit avec succès le code, compilez-le et recherchez d'éventuelles erreurs. Si le bloc de code est compilé avec succès, exécutez le code. Dans la fenêtre Terminal, vous devriez voir le message disant «Message envoyé avec succès». La capture d'écran de la fenêtre est présentée ci-dessous:
Maintenant, pour voir les données dans Azure IoT Hub, accédez au portail, cliquez sur le terminal CLI et exécutez les commandes suivantes en remplaçant vos informations d'identification.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
Remarque:
Remplacez XYZ par le nom de votre hub et votre identifiant d'appareil.
Après avoir exécuté la commande ci-dessus, vous devriez obtenir les données comme indiqué ci-dessous à l'écran. Ce sont les mêmes données qui ont été envoyées depuis Raspberry Pi.
Cela marque la fin de ce tutoriel, j'espère que vous avez aimé l'article et appris quelque chose de nouveau. Si vous avez des questions concernant l'article, vous pouvez les laisser dans la section commentaires ci-dessous. Ou vous pouvez utiliser notre forum électronique pour obtenir une réponse plus rapide et meilleure.