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 !

Participated in the
Arduino Contest 2020
18 Comments
1 year ago
Super projet, on a une erreur de compilation avec la version 3.0 de ESP, il faut charger la dernière librairie de NTPclient sur github pour résoudre le pb.
Il manque la possibilité de choisir la température par plages horaire.
A voir si j'ai le temps ...
1 year ago
Bravo, projet très sympa mais attention à la sécurité: Le relais n'est pas totalement isolé de la partie basse tension.
Je pense le construire, merci beaucoup pour le tuto.
Question 1 year ago on Step 6
Bonjour, sera-t-il possible d'envisager aussi la commande pour une vanne 4 voies, si on a un plancher chauffant ? Avec régulation , pente etc
2 years ago
Nice project. Almost exactly what I was looking for.
I have the hardware sorted, but I can't get the sketch to compile; I always get errors for the ESP8266WebServer library. Where can I find the correct one?
Reply 2 years ago
Hello,
I think you can dowload it here : https://github.com/esp8266/Arduino/tree/master/lib...
And I remember of some compile errors caused by the version of the ESP8266 card library. Personnaly I use the 2.6.3. If that can help you 😉
2 years ago
I like the minimalist touch. Voted for you :)
Reply 2 years ago
Thanks a lot !
2 years ago
Dear Tomaaso,
This porject is very useful. Congratulation. But I would like to ak that I have not found the ino file for ESP8266 for circulate system. Where csan I find it?
Please halp me in this case.
Regards,
Hypic
Reply 2 years ago
Hi Hypic,
Thanks for your comment. Yes because the esp for circulate system is flash with ESPeasy.
https://github.com/letscontrolit/ESPEasy
It's an open source firmware. You can find a lot of documentation about it, it's a very popular firmware.
Best regards.
Reply 2 years ago
Hi Tomaaso,
Thank you for your quic answer. So I have downloded that ESPEasy dictionary but I do not know how I have to use it.. I have never changed a firmware in ESP8266. So wich is file what you used and how to do change firmware in ESP8266. Sorry for basic quistion.....
Regards,
Hypic
Reply 2 years ago
No problem 😉
To flash the ESP u will need a FTDI. If have you have it, you can follow the next steps :
So u can download the last version here : https://github.com/letscontrolit/ESPEasy/releases
Click on the last version and go to bottom and dowload it : ESPEasy_ESP82xx_mega-20200XXX.zip
After, extract all files and launch ESP.easy.flasher
Selet the COM port and the firmware : normal_ESP8266_1M
Reset the esp8266 with putting the GPIO_0 LOW.
And then u can click on Flash ESP easy FW.
When is flashed, reset the ESP, u will have an access point called ESP_EASY_0. Connect you to it with a wifi device ( password : "configesp") and then configure your SSID and password. Now your ESP is ready.
You can test it with a led on the GPIO_2 and send the commands :
http://192.168.1.XX/control?cmd=GPIO,2,1
http://192.168.1.XX/control?cmd=GPIO,2,0
Reply 2 years ago
Dear Tomaaaso,
That is great. Thank you for you description. I see that you are professional in this topic.
Yes, I have FTDI. So I will try to it.
Can I ask more? So I like your termostat box. Which type your 3D printer is? And which materials do you use to print it?
Sorry for a lot of questions.....
Regards,
Hypic
Reply 2 years ago
Nice i'm writing an intructable on how to flash it for more details. I expected there was more topic on it.
And my 3 printer is a Tevo Tarantula, it's a basic 3d printer like the Ender 3, Dagoma easy 200 or the Prusa i3. And i print it with plastic PLA, 1kg cost approximatly 20€.
If you have more questions do not hesitate, you can write me in private on my profile.
Best regards.
Reply 2 years ago
Thank you for your answers. My english is not too good so when I read the topic I do not understand everything.
So I think that I will ask....
Have a good night (In Hungary at this moment at 21.03.
Rgards,
Hypic
Reply 2 years ago
Too welcome. Ahah it doesn't matter, my english isn't perfect too. It's the same hour in France, good night too.
Best regards.
2 years ago
Very good job !
2 years ago
Trabajo extraordinario !!! Felicidades
Reply 2 years ago
Thanks a lot 😉