Smart Thermostat ESP8266

9,765

63

18

Introduction: Smart Thermostat ESP8266

About: Bienvenue sur mon profil ! Je suis un jeune étudiant passionné par l'électronique et je vous présente ici quelques projets réalisés.

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.

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 !

Arduino Contest 2020

Participated in the
Arduino Contest 2020

Be the First to Share

    Recommendations

    • For the Home Contest

      For the Home Contest
    • Make It Bridge

      Make It Bridge
    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge

    18 Comments

    1
    patsour
    patsour

    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
    Jean-philippeM8
    Jean-philippeM8

    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.

    0
    DasNevesManu1
    DasNevesManu1

    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

    0
    MGS 73
    MGS 73

    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?

    1
    Akiyama
    Akiyama

    2 years ago

    I like the minimalist touch. Voted for you :)

    0
    Tomaaso
    Tomaaso

    Reply 2 years ago

    Thanks a lot !

    0
    Hypic
    Hypic

    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

    0
    Tomaaso
    Tomaaso

    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.

    0
    Hypic
    Hypic

    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

    0
    Tomaaso
    Tomaaso

    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



    Capture1.PNGftdi.jpg
    0
    Hypic
    Hypic

    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

    0
    Tomaaso
    Tomaaso

    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.

    0
    Hypic
    Hypic

    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

    0
    Tomaaso
    Tomaaso

    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
    elpayo
    elpayo

    2 years ago

    Trabajo extraordinario !!! Felicidades

    0
    Tomaaso
    Tomaaso

    Reply 2 years ago

    Thanks a lot 😉