Pourquoi un objet connecté maison ?
Si vous lisez ces lignes, c’est probablement que l’idée de concevoir votre propre objet connecté vous démange. Bonne nouvelle : vous êtes au bon endroit. Que ce soit pour surveiller la température d’un atelier, recevoir une alerte quand la cave est inondée, ou piloter un moteur d’aération, les possibilités sont infinies. Et avec Arduino couplé à MQTT, on a là une combinaison gagnante pour bricoler malin.
Arduino, vous connaissez sûrement. Petit, robuste et polyvalent. MQTT, peut-être moins. C’est un protocole léger de messagerie qui permet aux objets connectés de communiquer entre eux sans se prendre pour une usine à gaz. Idéal donc pour la domotique.
Je vous propose ici une mise en œuvre concrète : créer un capteur de température connecté avec un Arduino, qui envoie ses données via MQTT à un serveur (appelé broker MQTT). Ces données pourront ensuite être affichées dans Home Assistant, Domoticz ou même sur votre smartphone. Let’s geek !
Le matériel nécessaire
Voici le matériel que j’ai utilisé. Tout a été testé sur mon établi et fonctionne comme prévu :
- Un Arduino (j’ai pris un ESP8266 NodeMCU – WIFI intégré, parfait pour MQTT)
- Un capteur de température DS18B20 (étanche, pour l’atelier ou l’extérieur, c’est top)
- Une résistance de 4.7kΩ
- Un câble micro USB pour alimenter l’ESP8266
- Un ordinateur avec Arduino IDE installé
- Un broker MQTT local (Mosquitto sur Raspberry Pi par exemple)
À noter : vous pouvez facilement adapter ce projet à d’autres capteurs (humidité, mouvement, porte, etc.) sans modifier la structure globale. Ce qui compte, c’est le principe d’acquisition → transmission → exploitation.
Le câblage du montage
Clairement, pas besoin d’être ingénieur en électronique pour ce montage :
- Le fil rouge du capteur DS18B20 va sur le 3.3V
- Le fil noir, sur GND
- Le fil jaune (signal) va sur la broche D2 (GPIO4 sur ESP8266)
- Ajoutez la résistance 4.7kΩ entre le fil rouge (VCC) et le jaune (Data)
C’est tout. Bien entendu, fixez le tout proprement sur une breadboard ou avec des dominos selon vos préférences. Personnellement, j’aime garder les montages démontables pour les évolutions futures (et pour corriger les idées à la c… expérimentales).
Le code Arduino : parlons pratique
Dans l’IDE Arduino, vous aurez besoin de quelques bibliothèques :
ESP8266WiFi.h
OneWire.h
etDallasTemperature.h
PubSubClient.h
pour MQTT
Voici une version fonctionnelle du code (à adapter avec vos infos réseau et broker MQTT) :
#include <ESP8266WiFi.h>#include <PubSubClient.h>#include <OneWire.h>#include <DallasTemperature.h>const char* ssid = "Votre_SSID";const char* password = "Votre_MotDePasse";const char* mqtt_server = "192.168.1.100"; // IP du broker MQTTWiFiClient espClient;PubSubClient client(espClient);#define ONE_WIRE_BUS D2OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire);void setup_wifi() { delay(10); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); }}void reconnect() { while (!client.connected()) { if (client.connect("ESP8266Client")) { // pas de subscription ici, on est en Publisher } else { delay(5000); } }}void setup() { setup_wifi(); client.setServer(mqtt_server, 1883); sensors.begin();}void loop() { if (!client.connected()) { reconnect(); } client.loop(); sensors.requestTemperatures(); float temp = sensors.getTempCByIndex(0); char tempString[8]; dtostrf(temp, 1, 2, tempString); client.publish("atelier/temperature", tempString); delay(60000);}
Ce bout de code envoie toutes les 60 secondes la température sur le topic MQTT atelier/temperature
. Simple, fiable. Si vous voulez que ça remonte dans Home Assistant, il suffira d’y configurer un sensor MQTT avec ce topic-là.
Mettre en place un broker MQTT local
Si vous débutez, je vous conseille Mosquitto. Il tourne parfaitement sur Raspberry Pi, consomme peu et se configure en quelques minutes.
Sur RPi OS, voici les commandes à exécuter :
sudo apt updatesudo apt install mosquitto mosquitto-clientssudo systemctl enable mosquitto
Pour tester si tout fonctionne :
mosquitto_sub -t "atelier/temperature"
→ Abonnement au topicmosquitto_pub -t "atelier/temperature" -m "test MQTT"
→ Test d’envoi
À noter que Mosquitto peut être sécurisé avec un fichier de mots de passe ou TLS si vous voulez que ça reste privé. Ici je reste sur une config simple pour le prototypage. Chez moi, j’ai une authentification basique en local, rien n’est exposé sur Internet.
Visualiser la température : l’affichage des données
Une fois que votre ESP8266 envoie la température sur le topic MQTT, on peut :
- L’afficher dans Home Assistant avec un
sensor
MQTT - L’intégrer dans une page web maison via Node-RED + dashboard
- L’envoyer sur Telegram avec un bot si la température dépasse un seuil
Chez moi, j’ai couplé ce système à une ventilation qui s’active si la température monte trop. Pilotage d’un relais connecté via MQTT + Node-RED. Résultat : zéro effort de surveillance et confort thermique optimisé dans l’atelier. C’est là que la domotique devient vraiment utile.
Et si je veux aller plus loin ?
Ce projet n’est qu’une base. Avec un ESP32, vous disposez de plus de GPIO pour multiplier les capteurs. Vous pouvez aussi utiliser un capteur multifonctions (BME280 par exemple) pour suivre température, pression et humidité dans un seul module.
Autre idée : ajouter un écran OLED pour un affichage local. Ou encore, intégrer un serveur web sur l’ESP8266 pour visualiser la température sans passer par un broker. Pratique pour diagnostiquer les problèmes réseau vite fait.
Vous pouvez aussi inverser le flux et faire de votre ESP un abonné MQTT qui exécute des actions à la réception de messages (ouvrir un portail, éteindre une lampe, etc.). C’est tout l’intérêt de l’approche Pub/Sub de MQTT : souple et bidirectionnelle.
Retour terrain : ce qui a fonctionné… et ce qui m’a pris la tête
Honnêtement, ce genre de projet est extrêmement satisfaisant une fois en place. Voir les relevés en temps réel dans son dashboard ou son smartphone, c’est toujours gratifiant quand on les capte via ses propres capteurs bricolés.
Mais tout n’est pas toujours rose :
- Alimentation : Évitez le micro-USB d’un vieux chargeur qui traîne. Privilégiez un adaptateur 5V stable et fiable si vous voulez éviter les plantages.
- Déconnexions Wi-Fi : L’ESP8266 fonctionne bien, mais peut devenir capricieux sur un réseau surchargé. Pensez à rapprocher votre point d’accès ou utiliser une borne dédiée style AP Ubiquiti.
- Redémarrage automatique : Implémentez une routine de watchdog ou une tâche qui redémarre l’ESP8266 s’il est déconnecté trop longtemps. Ça m’a sauvé quelques nuits de debug.
En résumé
Concevoir un objet connecté basé sur Arduino et MQTT, ce n’est ni compliqué, ni réservé aux geeks barbus (même si ça aide 😉). Le combo ESP8266 + capteur + MQTT ouvre la voie à une foule de projets domotiques simples et performants.
Le plus gros avantage ? La souplesse. Vous commencez avec un capteur, et vous finissez avec tout un écosystème interconnecté, pilotable depuis votre canapé ou à distance. C’est DIY, c’est modulaire, et ça fait le boulot.
À vos fers à souder, amis domogeeks ! Et comme toujours, si vous avez un retour, une amélioration ou un détournement d’usage à partager, envoyez-moi un message. Ce blog est là pour ça – faire circuler les idées, les vraies, pas les plaquettes marketing.