Domotisation d'une chaudière - ESP-01 qui crame.

Bonjour à toutes et à tous.

Ceci est mon premier topic, j'ai été lire les règles en la matières, mais je risque peut-être d'en enfreinte une ou deux. Soyez donc indulgent avec moi.

Voici donc mon problème. J'ai essayé de domotiser ma chaudière mural, mais madame ayant un problème avec les changement technologique, il faut que ceci soit transparent pour elle. Cela implique donc que le thermostat actuelle doit rester en place et fonctionnelle.

J'ai donc pensé un à système qui viendrait se placer entre le thermostat et la chaudière, ce système communique via le protocole MQTT avec Jeedom et il accepte trois mode :

  • Mode 1 : ON (Chaudière constamment allumée)
  • Mode 2 : OFF (Chaudière constamment étiente)
  • Mode 3: Automatic (Le signal du thermostat est répéter sur la chaudière)

Il renvoie vers Jeedom un statuts qui permet de connaître l'état du relais de la chaudière, l'état de thermostat et l'état du flag "Désactivation du thermostat".

J'ai utilisé pour ça, le petit module relais de chez LCTECH qui embarque un ESP-01. Ce module est assez spécial, car pour activer le relais il ne faut pas mettre un HIGH sur un GPIO, mais envoyer un code hexadécimal sur les broches série de l'ESP vers un microcontrôleur installé sur le circuit imprimé.

Tout fonctionnait parfaitement bien pendent deux jours, puis le relais à commencé à se fermer et se rouvrir aussitôt sans raison. Pensant que le microcontrôleur était en cause, je décide donc de le virer et de connecter la sortie qui va vers le transistor qui contrôle le relais directement sur le port GPIO2 de l'ESP avec une résistance de 3K3 connecté au +3,3V

Je modifie le code pour y intégrer une interruption lorsque le thermostat change de position.
C'est la que ça devient intéressant. je remarque une multitude d'interruption qui se produit sans pour autant que le thermostat change de position (il bronche même pas).
En cherchant un peu, je remarque aussi que des interruptions se produit lorsque la chaudière se met en route, plus précisément, lorsque elle produit les étincelles pour allumer le gaz.

Du coup j'adapte une nouvelle fois le code pour que lorsque une interruption se produit, l'ESP-01 fait une vérification de l'état de la broche 3 secondes après pour confirmer la position du thermostat.

Tout fonctionne nickel, mais après deux jours l'ESP fait le mort, il ne boot plus et ne s'allume même plus lorsque je l’alimente uniquement via la broche 8 (VCC). Pensant à un défaut, je le remplace pour un autre et la rebelote deux jours après, il fait pareille c'est à dire le mort.

Est-ce que quelqu'un parmi vous aurais une idée de ce qui pourrait cramer mes ESP comme ça ? J'aurais tendance à dire la chaudière, mais elle n'est connecté que au relais du petit module de chez LCTECH.

Merci pour votre aide, et je vous souhaite d'excellentes fêtes de fin d'année.

Bonjour
ESP-01 alimenté comment ?
Schema complt de cablage de l'ESP01 ?

bonjour,
comment est alimenté le module?

Il faudra certainement mettre en place plusieurs protections:

Un filtre secteur avant l'alimentation de l'esp pour assurer une alimentation propre.
un filtre sur la charge pour réduire les parasites.

Un croquis du branche serait super.

Artouste:
Bonjour
ESP-01 alimenté comment ?
Schema complt de cablage de l'ESP01 ?

trop rapide pour moi!

Un lien vers le module serait utile , il existe plusieurs types de modules ESP-01+ Relai vendus sous des noms variés)

Waow ! quelle réactivité.
En tout cas, merci déjà de vous pencher sur mon problème.

Pour répondre un peu à tous le monde, l'ESP est alimenté via le module qui lui fonctionne avec du 5V, mais je vois sur le circuit imprimé un régulateur AMS1117 de 3,3V.
J'alimente le module avec une alimentation à découpage 220V -> 5V.

Malheureusement, la documentation sur ce module est très difficile à trouver et le peu que j'ai trouvé se trouve être en chinois ou alors ce sont des expériences d'autres personnes sur les forums. Mais je joint à ce post, une photo du module en question ainsi qu'une autre de l'alimentation que j'utilise.

Malheureusement, je n'ai pas encore eu le temps de dessiner le câblage complet, mais dès que j'ai un peu de temps, je vous fait çà et vous le poste direct.

TenStar Robot.png

18011404102715377715457422.jpg

Bidules079:
.
En cherchant un peu, je remarque aussi que des interruptions se produit lorsque la chaudière se met en route, plus précisément, lorsque elle produit les étincelles pour allumer le gaz.

Une petite vérification a faire, verifie que le châssis de ta chaudiere est bien reliés à la terre, une mauvaise terre, peu avec les impulision de l'allumage piezzo peut générer beaucoup de merdouilles . Verifie que la continuité électrique est bien réalisé jusqu'à la borne de terre.

Rebonjour tout le monde.
Voici donc un shéma du montage que j'ai fait sur la chaudière :

Par contre, comme je l'ai dit, j'ai un peu modifié le circuit initial pour supprimer le microcontrôleur et utiliser le port GPIO de l'ESP.

Arzou:
Une petite vérification a faire, verifie que le châssis de ta chaudiere est bien reliés à la terre, une mauvaise terre, peu avec les impulision de l'allumage piezzo peut générer beaucoup de merdouilles . Verifie que la continuité électrique est bien réalisé jusqu'à la borne de terre.

Merci pour ta suggestion, du coup j'ai testé cet après-midi et le châssis est bien connecté à la terre.

Bidules079:
le petit module relais de chez LCTECH qui embarque un ESP-01. Ce module est assez spécial, car pour activer le relais il ne faut pas mettre un HIGH sur un GPIO, mais envoyer un code hexadécimal sur les broches série de l'ESP vers un microcontrôleur installé sur le circuit imprimé.

J'ai un module comme celui-là, signé LC Tech. Je n'arrive pas à l'utiliser.
Pas étonnant vu ce que tu dis ! (à supposer que ce soit le même, ça ressemble fort, avec le petit circuit à 8 pattes).

Pourtant je l'ai pris chez AZ-Delivery, ils fournissent un e-book avec un sketch pour exemple. Et dans ce programme ils commutent bien la broche GPIO.

As-tu un lien vers les infos dont tu parles ? merci

En effet, leur documentation est erronée. Voici le code que j'utilise pour activer/désactiver le relais :

    Serial.write(0xA0); //Debut de la séquence
    Serial.write(0x01); //Numéro du relais que tu veut piloter (0x01 pour le 1, 0x02 pour le 2, ....)
    Serial.write(0x01); //0x01 : ON et 0x00 = OFF
    Serial.write(0xA2); //Bit de vérification (Somme des trois octets précédents. Par exemple Relais 1 OFF 0xA0 + 0x01 + 0x00 = 0xA1
    Serial.flush();

Ha oui, ce module utilise un baud de 9600, mais j'en ai un autre qui doit être de 115200.

J'éspère t'avoir aidé.

Bidules079:
...
Par contre, comme je l'ai dit, j'ai un peu modifié le circuit initial pour supprimer le microcontrôleur et utiliser le port GPIO de l'ESP.

Perso , et même en y mettant beaucoup de volonté , je ne comprend pas en quoi consiste exactement cette modification :fearful:

Mais , je ne suis pas loin de prendre une option sur du "5V" appliqué sur un GPIO de l'esp.

c'est quoi (quelle ref/marquage) le compo barré d'une croix rouge ?

J'ai un module comme celui-là, signé LC Tech. Je n'arrive pas à l'utiliser.

Si tu étais le seul :confused:
Un copain m'en a confié un pour que j'examine.

Apparemment je le vois sur mon smartphone comme point d'accès.
Il faut une appli pour le contrôler ... le problème : quelle appli ? J'en ai essayé plusieurs -> puis abandon.

Ils utilisent un micro-contrôleur 8 bits pour commander le relais, alors que l'ESP01 pourrait le faire tout seul, probablement pour pouvoir utiliser le même logiciel ESP01 sur tous leurs modules relais simples, doubles ou quadruples.

Absence de doc. Produit pas sérieux. A éviter.

Bonsoir,

L'alimentation est probablement commune pour le relais et l'ESP.

Lorsque le relais commute il y a une surtension qui se produit sur le 5V et qui se répercute sur l'alimentation de l'ESP.

C'est assez pour ne flinguer le régulateur 5V->3.3V mais assez pour rendre l'ESP hors-service au bout de quelques commutation.

Une solution a court terme serai de rajouter un condensateur d'une valeur à cet endroit :

Artouste:
Perso , et même en y mettant beaucoup de volonté , je ne comprend pas en quoi consiste exactement cette modification :fearful:

Désolé si je me suis mal fait comprendre.
Sur le schéma, le relais n'est pas commandé via un GPIO, mais par un autres microcontrôleur le STC15F104 (celui avec une croix rouge). Pour activer le relais à partir du ESP, il faut envoyer un code hexadécimal à travers le port série au STC15F qui lui active le relais à travers un transistor.

Le but est de pouvoir commander le relais directement à partir de l'ESP avec ses port GPIO et au passage, de connaître l'état.

-Standby:
Bonsoir,

L'alimentation est probablement commune pour le relais et l'ESP.

Lorsque le relais commute il y a une surtension qui se produit sur le 5V et qui se répercute sur l'alimentation de l'ESP.

C'est assez pour ne flinguer le régulateur 5V->3.3V mais assez pour rendre l'ESP hors-service au bout de quelques commutation.

Une solution a court terme serai de rajouter un condensateur d'une valeur à cet endroit :

Merci, je vais essayer ta solution et je te tiens au courant.

Bonjour

Je modifie le code pour y intégrer une interruption lorsque le thermostat change de position.
C'est la que ça devient intéressant. je remarque une multitude d'interruption qui se produit sans pour autant que le thermostat change de position (il bronche même pas).
En cherchant un peu, je remarque aussi que des interruptions se produit lorsque la chaudière se met en route, plus précisément, lorsque elle produit les étincelles pour allumer le gaz.

Hypothèse : tu as constaté l'arrivée d'une multitude d'impulsions sur le signal de recopie du thermostat mais tu n'as pas d'idées sur l'amplitude de ces impulsions. Elles peuvent avoir une amplitude suffisante pour détruire l'ESP8266.
Le fil de liaison thermostat-ESP8266 fait une belle antenne.....
Sur les images on voit le signal (fils verts) arriver directement , sans protection (et sans pull-up) sur GPIO0 et GND

Dans un premier temps une diode zener de 3,3V , cathode sur GPIO0 et anode sur GND pourrait assurer un début de protection. (si pas de zener 3,3V prendre 4,3V voire 4,7V)

Je joins un schéma qui ressemble à ce que tu cherches à faire (liaison directe entre ESP-01 et optocoupleur de commande du relais. (by passer le STC15F104)

ça pourrait permettre de ne pas rester à la surface des choses avec les belles images en couleurs....


REMARQUE : ramener le contact du thermostat sur GPIO0 a un point faible :
Tout démararge (ou re-démarrarge) de l'ESP-01 avec contact thermostat fermé met l'ESP601 en mode 'bootloader', il attend l'arrivée d'un programme sur RX.

Bidules079:
En effet, leur documentation est erronée. Voici le code que j'utilise pour activer/désactiver le relais :

    Serial.write(0xA0); //Debut de la séquence

Serial.write(0x01); //Numéro du relais que tu veut piloter (0x01 pour le 1, 0x02 pour le 2, ....)
   Serial.write(0x01); //0x01 : ON et 0x00 = OFF
   Serial.write(0xA2); //Bit de vérification (Numéro de relais + Commande. Par exemple Relais 1 OFF 0x01 + 0x00 = 0x01
   Serial.flush();

Merci bien. Je vais tester ça.
Par contre je n'ai pas compris le dernier octet (A2) je comprends bien 1+0=0 :wink: mais pourquoi A2 ?

biggil:
Par contre je n'ai pas compris le dernier octet (A2) je comprends bien 1+0=0 :wink: mais pourquoi A2 ?

Hello, Désolé je me suis un peu trompé dans mes commentaires. Dans l'exemple ça devrait être 0xA0 + 0x01 + 0x00 = 0xA1. Il prendre le premier octet avec dans la somme.

Par contre, j'ai remarqué aussi que LCTECH à fait une version 2 de leur module. Elle est reconnaissable, car elle possède deux bouton nommé S1 et S2, ainsi que trois LED, une rouge, une bleu et une verte.
Ce module possède deux mode. Dans le mode 1 le microcontrôleur se comporte comme dans la version 1, il attend simplement les commandes série pour permuter le relais.
Dans le mode 2, le microcontrôleur pilote l'ESP à l'aide des commandes AT du firmware d'origine de l'ESP.
Il crée d'abord un point d'accès et ensuite à l'aide d'une application on peux le configurer, mais la je n'en sait pas plus.

Lorsque la led rouge reste allumé et que la led verte clignote une fois toutes les 2 seconde, cela veux dire que le module est en mode 1, par contre si c'est la led bleu qui reste allumé le module est en mode 2.
Pour repasser en mode 1 il suffit de shunter la pin RST avec le GND en maintenant appuyé le bouton S1.

Merci bien pour ces précisions.

Bonjour à tous,

Petit retour sur mon problème. Après avoir adapté le module avec toutes vos recommandations, le module fonctionne depuis une semaine maintenant et semble tenir le coup. A part de temps en temps un petit reboot, mais j'ai modifié l'arrivée du thermostat du GPIO0 vers le GPIO2. Merci d’ailleurs à al1fch d'avoir mis le doigt sur cette faille.

Donc merci à tous, votre aide m'a été très précieuse.
Au passage, je vous souhaite une excellente année 2020.