ESP8266 + relais + alimentation 230V AC intégrés + capteurs
ESP12F Relay X4
Dans une installation domotique, on a souvent besoin au niveau local d’un ensemble comprenant des senseurs comme :
- un détecteur de présence,
- une mesure de luminosité
- une mesure de la température
Un ou plusieurs relais comme actionneur.
Un microcontrôleur pour le traitement.
On trouve sur le marché de nombreux relais pilotables avec leur logiciel propriétaire, mais difficile d’y rajouter un senseur ou capteur.
La carte présentée ici rassemble un ESP8266, 4 relais, et un bloc alimentation sur la même carte.
On la trouve chez Aliexpress .
Avantages
- regroupement ESP8266, relais et alimentation. Cela simplifie le câblage
- Trous de fixation de la platine
- Entrées/Sorties GPIO ou IO à câbler en dessous ou au-dessus, ce qui est très pratique
- Nombreuses pins GND, 5V et 3.3V pour connecter les senseurs
Défauts
- Pas d’accès USB pour la première programmation. Il faut une interface USB/TTL
Connexions Hardware
Connecteur programmation
GND | GND | IO0 | RX | TX | 5V |
Connecteurs Relais
Relais 1 | RY1 |
Relais 2 | RY2 |
Relais 3 | RY3 |
Relais 4 | RY4 |
Connecteurs GPIOs
ADC | EN(reset) | IO16 | IO14 | IO12 | IO13 |
IO5 | IO4 | IO0 | IO2 | IO15 | GND |
Il y a un certains nombres de contraintes sur les GPIO de l’ESP8266. Leur disponibilité est donnée dans le tableau ci-dessous, ainsi que les recommandations.
Label | GPIO | Input | Output | Notes |
D0 | GPIO16 | no interrupt | no PWM or I2C support | HIGH at boot used to wake up from deep sleep |
D1 | GPIO5 | OK | OK | often used as SCL (I2C) |
D2 | GPIO4 | OK | OK | often used as SDA (I2C) |
D3 | GPIO0 | pulled up | OK | connected to FLASH button, boot fails if pulled LOW |
D4 | GPIO2 | pulled up | OK | HIGH at boot connected to on-board LED, boot fails if pulled LOW |
D5 | GPIO14 | OK | OK | SPI (SCLK) |
D6 | GPIO12 | OK | OK | SPI (MISO) |
D7 | GPIO13 | OK | OK | SPI (MOSI) |
D8 | GPIO15 | pulled to GND | OK | SPI (CS) Boot fails if pulled HIGH |
RX | GPIO3 | OK | RX pin | HIGH at boot |
TX | GPIO1 | TX pin | OK | HIGH at boot debug output at boot, boot fails if pulled LOW |
A0 | ADC0 | Analog Input | X |
Programmation
Pour télécharger du code, il faut connecter une interface USB / TTL avec le strap d’alimentation sur 3V3. On ne câble que la masse (GND) et le TX et le RX en croisant. TX carte programmation vers RX carte ESP8266. On ne câble pas le Vcc (l’alimentation)
Pour lancer la programmation, il faut :
- mettre l’entrée IO0 temporairement à la masse
- appuyez sur EN (Enable/Reset)
- relâchez IO0 et En
Ainsi l’ESP 8266 attend la programmation. Une fois la programmation faite, re – appuyer sur EN pour relancer l’ESP32 sur le nouveau programme.
Logiciel
Ce module a l’avantage de ne pas être propriétaire, vous pouvez y mettre ce que bon vous semble.
Arduino
Avec l’outil IDE Arduino, vous pouvez développer votre propre code. Choisissez la carte Generic ESSP8266 module.
Avec l’Arduino, intégrez dans votre code le mode OTA (On The Air) permettant de mettre à jour le code à distance via le WIFI. Ainsi vous n’aurez plus besoin de l’interface USB/TTL
ESP Easy
Firmware permettant de programmer des ESP8266 ou ESP32 et disposant du code pour de nombreux capteurs sur le marché. Cela simplifie la programmation
https://espeasy.readthedocs.io/en/latest/index.html
ESPHome
Firmware puissant permettant de programmer son ESP8266 avec de simples descriptions d’interfaces, actions; évènements etc. dans un fichier yaml. Souvent associé au système domotique Home Assistant.
https://esphome.io/index.html
Bonjour, peut on piloter une vanne 3 voie avec une sonde de température ?
Cordialement
Oui pourquoi pas.
Intéressant. A toutes fins utiles il existe aussi toute la gamme Sonoff que l’on peut, soit flasher avec Tasmota soit y incorporer son propre firmware si on est un peu courageux.
Ouah ! mais quel travail, j’en suis tout impressionné. Le simulateur est une merveille ! Quel moyen plus démonstratif que cela afin de montrer les differents modes de fonctionnement et leur incidence sur le « parasitage » du secteur .
J’utilise depuis longtemps ce routeur en version Linky, que je fais évoluer ou pas en fonction de vos améliorations et de l’intérêt qu’elles représentent à mes yeux et au fonctionnement de mon installation.
N’ayant , à ce jour, pas passé de convention avec Enedis, je n’ai pas droit à la partie négative des courbes de puissances puisque le Linky ne transmet pas dans les données brutes les puissances injectées.
N’est il pas possible de remédier à cela puisque la puissance apparente à l’instant « t » est égale à « 0 » mais que les données brut signalent la présence d’un courant ? en faisant un « et » des deux conditions ne peut on pas inscrire la ou les courbes en négatif ?
Merci encore pour votre travail acharné et au combien pédagogique .
Cordialement.
Jean-Michel
Non pas possible. Il faut mettre un seuil au dessus de 0