Le protocole MQTT, ou Message Queuing Telemetry Transport, s’impose aujourd’hui comme un standard incontournable dans le monde de l’internet des objets (IoT). Créé en 1999 par Andy Stanford-Clark d’IBM et Arlen Nipper d’Arcom, ce protocole léger et efficace est particulièrement adapté aux environnements où la bande passante et les ressources énergétiques sont limitées. Son association avec le nano-ordinateur Raspberry Pi offre une solution à la fois puissante, économique et accessible pour créer un serveur domotique personnel, capable de centraliser et de gérer les communications entre une multitude d’appareils connectés.
Comprendre le protocole MQTT
Un protocole de messagerie léger et efficace
Le principal atout du MQTT réside dans sa conception minimaliste. Contrairement au protocole HTTP, souvent utilisé pour la navigation web, le MQTT est optimisé pour la transmission de petits paquets de données avec une surcharge minimale. L’en-tête d’un message MQTT ne pèse que 2 octets, ce qui permet des communications extrêmement rapides, évaluées à près de 90 fois la vitesse du HTTP dans des conditions similaires. Cette légèreté le rend idéal pour les microcontrôleurs et les capteurs disposant de peu de puissance de calcul et fonctionnant souvent sur batterie.
Le modèle de communication : publication et abonnement
Le MQTT fonctionne sur un modèle de communication asynchrone dit de publication/abonnement (publish/subscribe). Ce système repose sur trois composants principaux :
- Le publisher (éditeur) : Il s’agit d’un appareil (un capteur de température, par exemple) qui envoie des messages.
- Le subscriber (abonné) : C’est un appareil ou une application (un tableau de bord, un smartphone) qui reçoit les messages.
- Le broker (courtier) : C’est le serveur central qui reçoit tous les messages des éditeurs et les redirige vers les abonnés intéressés.
Les messages ne sont pas envoyés directement d’un appareil à un autre. L’éditeur publie un message sur un sujet (topic) spécifique, comme « maison/salon/temperature ». Le broker reçoit ce message et le transmet à tous les abonnés qui ont préalablement souscrit à ce sujet. Cette architecture découplée est extrêmement flexible : les éditeurs et les abonnés n’ont pas besoin de se connaître ni de savoir où ils se trouvent sur le réseau.
| Caractéristique | Protocole MQTT | Protocole HTTP |
|---|---|---|
| Modèle de communication | Publication/Abonnement | Requête/Réponse |
| Taille de l’en-tête | 2 octets | Variable, souvent > 100 octets |
| Connexion | Persistante (Stateful) | Non persistante (Stateless) |
| Usage principal | IoT, messagerie M2M | Web, transfert de fichiers |
Maintenant que les fondements théoriques du protocole MQTT sont établis, il est temps de passer à la pratique en rassemblant les composants physiques nécessaires à notre projet.
Préparer le matériel nécessaire

Le cœur du projet : le Raspberry Pi
Le choix du Raspberry Pi comme support pour notre serveur MQTT est judicieux en raison de sa faible consommation électrique, de son coût modique et de sa grande communauté d’utilisateurs. N’importe quel modèle récent fera l’affaire, mais un Raspberry Pi 3B+ ou un Raspberry Pi 4 est recommandé pour plus de confort et de performance, surtout si vous prévoyez de connecter de nombreux appareils. Ces modèles disposent d’une connectivité Wi-Fi et Ethernet intégrée, simplifiant grandement la mise en réseau.
-
Raspberry Pi 4 Modèle B (4 Go)Broadcom BCM2711, Quad Core Cortex-A72 (ARM v8) SoC 64 bits @ 1,5 GHz 1 Go, 2 Go, 4 Go ou 8 Go LPDDR4-3200 SDRAM (selon le modèle) 2,4 GHz et 5,0 GHz IEEE 802.11ac sans fil, Bluetooth 5.0, BLE Gigabit Ethernet 2 ports USB 3.0, 2 ports USB 2.0. Raspberry Pi En-tête GPIO 40 broches standard (entièrement rétrocompatible avec les cartes précédentes)
-
db-tronic Raspberry Pi 4 1 Go Starter Kit | Édition 64 Go | Alimentation 15 W | Boîtier | Micro HDMI 4K | Dissipateurs | idéal pour Home Assistant et Le Smart Home✔ Raspberry Pi 4 avec 1 Go de RAM : ordinateur monocarte puissant pour des projets et applications polyvalents. ✔ Alimentation officielle 15W : Alimentation stable et fiable pour votre Raspberry Pi 4. ✔ Boîtier officiel : Protège votre Raspberry Pi et assure un refroidissement optimal lors d'une utilisation intensive. ✔ Carte mémoire 64 Go : offre un stockage généreux pour votre système d'exploitation, vos applications et vos fichiers. ✔ Lecteur de cartes USB pour cartes mémoire : configuration simple et rapide de votre système d'exploitation sur votre PC ou ordinateur portable. ✔ Ensemble de dissipateurs thermiques en aluminium 4 pièces : refroidissement supplémentaire pour des performances et une longévité fiables. ✔ Câble Micro HDMI 4K 1 mètre : parfait pour une sortie vidéo ultra-nette sur des moniteurs ou téléviseurs 4K compatibles. ✔ Emballage db-tronic de haute qualité : Emballage robuste et élégant, idéal pour une expédition en toute sécurité et comme cadeau.
-
db-tronic Raspberry Pi 4 4 Go Starter Kit | Édition Noire 64 Go | Alimentation 15 W | Boîtier Noir | Micro HDMI 4K | Dissipateurs | idéal pour Home Assistant et Le Smart Home✔ Raspberry Pi 4 avec 4 Go de RAM : ordinateur monocarte puissant pour des projets et applications polyvalents. ✔ Alimentation officielle 15W noir : Alimentation stable et fiable pour votre Raspberry Pi 4. ✔ Boîtier officiel noir : Protège votre Raspberry Pi et assure un refroidissement optimal lors d'une utilisation intensive. ✔ Carte mémoire 64 Go : offre un stockage généreux pour votre système d'exploitation, vos applications et vos fichiers. ✔ Lecteur de cartes USB pour cartes mémoire : configuration simple et rapide de votre système d'exploitation sur votre PC ou ordinateur portable. ✔ Ensemble de dissipateurs thermiques en aluminium 4 pièces : refroidissement supplémentaire pour des performances et une longévité fiables. ✔ Câble Micro HDMI 4K 1 mètre : parfait pour une sortie vidéo ultra-nette sur des moniteurs ou téléviseurs 4K compatibles. ✔ Emballage db-tronic de haute qualité : Emballage robuste et élégant, idéal pour une expédition en toute sécurité et comme cadeau.
Les périphériques essentiels
Outre le nano-ordinateur lui-même, quelques éléments sont indispensables pour démarrer. Voici une liste du matériel requis :
- Une carte microSD : Une carte d’au moins 16 Go de classe 10 est conseillée pour installer le système d’exploitation et stocker les données.
-
KEXIN Carte Micro SD 16 Go Lot de 5 Cartes Micro SDHC 16Go UHS-I C10 U1 5 Pièces MicroSD Carte TF Applicable pour Appareils Photo de Sport, Caméra de Surveillance, Dash Cam【Cartes Mémoire MicroSD 16Go】: Capacité de stockage actuelle jusqu'à 14,40 Go, vous pouvez stocker et enregistrer nombreux de photos, de vidéos et de gros fichiers mémoire par cette KEXIN carte mémoire micro SD 【Micro SD Carte avec Haute Vitesse】: KEXIN carte MicroSD correspond à la norme de Class 10 et norme de UHS-I, U1 en offrant une vitesse de prise de vue ultra rapide pour vous permettre d'enregistrer ou de lire le vidéo Full HD avec une bonne qualité.Utilisez notre carte microSD pour stocker vos meilleurs moments préférés de la Coupe du Monde 2022. Vous pouvez les regarder encore et encore pendant les vacances ou les week-ends tranquilles après la Coupe du Monde 2022. 【Carte TF 16 Go avec Large Gamme d'Utilisation】: KEXIN carte microSD peut être utilisée comme une carte SDHC pleine grandeur avec l'aide d'un adaptateur SD, et compatible avec les avec les smartphones, tablettes, appareils photo numériques, PAD, caméras d'action Full HD, vidéojeux, caméra de bord, enregistreur de conduite, système surveillance, caméra de surveillance, et 360°drones 【Haute Qualité】: KEXIN carte micro SD 16go est testée pour résister à des conditions extrêmes, elle porte la résistance à l’eau, à la haute / basse température, antichoc, ce qui vous permet de vous concentrer sur la capture de vos précieux souvenirs dans les sports extrême 【Compacte & Convenient】: La KEXIN carte mémoire micro sd est suffisamment petite pour être portée sur vous partout, et suffisamment puissante pour vous aider à accomplir de grandes choses
-
QUMOX 2pcs Pack 16GB Micro SD Memory Card Class 10 UHS-I 16 GB 16Go Go Carte memoire HighSpeed Write Speed 12MB/S Read Speed Upto 70MB/SQUMOX 2 x 16 Go Classe 10 UHS-I U1 MicroSDHC Écriture : 12 Mo/s Lecture : 70 Mo/s (Testé avec un lecteur de carte USB 3.0) * La vitesse peut varier en fonction de l’ordinateur et du lecteur de carte
-
PNY Elite Carte Mémoire microSDHC 16 Go + Adaptateur SD, Vitesse de Lecture 100 Mo/s, Classe 10 UHS-I, U1 pour vidéo Full HD, 16GBVitesse de lecture jusqu'à 100MB/s Certifié classe 10 UHS-I U1 Adaptateur SD inclus Idéal pour smartphone, tablette, caméra d'action, drone, console de jeux
-
- Une alimentation électrique : Il est crucial d’utiliser l’alimentation officielle ou une alimentation de qualité équivalente (5V, 3A via USB-C pour le Pi 4) pour garantir la stabilité du système.
- Un boîtier (optionnel mais recommandé) : Pour protéger le Raspberry Pi de la poussière et des chocs.
-
Geekworm Boîtier en Aluminium pour Raspberry Pi 4 modèle B - Résistant - Dissipation Thermique Passive - pour Raspberry Pi 4B Uniquement【Pi 4 Aluminum Case】Compatible with Raspberry Pi 4 Model B(8GB/4GB/2GB/1GB) 【Passive Cooling Design】Don't need extra fan, heavy dute case with eight of 174g, with 4 built-in Heatsink Pillars for better heat dissipation 【Better Cooling Solution】equipped with a copper heatsink, can replace the thermal pad at the CPU with the copper heatsink, and attach proper silicone grease (not included) on two sides of copper heatsink to get better heat dissipation 【Material】Aluminum Alloy, efficient thermal conductivity 【Packing List】1 x Raspberry Pi 4 Case, 8 x Thermal Pads(4pcs for backup), 1 x Copper Heatsink, 1 x Screws Pack 【Note】Raspberry pi 4 case with 5V 4A 20W power adapter, refer to ASIN: B09JC6WN1F
-
Miuzei Boîtier pour Raspberry Pi 4 avec Ventilateur 35mm et Grand Dissipateur 15mm - Alimentation USB-C 5V 3A avec Interrupteur Marche/Arrêt - Compatible avec Pi 4 Modèle B 8 Go/4 Go/2 Go【Design visible】Boîtier en acrylique transparent, offrant ainsi une vue claire sur l'état de fonctionnement. Uniquement pour Raspberry Pi 4 modèle B Couche supérieure séparée : design à 3 couches, vous pouvez facilement accéder au GPIO, à l'écran et à l'appareil photo en retirant le couvercle supérieur. Double système de refroidissement : équipé d'un ventilateur silencieux de 35 mm (5500 tr/min) et de 4 dissipateurs thermiques en aluminium. Cela augmente la zone de refroidissement et génère plus de flux d'air pour un refroidissement rapide. Bloc d'alimentation 15 W : bloc d'alimentation USB-C 3 A 5 V de 1,5 m avec interrupteur marche/arrêt. Sortie de tension stable sans messages d'erreur dus à une sous-tension. 【Contenu de la livraison】1x boîtier, 1x ventilateur, 1x bloc d'alimentation, 4x dissipateurs thermiques en aluminium, 4x pieds en caoutchouc et vis avec écrous. Veuillez consulter la vidéo de montage à l'adresse suivante : https://youtu.be/YsahxlVJIrU
-
GeeekPi PWM Boîtier pour Raspberry Pi 4 Model B, avec Ventilateur 40X40X10mm et 4pcs Raspberry Pi 4 Dissipateurs (Noir)Seulement pour Raspberry Pi 4 Modèle B;Couleur blanche: B07X7VKRSX; Boîtier noir avec kit d'alimentation: B07X9R8V96 Facile à assembler en retirant le capot supérieur;Vidéo d'assemblage: https://youtu.be/760iKwRB_48 Avec PWM ventilateur de refroidissement pour dissiper la chaleur du Raspberry Pi; comprend des dissipateurs de chaleur pour une meilleure dissipation de la chaleur Prise en charge de la régulation de vitesse PWM ;Ventilateur super silencieux (taille: 40X40X10mm) Assembling Video:https://www.youtube.com/watch?v=MRdq3GYsDt8
-
- Un ordinateur : Nécessaire pour préparer la carte microSD avec le système d’exploitation.
Une fois tout le matériel réuni, l’étape suivante consiste à donner vie à notre Raspberry Pi en installant le système d’exploitation et le logiciel qui servira de cœur à notre serveur MQTT.
Installation de Raspberry Pi OS et de Mosquitto

Préparation du système d’exploitation
La première étape logicielle est l’installation de Raspberry Pi OS (anciennement Raspbian), la distribution Linux officielle. L’outil Raspberry Pi Imager simplifie grandement ce processus. Il suffit de le télécharger sur votre ordinateur, de sélectionner la version de l’OS souhaitée, de choisir votre carte microSD comme cible et de lancer l’écriture. Il est également possible de préconfigurer le Wi-Fi et d’activer l’accès SSH directement depuis cet outil, ce qui permet un démarrage sans écran ni clavier connectés au Pi (headless).
Installation du broker Mosquitto
Mosquitto est une implémentation open source très populaire du protocole MQTT. Son installation sur Raspberry Pi OS est très simple. Une fois votre Raspberry Pi démarré et connecté au réseau, ouvrez un terminal (ou connectez-vous via SSH) et entrez les commandes suivantes :
sudo apt update
Cette première commande met à jour la liste des paquets disponibles. Ensuite, pour installer le broker et les clients (outils de test) :
sudo apt install -y mosquitto mosquitto-clients
Une fois l’installation terminée, le service Mosquitto démarre automatiquement. Vous pouvez vérifier son statut avec la commande sudo systemctl status mosquitto. Si tout s’est bien passé, le service devrait être indiqué comme « actif (en cours d’exécution) ».
Le serveur est maintenant installé et fonctionnel, mais sa configuration par défaut reste basique. Il est donc essentiel de l’ajuster pour répondre à nos besoins spécifiques et commencer à explorer ses fonctionnalités.
Configurer le serveur Mosquitto
Ajuster la configuration initiale
Le fichier de configuration principal de Mosquitto se trouve dans /etc/mosquitto/mosquitto.conf. Par défaut, ce fichier est presque vide. Pour une première utilisation en réseau local, il est utile d’autoriser les connexions anonymes. Pour ce faire, éditez le fichier :
sudo nano /etc/mosquitto/mosquitto.conf
Puis ajoutez les lignes suivantes :
listener 1883 allow_anonymous true
La première ligne indique explicitement au broker d’écouter sur le port standard MQTT 1883. La seconde autorise les clients à se connecter sans fournir de nom d’utilisateur ni de mot de passe. Après avoir sauvegardé le fichier (Ctrl+O, Entrée, puis Ctrl+X), il est nécessaire de redémarrer le service pour que les changements prennent effet : sudo systemctl restart mosquitto.
Effectuer un premier test de communication
Avec les clients Mosquitto installés précédemment, il est facile de tester le bon fonctionnement du serveur. Vous aurez besoin de deux terminaux ou de deux sessions SSH connectées à votre Raspberry Pi. Dans le premier, nous allons abonner un client à un sujet de test :
mosquitto_sub -h localhost -t « test/topic »
Ce terminal va maintenant attendre de recevoir des messages sur le sujet « test/topic ». Dans le second terminal, nous allons publier un message sur ce même sujet :
mosquitto_pub -h localhost -t « test/topic » -m « Bonjour MQTT ! »
Instantanément, le message « Bonjour MQTT ! » devrait apparaître dans le premier terminal. Ce test simple confirme que le broker reçoit et relaie correctement les messages.
Avec un serveur configuré et testé, une préoccupation majeure émerge : la sécurité. Laisser un serveur ouvert à tous sur un réseau est une faille qu’il convient de combler sans tarder.
Sécuriser et tester votre installation MQTT
Mettre en place une authentification
Laisser un accès anonyme est pratique pour les tests, mais représente un risque de sécurité important en production. La première étape consiste à désactiver cet accès. Retournez dans le fichier /etc/mosquitto/mosquitto.conf et modifiez la ligne `allow_anonymous true` en :
allow_anonymous false
Ensuite, il faut indiquer à Mosquitto où trouver le fichier contenant les informations des utilisateurs autorisés. Ajoutez cette ligne :
password_file /etc/mosquitto/passwd
Créer des utilisateurs et des mots de passe
Nous devons maintenant créer ce fichier de mots de passe. L’utilitaire mosquitto_passwd est là pour ça. Pour créer le fichier et y ajouter un premier utilisateur (par exemple, « user1 »), exécutez la commande suivante. Elle vous demandera de saisir un mot de passe pour cet utilisateur.
sudo mosquitto_passwd -c /etc/mosquitto/passwd user1
Pour ajouter d’autres utilisateurs par la suite, il suffit d’omettre l’option -c (qui signifie créer). N’oubliez pas de redémarrer le service Mosquitto pour appliquer toutes ces modifications.
Tester la connexion sécurisée
Reprenons nos deux terminaux pour un nouveau test. Cette fois, la tentative de s’abonner sans identifiants échouera. Il faut maintenant les spécifier avec les options -u (utilisateur) et -P (mot de passe).
Dans le premier terminal (abonné) :
mosquitto_sub -h localhost -t « test/topic » -u « user1 » -P « votre_mot_de_passe »
Dans le second terminal (éditeur) :
mosquitto_pub -h localhost -t « test/topic » -m « Message sécurisé » -u « user1 » -P « votre_mot_de_passe »
Le message doit de nouveau être transmis avec succès, confirmant que votre système d’authentification est fonctionnel.
Notre serveur MQTT est désormais robuste et sécurisé. Il est prêt à remplir sa fonction première : servir de plaque tournante pour les communications entre divers appareils connectés.
Intégration de périphériques avec MQTT

Connecter des capteurs et des actionneurs
La véritable puissance d’un serveur MQTT se révèle lorsqu’on y connecte des appareils. Des microcontrôleurs comme l’ESP8266 ou l’ESP32 sont parfaits pour cela. Programmables via l’environnement Arduino ou MicroPython, ils peuvent lire des données de capteurs (température, humidité, luminosité) et les publier sur le broker MQTT. Inversement, ils peuvent s’abonner à des sujets pour recevoir des commandes, par exemple pour allumer une LED, actionner un relais ou contrôler une prise connectée.
-
ELEGOO 2PCS ESP32 Carte de développement Type-C, 2,4 GHz WiFi + Bluetooth Dual Core Microcontrôleur pour Arduino, Support MicroPython, NodeMCU, AP/STA/AP+STA, Puce CP2102Capacités de traitement puissantes : la carte de développement ELEGOO ESP-WROOM-32 intègre un processeur 32 bits double cœur fonctionnant jusqu'à 240 MHz, offrant une puissance de traitement impressionnante. Connectivité sans fil : la carte de développement ESP-32S intègre des capacités Wi-Fi et Bluetooth, prenant en charge le Wi-Fi et le Bluetooth 2,4 GHz, permettant une large gamme d'options de communication et de connectivité sans fil. Efficacité énergétique : la puce présente une conception à faible consommation permettant un réglage dynamique de la puissance en mettant à l'échelle la fréquence d'horloge sur différents modes de fonctionnement. Cela rend la carte de développement adaptée aux appareils IoT (Internet des objets) alimentés par batterie. Interfaces périphériques polyvalentes : la carte de développement offre un riche ensemble d'interfaces périphériques, notamment GPIO, UART, SPI, I2C, etc., permettant une connectivité facile à une large gamme de capteurs. Prend en charge les mises à niveau du micrologiciel en direct : la puce ESP-WROOM-32 dispose de capacités de mise à niveau du micrologiciel en direct, permettant aux développeurs de continuer à mettre à jour et à optimiser le micrologiciel même après la sortie du produit.
-
Diymore 2 pièces pour ESP32 32 Nodemcu Carte de développement pour ESP32 NodeMCU Module USB C 2.4 GHz WLAN WiFi Bluetooth CH340 PuceInterface de type C Prise en charge du protocole LWIP, Freertos Prend en charge trois modes : AP, STA, AP+STA coexistent. La carte de développement pour ESP32 intègre un équilibre d'antenne et de radiofréquence, un amplificateur de puissance, un amplificateur à faible bruit, un filtre et un module de gestion de l'alimentation. La carte de développement pour ESP32 est utilisée avec la puce Wi-Fi et Bluetooth double forme 2,4 GHz. Il utilise une technologie basse consommation de 40 nm.
-
Lot de 4 Carte Développement ESP32-C3, Module ESP32-C3 Mini, WiFi 2,4GHz et Bluetooth 5.0 Le, Processeur RISC-V 32 Bits 160MHz, pour Arduino MicroPython, IoT Maison Intelligente Réseau de Capteurs[Processeur Haute Performance] Chaque carte développement ESP32-C3 intègre un processeur RISC-V 32 bits monocœur cadencé à 160 MHz, offrant une excellente stabilité, faible consommation et rapidité d’exécution pour vos projets électroniques. [Connectivité WiFi et Bluetooth 5.0] Équipée de modules WiFi 2,4GHz (802.11 b/g/n) et Bluetooth 5.0 LE, cette carte ESP32-C3 mini assure des connexions sans fil rapides et stables, idéales pour la domotique, les projets IoT et les dispositifs intelligents. [Mémoire et Stockage Intégrés] Carte ESP32-C3 compatible Arduino dispose de 400 Ko de SRAM, 384 Ko de ROM et 4 Mo de mémoire Flash intégrée pour un traitement efficace et un stockage fiable des données et programmes complexes. [Interfaces Multiples et GPIO Flexibles] Module ESP32-C3 prend en charge UART, I²C et SPI avec 15 broches GPIO configurables, dont 11 E/S numériques PWM et 4 E/S analogiques ADC, permettant une adaptation simple à différents capteurs et modules. [Compatibilité et Alimentation Faciles] Carte ESP32 Mini compatible avec Arduino IDE, MicroPython et l’environnement ESP-IDF. Fonctionne via USB ou alimentation externe 3,3–6V (non simultanées). Parfaite pour l’apprentissage et les prototypes connectés.
Centraliser et visualiser les données
Une fois les données collectées sur le broker, l’étape suivante est de les exploiter. Des plateformes de domotique comme Home Assistant ou Jeedom peuvent se connecter à votre serveur Mosquitto pour intégrer tous vos appareils dans une interface unifiée. Pour une visualisation plus poussée, des outils comme Node-RED permettent de créer des flux de données logiques, tandis que des logiciels comme Grafana, couplés à une base de données (InfluxDB par exemple), peuvent générer des graphiques et des tableaux de bord sophistiqués à partir des informations transitant par MQTT.
La mise en place d’un serveur MQTT sur un Raspberry Pi transforme ce simple nano-ordinateur en un puissant hub pour l’internet des objets. En suivant les étapes d’installation, de configuration et de sécurisation de Mosquitto, on obtient une base solide et fiable pour tout projet de domotique. Cette solution centralisée permet de faire communiquer de manière fluide et efficace une grande variété de capteurs et d’actionneurs, ouvrant la voie à une maison véritablement intelligente et réactive, entièrement maîtrisée localement.








