Accueil > Azure IoT Hub : définition et utilisation
Adil Benmekki
11 janvier 2022
Read this post in English

Azure IoT Hub : définition et utilisation

Azure IoT Hub est la solution IoT PaaS de Microsoft qui joue le rôle de gateway entre les objets connectés et la plateforme Cloud.

 

Azure IoT hub

Pour en savoir plus sur l’IoT, n’hésitez pas à consulter notre article « Introduction à l’IoT : comment fonctionne l’Internet des objets ? »

 

A quoi sert IoT Hub ?

 

IoT Hub remplit plusieurs rôles que nous vous invitons à découvrir ci-dessous.

 

Rôle d’IoT Hub dans la communication

 

IoT Hub permet une communication bidirectionnelle entre le Cloud et les objets connectés. Il supporte les protocoles de communication AMQP, MQTT (Over TCP) et HTTPS.

La communication se fait au moyen de « messaging/Event », gérés par un « Event hub » wrapper dans l’IoT Hub.

 

IoT Hub et Device Identity Registry

 

IoT Hub maintient un registre d’identité de tous les devices connectés à la plateforme. Il stocke les informations sur les dispositifs, leurs données d’authentification et leurs droits d’accès. Pour qu’un device se connecte à l’IoT Hub, il doit obligatoirement être déclaré sur ce dernier.

 

IoT Hub et Authentification

 

Azure IoT Hub accorde l’accès aux points terminaux en vérifiant un jeton par rapport aux politiques d’accès partagées et aux références de sécurité du registre d’identité. Vous pouvez utiliser n’importe quel certificat X.509 pour authentifier un dispositif avec IoT Hub. Les certificats pris en charge comprennent :

  • un certificat X.509 existant ;
  • un certificat X.509 signé par une autorité de certification ;
  • un certificat X-509 auto-généré et auto-signé.

 

Fonctionnalité Device Twins d’IoT Hub

 

Cette fonctionnalité permet de garder dans le Cloud le statut et les configurations de tous les dispositifs connectés à la plateforme. Pour cela, IoT Hub génère et maintient, pour chaque dispositif qui se trouve dans la plateforme, des fichiers JSON dans lesquels se trouvent des informations sur l’état du dispositif et ses configurations. Ces fichiers sont synchronisés de façon périodique avec les devices, ce qui permet d’avoir une image sur leur état sans avoir à communiquer un par un avec eux, mais également de mettre à jour les configurations en changeant tout simplement ce fichier, qui sera par la suite synchronisé avec le device.

 

Service d’approvisionnement des dispositifs de l’IoT Hub

 

Le Device Provisioning Service de l’IoT Hub est un service d’assistance pour l’IoT Hub. Il permet un approvisionnement « zéro contact » avec IoT Hub sans nécessiter d’intervention humaine : les clients peuvent approvisionner des millions de périphériques de manière sécurisée et évolutive.

 

Démonstration de l’IoT Hub

 

La meilleure façon d’appréhender cet outil est de faire une démonstration.

Je vous propose aujourd’hui de créer un IoT Hub et d’ajouter un device (simulateur de device proposé par Microsoft) qui enverra de la télémétrie (température + humidité) que l’on affichera sur Power BI.

 

Prérequis :

Pour réaliser cette démo, vous devrez être en possession :

  • d’un Compte Azure
  • d’un Compte Power BI (on verra dans l’article comment le créer)

 

Étape 1 : création de l’IoT Hub

 

Commençons par créer notre IoT Hub.

  • Sur le portail Azure, allez sur « Create a resource » puis dans la catégorie « Internet of Things » : vous trouverez IoT Hub :

création de l’IoT Hub

 

  • Renseignez les champ « name » et « région » :

 

IoT Hub name and region

  • Dans cet écran choisissez l’option « public endpoint » puis passez à la suite :

 

IoT hub publicn endpoint

 

  • Choix du tier :

IoT Hub propose deux niveaux : Standard et Basic. La principale différence entre les deux est le type de communication. Le niveau standard d’IoT Hub permet de bénéficier d’une communication bidirectionnelle entre device et Cloud, là où le niveau Basic ne propose qu’une communication unidirectionnelle (Device to Cloud).

Le niveau standard propose plus de fonctionnalités, comme le IoT Edge, Device Twin, etc. (pour en savoir plus, je vous invite à consulter la documentation Microsoft sur comment choisir le bon tier pour votre solution).

Pour les besoin de la démo, choisissez le tier F1 (Free tier), qui équivaut au niveau Standard mais avec une capacité réduite de messages par jour :

 

Microsoft Iot Hub free tier gratuit

 

Continuez jusqu’à la fin sans rien changer et cliquez sur créer.

 

Étape 2 : créer un device

  • Une fois votre IoT Hub créé, dans le bloc « Explorer », entrez dans « IoT devices » :

 

Créer un device IoT explorer

 

Cliquez sur « ajouter » et donnez un nom à votre device.

 

  • Device Authentication :

IoT Hub propose deux méthodes d’authentification pour la communication entre le device et le hub. Vous pouvez utiliser une authentification basée sur un jeton SAS ou une authentification par certificat X.509.

La méthode du jeton basée sur SAS permet d’authentifier chaque appel effectué par le dispositif au hub IoT en associant la clé symétrique à chaque appel. L’authentification basée sur X.509 permet d’authentifier un dispositif IoT au niveau de la couche physique dans le cadre de l’établissement de la connexion suivant la norme TLS (Transport Layer Security).

Pour notre démo, nous utiliserons une SAS key. Renseignez les informations comme ci-dessous :

 

authentification IoT hub

Une fois votre device créé, cliquez dessus, récupérez la chaîne de connexion et gardez-la de côté :

 

Iot Hub chaine de connexion

 

Étape 3 : envoyer de la télémétrie à IoT Hub

 

Nous allons maintenant envoyer de la télémétrie à notre IoT Hub. Pour cela, nous utiliserons un simulateur composé d’un board Raspberry P I3 et d’un capteur de température/humidité de AdaFruit BME280.

 

Board Raspberry Azure

 

Récupérez la chaîne de connexion que vous aviez précédemment mise de côtéet collez-la dans le champ « connectionString ».

Appuyez sur « Run ».

A chaque clignotement de la led , le simulateur envoie les mesures de température et d’humidité à l’IoT Hub.

Vous pouvez visualiser les messages envoyés dans la console en-dessous du Run.

 

Iot Hub azure simulateur

Si vous revenez à l’onglet « Overview » de votre Iot Hub, vous allez remarquer sur le graphique un changement du nombre des messages utilisés.

 

overview iot hub

 

Pour voir les messages envoyés à l’Iot Hub, on peut utiliser Cloud Shell :

 

IoT CloudShel

 

Tapez la commande suivante :

az iot hub monitor-events --hub-name iothubdemoblog --device-id simulateurdemoiot

 

A noter : n’arrêtez pas le simulateur. Laissez-le tourner en arrière-plan et envoyer un maximum de messages, cela nous sera utile à la fin de la démo.

 

IoT Hub Azure Microsoft Demo

 

Étape 4 : préparer Power BI pour recevoir les données

 

Naviguez jusqu’à la page d’inscription à Power BI et utilisez le formulaire d’inscription.

A noter :  il vous faut impérativement un compte professionnel pour créer un compte gratuit (les adresse mail Gmail , Yahoo ne fonctionneront pas).

Une fois l’inscription terminée, connectez-vous à Power BI avec vos informations d’identification : vous atterrissez sur votre espace de travail par défaut.

Cliquez sur « WorkSpace » puis « Create a workspace » (cf ci-dessous) et créez un workspace dédié à notre démo :

 

Iot Hub create a workspace

 

Étape 5 : configuration des événements

 

Maintenant que nous avons créé un nouveau Power BI, mettons en place les éléments restants.

Retournez sur le portail Azure de l’IoT Hub que nous avons créé. Dans le menu latéral de la page du IoT Hub, sélectionnez « Endpoints » puis « Events » dans la section « Built-in endpoints ».

Lorsque le formulaire s’ouvre, sous la section « Consumer groups », créez un nouveau groupe de consommateurs avec le nom « demoblog », comme illustré ci-dessous, puis cliquez sur le bouton « Save » pour enregistrer les modifications :

 

Iot Hub demoblog

 

Comme précédemment mentionné, IoT Hub est basé sur un Event Hub : de la même façon que dans un Event Hub, le Consumer Group permet à plusieurs consommateurs différents de consommer les même messages, chacun avec son propre offset :

Event Hub Offset

Étape 6 : créer un Stream Analytics

 

Azure Stream Analytics est un moteur d’analyse en temps réel et de traitement d’événements complexes, conçu pour analyser et traiter de gros volumes de données provenant simultanément de plusieurs sources en streaming rapide.

Voyons comment créer une tâche d’analyse de flux.

Cherchez « Stream Analytics job » dans la barre de rechercher sur le portail Azure. Remplissez le formulaire de création du Stream Analytics job, comme illustré ci-dessous :

 

formulaire de création du Stream Analytics job

 

Cliquez ensuite sur le bouton « Créer ». La création d’un nouveau Stream Analytics prendra quelques minutes. Gardez un œil sur la section de notification pour toute mise à jour.

Une fois le Job Analytics créé, il apparaît sur votre tableau de bord. Sélectionnez-le et accédez à la section Inputs sous « Job Topology » :

IoT Hub Job Topology 

 

Ajoutons maintenant notre source de données qui correspond aux messages reçus dans le IoT Hub.

Cliquez sur « +Add stream input » et sélectionnez IoT Hub, comme indiqué dans la capture d’écran précédente.

Donnez le nom « Iottelemetry » à l’alias de l’entrée et choisissez le consumer group « demoblog », puis cliquez sur « Enregistrer » :

 

IoT hub new input

 

Accédez ensuite à la section « Outputs » sous « Job Topology » :

 

Microsoft Azure IoT Hub output

 

Cliquez sur « +Add » et sélectionnez Power BI, comme indiqué dans la capture d’écran précédente, et remplissez les champs comme ci-dessous :

 

IoT Hub Power BI

 

Cliquez sur le bouton « Autoriser » pour autoriser le hub IoT à créer la table et les ensembles de données, ainsi qu’à diffuser les données. Cliquez sur « Enregistrer ».

Ensuite, cliquez sur « Query » sous « Job Thopology »  et mettez-le à jour comme indiqué dans la capture d’écran suivante :

 

Iot Hub Microsoft étape par étape

 

La requête que nous avons écrite est plutôt simple : elle ne fait qu’envoyer les données de notre « input » (ici « IoT hub ») à notre « output », le Power BI.

Cliquez à présent sur le bouton Enregistrer. Allez ensuite dans la section « Overview », cliquez sur « start », sélectionnez « Now », puis cliquez sur « Start » :

 

IoT Hub plateforme aperçu

 

Après quelques secondes, le job sera lancé et commencera à envoyer les données de l’IoT Hub vers le Power BI.

PS : Revenez au simulateur qui envoie les données de température et d’humidité et assurez-vous que les messages sont toujours envoyés.

 

Étape 7 : création du dashboard

Maintenant que les données sont envoyées vers Power BI via le hub Azure IoT et le Stream Analytics, nous allons commencer à construire le tableau de bord :

1. Connectez-vous à Power BI et accédez à l’espace de travail « Iottelemetry » créé précédemment. Sélectionnez « Datasets ». Vous devriez voir quelque chose de similaire à la capture d’écran illustrée ici :

 

Iot Hub PowerBI dataset

2. En utilisant la première icône sous la colonne ACTIONS, pour l’ensemble de données Iottelemetry, créez un nouveau rapport.

3. Lorsque vous êtes dans la page du rapport, sous VISUALISATIONS, sélectionnez le graphique linéaire, faites glisser EventEnqueuedUtcTime dans le champ Axe, et définissez les champs « temp » et « humd » suivant les valeurs indiquées dans la capture d’écran ci-après :

Visualisation IoT Hub PowerBI

 

Une plateforme IoT mise en œuvre de bout en bout sur Azure

 

Nous avons à présent terminé la mise en œuvre d’une plateforme « Type » IoT de bout en bout sur Azure avec :

  • l’IoT Hub pour la connexion au device et la collecte des télémétries,
  • Azure Stream Analytics pour l’analyse et le traitement d’événements en temps réel,
  • Et Power BI pour la visualisation des données .

Plusieurs aspects n’ont pas été approfondis dans cet article (comme l’authentification device et le provisioning) : ces point feront l’objet d’un prochain article consacré aux best practices en matière d’authentification et de device provisioning.

D’ici là, n’hésitez pas à poser vos questions dans les commentaires !

Nos autres articles
Commentaires
Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Restez au courant des dernières actualités !
Le meilleur de l’actualité sur le Cloud, le DevOps, l’IT directement dans votre boîte mail.