5.3 Échange de données par le protocole MQTT

Un autre protocole permettant aux objets connectés de publier leurs données et à nos applications d’y accéder est le protocole MQTT (Message Queuing Telemetry Transport). Ce dernier est léger et fonctionne sous le principe de publications et d’abonnements (Pub/Sub). Cependant, on doit utiliser un serveur MQTT et des bibliothèques. Pour essayer ce protocole, on peut utiliser le serveur test.mosquitto.org ou installer notre propre serveur Mosquitto en suivant les instructions de ProjetsDIY. On doit aussi installer la bibliothèque Paho MQTT, avec la commande pip install paho-mqtt sur le Raspberry Pi. Cette bibliothèque permet de programmer nos objets et nos applications comme des clients MQTT qui vont se connecter à un serveur MQTT et qui peuvent autant y publier des données, dans des canaux associés à des sujets, et/ou s’abonner à des canaux pour recevoir les messages qui y sont publiés.

Un serveur MQTT peut se connecter à des objets connectés ou à des applications.

Figure 92 — Utilisation d’un serveur MQTT


5.3.1 Publier un message MQTT

Une fois la bibliothèque installée sur le Raspberry Pi, on peut créer un client MQTT et le connecter à un serveur pour y publier un message dans le canal du sujet de notre choix. Voir l’exemple de code à la Figure 93. Lorsqu’on crée le client, on doit lui choisir un identifiant unique. Ensuite, on se connecte au serveur MQTT, dans ce cas-ci c’est un serveur TCP dont on doit indiquer l’adresse URL et le port utilisé. Si la connexion est réussie, on est prêt à publier nos données.

Figure 93 — Code pour publier un message MQTT

Figure 93 — Code pour publier un message MQTT

Vidéo 57 : Utiliser MQTT sur le Raspberry Pi pour publier des données


5.3.2 S’abonner à un sujet MQTT

D’un autre côté, on peut vouloir abonner nos objets à des sujets MQTT, ce qui leur permettrait de réagir à des messages publiés par nos applications. La Figure 94 illustre l’abonnement à un sujet à l’aide de la commande subscribe(). On doit aussi créer une fonction qui est exécutée lors de la réception d’un message, l’associer à notre client MQTT et démarrer la boucle du client pour écouter l’arrivée de messages.

Figure 94 — Code pour s’abonner à un sujet MQTT

Figure 94 — Code pour s’abonner à un sujet MQTT

Vidéo 58 : Utiliser MQTT sur le Raspberry Pi pour s’abonner aux messages


5.3.3 Exercices avec le protocole MQTT