Introduction: Smart Thermostat ESP8266
Bienvenue sur ce nouvel article. On se retrouve aujourd'hui pour un projet que j'ai réalisé durant tout ce temps libre que m'a offert le confinement. Ce projet m'a été proposé par mon père, en effet il vient de déménager dans une vieille maison et l'installation de chauffage est vieillissante. La maison est équipée de radiateurs et d'un circuit d'eau alimenté par une chaudière. Cette dernière se trouve dans le garage qui n'est pas en contact avec la maison.
L'idée est donc de créer un thermostat placé dans la maison, qui va mesurer la température et commander la chaudière pour réguler la température. La problématique est que le garage est assez loin de la maison il va donc va falloir trouver une technologie sans-fil. Pour cela on va utiliser les fameux ESP8266 que j'ai déjà pu utiliser dans mes précédents articles, ils ne sont pas chers et utilisent le Wifi. On va donc réaliser deux cartes, une carte thermostat que l'on placera dans la maison et une deuxième qui commandera le circulateur de la chaudière.
Let's get started ! 😉
Step 1: Réalisation De La Carte De Commande Du Circulateur
Pour faire circuler l'eau dans les radiateurs, un circulateur est installé à coté de la chaudière, il s'agit d'une simple pompe en 220v qui pousse l'eau dans les tuyaux. Nous allons utiliser un relais pour le commander. Celui-ci sera commandé par l'ESP8266 via un transistor. L'ESP disposera du firmware ESPEasy (https://github.com/letscontrolit/ESPEasy) qui facilitera la commande via Wifi. On placera aussi 2 leds, une rouge clignotante qui nous indiquera si le wifi est capté et une verte pour l'état du circulateur. On fabrique donc notre carte selon le schéma, on flash le firmware ESPEasy et notre carte est terminée !
Step 2: Réalisation De La Carte Thermostat
Passons aux choses sérieuses, ici nous allons créér une carte avec un capteur de température et un écran qui nous donnera toutes les informations nécessaires sur les températures de la maison. Pour le capteur il faut absolument un capteur I2C car l'ESP ne dispose par d'entrée analogique, j'ai donc choisi le MCP9808. Pour l'écran on a les superbes OLED 128x64 pixels qui ont des possibilités infinies. On va aussi retrouver un ESP8266 pour le Wifi avec un programme que j'ai conçu moi même, le programme va commander directement la carte du circulateur selon les consignes demandé. Tous les réglages des différentes consignes se feront grâce une page web hébergé par l'ESP accessible sur smartphone. On fabrique donc la carte selon le schéma et c'est terminé pour la partie électronique !
Step 3: Création De La Page Web
Comme vous pouvez le voir sur la carte thermostat, il n'y a aucune façon d’interagir pour régler les paramètres de températures. Pour cela j'ai décidé qu'on le ferai via notre smartphone, j'ai alors développer une page internet (je ne me suis pas encore mis au développement d'application mobile). Cette page sera hébergée directement sur L'ESP8266. C'est la grande force de ce projet, nul besoin de Rapsberry PI, de concentrateur ou de box domotique, le projet est totalement autonome. Le site qui va nous servir d'application sera directement accessible en local via l'adresse IP de l'ESP8266. De plus c'est compatible IOS et Android !
Dans cette application nous allons retrouver trois grandes divisions :
- Une première avec l'affichage de la température ainsi que les consignes et les delta des deux modes ( Normal et économique)
- Une deuxième avec un planning où l'on va pouvoir choisir quand on active le mode normal ou éco.
- Enfin une troisième avec les statistiques de la journée ainsi qu'une courbe d'évolution de la température.
Le site est entièrement développé en HTML, CSS et un peu de javascript. Tous est codé dans une seule page index.html pour pouvoir l'intégré dans le code de l'ESP8266. Pour cela j'ai réalisé un script linux permettant de convertir notre index.html en code à intégrer au programme de l'ESP8266 :
#!/bin/bash cat $1 | while read line do echo 'page += "' $line '" ; ' done > result.txt
Step 4: Programmation De L'ESP8266
Dernière étape avant que notre système soit fonctionnel, nous allons programmer l'ESP afin qu'il puisse remplir toutes ses fonctionnalités telles que :
- Mesurer la température
- Récupérer l'heure sur un serveur NTP
- Prendre une mesure toutes les heures afin de créer une courbe
- Se mettre sur le bon mode, normal ou éco selon le planning et l'heure de la journée
- Contrôler la chaudière en fonction de la température de la maison et la consigne.
- Afficher les informations sur l'écran
Pour cela vous trouverez mon programme ci-joint.
Attachments
Step 5: Création De Boitiers Pour Les Cartes
J'ai récemment acquis une imprimante 3D qui me permet de créer de jolies boîtes pour mes différents projets. Je modélise mes pièces sur Fusion 360. Vous pouvez trouver mes modèles ci-joint sachant que mes cartes de prototypage font 3*7 cm. A vous d'adapter 😉. Petit problème auquel je n'avais pas pensé durant la conception, il se trouve que l'ESP8266 chauffe pas mal et cela fausse la mesure du capteur de température, j'ai dû donc placer ce dernier à l'extérieur de la boîte (2 ou 3 centimètres de fils suffisent).
Step 6: Conclusion
Voilà ce projet est terminé, tout fonctionne parfaitement, ce projet comporte de gros points forts, tel qu'être entièrement autonome. Son prix est aussi très avantageux, moins de 15€ tout compris. Allez trouver un thermostat connecté à ce prix là 😉 Voilà comme d'habitude si vous avez des questions n'hésitez pas !