Le MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie léger conçu pour les communications machine-à-machine (M2M) et l’Internet des objets (IoT). Il est particulièrement utile dans des environnements où la bande passante est limitée, la latence élevée ou la fiabilité critique. Voici un aperçu détaillé de la communication MQTT, ses composants, son fonctionnement et ses avantages.
home/temperature
, office/lights/status
.home/temperature
.home/temperature
pour afficher les données de température.Voici un exemple de code simple pour un ESP32 utilisant la bibliothèque PubSubClient
pour se connecter à un broker MQTT, publier et s’abonner à un topic :
#include #include const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqtt_server = "broker.hivemq.com"; WiFiClient espClient; PubSubClient client(espClient); void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived on topic: "); Serial.print(topic); Serial.print(". Message: "); String messageTemp; for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); messageTemp += (char)payload[i]; } Serial.println(); } void reconnect() { while (!client.connected()) { Serial.print("Attempting MQTT connection..."); if (client.connect("ESP32Client")) { Serial.println("connected"); client.subscribe("home/temperature"); } else { Serial.print("failed, rc="); Serial.print(client.state()); delay(5000); } } } void setup() { Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); // Publier un message static unsigned long lastMsg = 0; unsigned long now = millis(); if (now - lastMsg > 2000) { lastMsg = now; String msg = "25.3"; Serial.print("Publishing message: "); Serial.println(msg); client.publish("home/temperature", msg.c_str()); } }
Le protocole MQTT est idéal pour les applications IoT en raison de sa légèreté, sa fiabilité et sa simplicité. Il permet une communication efficace entre des milliers de dispositifs connectés, même dans des environnements à faible bande passante. La compréhension et l’utilisation de MQTT avec des microcontrôleurs comme l’ESP32 et l’ESP8266 facilitent le développement d’applications IoT robustes et évolutives.
Domotique – informatique – électronique – dictionnaire – projets
Copyright 2024