MQTT (Message Queue Telemetry Transport) est un protocole de transfert de données de machine à machine (M2M) et le principal protocole de messagerie pour l'Internet industriel des objets (IIoT). Bien qu'il existe actuellement un certain nombre de technologies et de protocoles IoT concurrents, l'en-tête extrêmement léger (2 octets), le modèle de publication/abonnement et les capacités bidirectionnelles de MQTT sont parfaitement adaptés aux exigences des systèmes de contrôle industriels.
MQTT est un protocole de publication/abonnement qui permet aux périphériques du réseau (par exemple, notre capteur de CO2) de publier à un courtier. Les clients (par exemple, une application web) se connectent à ce courtier, qui assure ensuite la médiation entre les communications des deux dispositifs. Chaque appareil peut s'abonner ou s'enregistrer à certains sujets.

Contrairement aux modèles habituels de sondage/réponse de nombreux protocoles, qui ont tendance à saturer inutilement les connexions de données avec des données immuables, les modèles de publication/abonnement maximisent en fait la largeur de bande disponible.
MQTT a été créé dans le but de collecter des données à partir du plus grand nombre possible d'appareils, puis de les transporter vers une infrastructure informatique. Il est léger et donc idéal pour la surveillance à distance, notamment dans les connexions M2M où un code à faible encombrement est nécessaire ou lorsque la bande passante du réseau est limitée.
Comme il peut y avoir de nombreux capteurs générant des données et qu'il y a généralement aussi de nombreux "clients", le nombre de connexions serait énorme s'ils étaient connectés 1:1. Pour éviter cela, MQTT dispose d'une couche intermédiaire : le courtier, indiqué ci-dessus par la forme ronde.
Pour faire simple, cela se résume à ce qui suit :
- Un capteur (que nous appellerons désormais "client éditeur") se présente au courtier et lui dit "sous ce nom, je vais proposer des données pour la période à venir, bonne chance". Le nom sous lequel il soumettra ses données est appelé "Sujet". Nous notons également que le client éditeur n'a qu'une seule connexion à maintenir (c'est-à-dire avec le courtier), quelle que soit l'origine des données ou l'endroit où elles sont nécessaires.
- Un ou plusieurs clients (tableau de bord, base de données d'enregistrement, etc.), que nous appelons "client abonné", font rapport au courtier et disent "Je voudrais m'abonner à ce sujet spécifique". À partir de ce moment, chaque fois qu'il y a de nouvelles données dans ce sujet, le courtier les communique à tous les "abonnés".

Nous notons également qu'avec l'ajout du courtier, le client éditeur et le client abonné ne doivent maintenir qu'une seule connexion (c'est-à-dire avec le courtier), quel que soit le nombre de capteurs ou le nombre d'endroits où les données sont finalement nécessaires.

Comment créer un tableau de bord web
D'après l'explication ci-dessus, nous voyons que nous avons besoin de trois composants. Un client public (notre capteur de CO2 bien sûr), un courtier et un client abonné (le tableau de bord).
En tant que tableau de bord et courtier, nous utiliserons Tago.io.
Tago.io
Si vous n'avez pas encore de compte Tago.io, créez-en un d'abord (compte gratuit possible). Une fois qu'il est créé, créez un nouveau dispositif.

Nommez votre dispositif, définissez Payload comme JSON et cliquez sur Create my Device.


Sous l'onglet Informations générales, vous pouvez créer un Token. Vous aurez besoin de ce jeton pour configurer le capteur de CO2.
Entrez un nom de jeton et cliquez sur Générer.


Cliquez sur l'icône de l'œil pour voir le jeton.


Nous aurons besoin de ce jeton pour configurer notre capteur de CO2.
Client public
Le capteur de CO2 est équipé d'un système Wi-Fi et d'un support MQTT (les deux sont désactivés par défaut). Nous devons donc activer les deux. Pour les activer, appuyez sur le bouton situé à droite du connecteur USB. La sonde de CO2 va maintenant créer un nouveau réseau Wi-Fi avec le nom (SSID) operame-xxxx (xxxx est un numéro unique). Ce nom est également affiché à l'écran.

Connectez-vous maintenant à ce réseau (par exemple via votre smartphone ou votre ordinateur). Ensuite, ouvrez un navigateur web et surfez vers 192.168.4.1. Vous verrez l'écran suivant.

Cochez la case Wi-Fi et saisissez le SSID et le mot de passe de votre réseau Wi-Fi (le réseau Wi-Fi auquel vous souhaitez connecter votre capteur de CO2).
Cochez également la case MQTT et remplissez les informations sur le courtier Tago.io.
- Courtier : mqtt.tago.io
- Port TCP du courtier : 1883
- Nom d'utilisateur MQTT : Token
- Mot de passe MQTT : votre jeton de dispositif créé dans Tago.io
Il suffit d'entrer les sujets. Vous êtes libre de donner n'importe quel nom à un sujet. Mais comme vous devrez l'utiliser plus tard dans Tago.io, il est préférable de rester simple.
- Sujet pour le CO2
- Sujet pour la température : temp
- Sujet pour l'humidité : hum
Si vous souhaitez également envoyer la température et l'humidité, vous devez cocher la case "Activer MQTT pour la température et l'humidité".
Cliquez ensuite sur Enregistrer (en bas à droite), puis sur Redémarrer (en haut à gauche). Le capteur de CO2 va redémarrer et envoyer des données au Broker.
Inspecteur en direct
Les données sont maintenant envoyées par le capteur de CO2 via MQTT. Pour visualiser ces données dans Tago.io, vous pouvez utiliser l'inspecteur en direct.
Sélectionnez votre appareil, puis l'onglet Live Inspector. Appuyez sur le bouton vert Play.

Puis attendez de voir les données qui arrivent.

Si vous voyez les messages arriver et que les données semblent correctes, vous savez que la connexion fonctionne. Mais rien n'est encore sauvé. Nous devons maintenant créer une action.
Action
Pour ce faire, allez dans Actions et cliquez sur Ajouter une action.

Donnez un nom à votre action. Définissez le déclencheur sur MQTT Topic. Choisissez Insérer dans le seau de dispositifs comme type d'action. Cliquez ensuite sur Créer mon action.

Sélectionnez ensuite votre appareil et ajoutez les sujets MQTT. N'oubliez pas d'appuyer sur Enregistrer pour sauvegarder vos modifications.

Revenez maintenant à votre appareil et à l'inspecteur en direct. Cliquez à nouveau sur le bouton vert Play et attendez que les données arrivent.

Vous pouvez maintenant voir que les données sont conservées dans un Bucket. Remarquez également que nous obtenons les trois différentes variables (CO2, température et humidité) avec leur valeur et leur unité.
Comme le capteur de CO2 transmet déjà les données au format Tago.Io, nous n'avons pas besoin de normaliser les données.

Nous pouvons maintenant créer un tableau de bord.
Tableau de bord
Pour ajouter un tableau de bord, cliquez sur le symbole plus à côté de Tableaux de bord.

Nommez votre tableau de bord et choisissez un tableau de bord normal. Cliquez sur Créer mon tableau de bord pour créer votre tableau de bord.

Cliquez sur Ajouter un widget pour ajouter un widget.

À titre d'exemple, nous allons choisir Display comme widget.

Sélectionnez votre appareil et votre variable. Si nécessaire, donnez-lui un titre approprié et cliquez sur Créer.

Votre widget est maintenant créé et affiche la valeur de CO2 envoyée par votre capteur de CO2.

Nous pouvons maintenant faire de même pour la température et l'humidité.
Cliquez sur l'icône plus en haut à droite.

Cette fois, nous choisissons un widget Solid.

Saisissez un titre approprié, sélectionnez votre appareil et votre variable et ajustez la portée si nécessaire. Cliquez sur Créer pour créer le widget.

La température a maintenant été ajoutée à notre tableau de bord.

Et enfin, nous ajoutons l'humidité.

A partir de maintenant tu peux te laisser aller 🕺