Comment utiliser MQTT en programmation : Guide complet pour les débutants

Estimated read time 7 min read

Description : Découvrez comment utiliser MQTT en programmation. Ce guide complet pour les débutants explique tout ce que vous devez savoir sur MQTT, y compris son fonctionnement, ses avantages et sa mise en œuvre pratique.

MQTT est un protocole de messagerie léger qui est largement utilisé dans l’Internet des objets (IoT) et d’autres applications de communication en temps réel. Ce protocole est particulièrement adapté aux environnements avec une bande passante limitée et des connexions instables. Dans cet article, nous allons vous guider à travers les étapes de base pour utiliser MQTT en programmation.

  1. Comprendre le fonctionnement de MQTT

MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie de type publish-subscribe (pub-sub) qui permet à plusieurs clients de communiquer via un broker. Les clients peuvent publier (publish) des messages sur un sujet (topic) spécifique, tandis que d’autres clients peuvent s’abonner (subscribe) à ce sujet pour recevoir des messages.

Le broker MQTT est un serveur intermédiaire qui reçoit les messages publiés par les clients et les transmet aux clients abonnés aux sujets correspondants. Le protocole MQTT est basé sur le protocole TCP/IP,

ce qui le rend efficace pour la communication sur les réseaux à faible bande passante.

  1. Installer un broker MQTT

Avant de commencer à utiliser MQTT en programmation, vous devez installer un broker MQTT sur votre ordinateur ou sur un serveur. Il existe de nombreux brokers MQTT disponibles, tels que Mosquitto, HiveMQ et EMQX. Pour installer Mosquitto, vous pouvez utiliser les commandes suivantes dans un terminal :

sudo apt-get update
sudo apt-get install mosquitto
  1. Écrire du code pour publier et souscrire à des sujets MQTT

Une fois que vous avez installé un broker MQTT, vous pouvez écrire du code pour publier et souscrire à des sujets MQTT. Pour cela, vous aurez besoin d’une bibliothèque MQTT pour votre langage de programmation préféré. Voici quelques exemples de bibliothèques MQTT populaires :

  • Eclipse Paho pour Java, C, C++, Python, JavaScript et d’autres langages
  • Adafruit MQTT pour Python
  • MQTT.js pour Node.js

Voici un exemple de code Python qui publie un message sur un sujet MQTT :

import paho.mqtt.publish as publish

publish.single("mon/sujet", "Hello, world!", hostname="localhost")

Et voici un exemple de code Python qui s’abonne à un sujet MQTT et affiche les messages reçus :

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("mon/sujet")

def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect("localhost", 1883, 60)

client.loop_forever()
  1. Utiliser MQTT dans des projets réels

Maintenant que vous avez appris les bases de l’utilisation de MQTT en programmation, vous pouvez l’utiliser dans des projets réels. MQTT est utilisé dans de nombreux cas d’utilisation de

l’Internet des objets (IoT), tels que la surveillance de la qualité de l’air, la surveillance des équipements industriels, la collecte de données de capteurs, etc. MQTT peut également être utilisé dans d’autres applications de communication en temps réel, telles que les jeux en ligne, les applications de chat en direct, etc.

L’un des avantages de MQTT est sa faible consommation de bande passante, ce qui le rend adapté aux environnements avec des connexions Internet limitées ou instables. De plus, MQTT prend en charge des fonctionnalités telles que la QoS (Quality of Service), qui garantit la livraison fiable des messages.

En résumé, MQTT est un protocole de messagerie léger et efficace qui est largement utilisé dans l’Internet des objets et d’autres applications de communication en temps réel. En utilisant un broker MQTT et une bibliothèque MQTT pour votre langage de programmation préféré, vous pouvez publier et souscrire à des sujets MQTT et intégrer MQTT dans vos projets de programmation.

Comment créer un serveur MQTT sur Raspberry Pi ?

Pour créer un serveur MQTT sur Raspberry Pi, vous pouvez utiliser un logiciel open-source appelé Mosquitto. Voici les étapes à suivre :

  1. Installer Mosquitto : Ouvrez un terminal sur votre Raspberry Pi et exécutez la commande suivante pour installer Mosquitto :
sudo apt-get install mosquitto mosquitto-clients

Vérifier que Mosquitto est en cours d’exécution : Après l’installation de Mosquitto, il devrait être en cours d’exécution automatiquement. Vous pouvez vérifier cela en exécutant la commande suivante :

sudo systemctl status mosquitto

Cette commande affichera l’état de Mosquitto. Si le service est en cours d’exécution, vous devriez voir un message indiquant « active (running) ».

  1. Configurer Mosquitto : Le fichier de configuration de Mosquitto est situé à l’emplacement /etc/mosquitto/mosquitto.conf. Vous pouvez utiliser ce fichier pour configurer des options telles que le port d’écoute et la sécurité.
  2. Testez votre serveur MQTT : Pour tester votre serveur MQTT, vous pouvez utiliser un client MQTT tel que Mosquitto_sub ou Mosquitto_pub. Par exemple, pour publier un message sur un sujet MQTT, vous pouvez exécuter la commande suivante :
mosquitto_pub -h localhost -t mytopic -m "Hello, world"

Cela publiera le message « Hello, world » sur le sujet « mytopic ».

  1. Utilisez un client MQTT pour interagir avec votre serveur : Pour interagir avec votre serveur MQTT, vous pouvez utiliser un client MQTT tel que Mosquitto_sub ou Mosquitto_pub. Par exemple, pour vous abonner à un sujet MQTT et recevoir des messages, vous pouvez exécuter la commande suivante :
mosquitto_sub -h localhost -t mytopic

Cela vous abonnera au sujet « mytopic » et vous recevrez tous les messages publiés sur ce sujet.

Voilà ! Vous avez créé un serveur MQTT sur Raspberry Pi et vous êtes prêt à l’utiliser dans vos projets IoT.

créer un client MQTT sur Raspberry Pi

Pour créer un client MQTT sur Raspberry Pi qui se connecte à un serveur et affiche les données dans une page web HTML, JavaScript et CSS, vous pouvez suivre les étapes suivantes :

  1. Installez le client MQTT sur votre Raspberry Pi : Pour installer le client MQTT, vous pouvez exécuter la commande suivante dans un terminal :
sudo apt-get install mosquitto-clients

Écrivez le code JavaScript pour se connecter au serveur MQTT : Dans votre fichier JavaScript, vous pouvez utiliser la bibliothèque MQTT.js pour se connecter au serveur MQTT. Voici un exemple de code qui se connecte à un serveur MQTT et s’abonne à un sujet spécifique :

var client = mqtt.connect('ws://[IP-ADDRESS]:[PORT]')

client.on('connect', function () {
  client.subscribe('mytopic')
})

client.on('message', function (topic, message) {
  console.log(message.toString())
})

Créez une page HTML : Dans votre page HTML, vous pouvez créer une zone de texte pour afficher les données reçues du serveur MQTT. Voici un exemple de code HTML qui crée une zone de texte :

Ajoutez du code JavaScript pour afficher les données dans la zone de texte : Dans votre fichier JavaScript, vous pouvez ajouter du code pour afficher les données reçues du serveur MQTT dans la zone de texte. Voici un exemple de code qui ajoute les données à la zone de texte :

var client = mqtt.connect('ws://[IP-ADDRESS]:[PORT]')

client.on('connect', function () {
  client.subscribe('mytopic')
})

client.on('message', function (topic, message) {
  console.log(message.toString())
  var data = document.getElementById('mqtt-data')
  data.value += message.toString() + '\n'
})

Personnalisez votre CSS : Enfin, vous pouvez personnaliser le style de votre page en utilisant des fichiers CSS. Voici un exemple de code CSS qui ajoute une couleur de fond à la page :

body {
  background-color: #f0f0f0;
}

Voilà ! Vous avez créé un client MQTT sur Raspberry Pi qui se connecte à un serveur et affiche les données dans une page web HTML, JavaScript et CSS. N’oubliez pas de remplacer [IP-ADDRESS] et [PORT] par l’adresse IP et le port de votre serveur MQTT.

You May Also Like

More From Author