Contents
Intro
Je vous propose de découvrir la mise en oeuvre de platine relais à base ESP8266 équipée de 1 (ou plusieurs relais) sur ESPHOME.
Liste des courses
Un module relais ESP8266 directement alimenté en 220 Vca ou en courant conctinu de 7 à 12 VCC ou en 5 VCC par prise USB acheté ici.
Ce module est très pratique puisqu’il suffit de le configurer, l’alimenter et le coupler à HA.
Les modules commandés sont livrés avec les broches à souder et un pont nécessaire à la première programmation. Peut être pourriez vous en trouver avec les broches déjà soudées. Si c’est le cas, merci de laisser le lien en commentaire.
Présentation du Module
Vous trouverez ci après une rapide présentation du module
Descriptif du Module
- 1.L, N: alimentation AC90-250V
- 2.AC90-250V à DC5V alimentation à découpage (lors de l’utilisation de l’alimentation secteur, veuillez ne pas le toucher directement avec vos mains!!)
- 3.VCC, GND: alimentation DC7-12V;
- 4.Micro USB: alimentation USB DC5V;
- 5.Bouton 5.6X6mm: bouton de réinitialisation ESP8266;
- 6. port de téléchargement du programme UART: GND, RX, Tx, 5V .
- 7. Broches accessibles, voir détail ci après.
- 8. Contacts du relais:Normalement ouvert et Normalement Fermé.
- 9. Indicateur d’alimentation LED;
- 10. LED Programmable;
- 11. Témoin de relais LED: s’allume quand il est fermé.
Descriptif des Broches surlignées en 7 (de gauche à droite):
Ces broches permettent d’étendre les possibilités de la carte.
- 1.GND: 0 Volt ou GND
- 2.Relais: le relais est par défaut connecté au GPIO5. Pour piloter le relais avec un autre GPIO, il faut supprimer R14 puis brancher le relais sur le GPIO souhaité avec un cable Dupont par exemple.
- 3.IO2: GPIO2: UARTI-TXD
- 4.IO4: GPIO4
- 5.RX: UARTO-RXD: GPIO3
- 6.3V3: alimentation 3.3V
- 7. SCLK: horloge
- 8.IO15: GPIO15: MTDO; HSPICS; UARTO-RTS
- 9.IO0: GPIO0
- 10.IO5: GPIO5
- 11.TX: UARTO-TXD; GPIO1
- 12.5V: alimentation 5V
- 13.IO10: GPIO10
- 14.MISO: sortie esclave et entrée hôte
- 15.IO13: GPIO13; HSPI-MOSI; UARTO-CTS
- 16.1IO14: GPIO14; HSPI-CLK
- 17. ADC: résultat de conversion a/d. Gamme de tension d’entrée: 0 ~ 1V, gamme de valeur: 0 ~ 1024
- 18.3V3: alimentation 3.3V
- 19.MOSI: sortie hôte et entrée esclave
- 20.IO9: GPIO9
- 21. CSO: sélection de puce
- 22.IO12: GPIO12; HSPI-MISO
- 23.IO16: GPIO16
- 24.GND: 0 Volt ou GND
Utilisation du module
Premier flashage du module:
Afin d’utiliser ce module avec HA, nous devons télécharger le programme ESP HOME via son port série. Le module que j’utilise est ce type de module., c’est un convertisseur USB<->Port série.
Vous devez le brancher à votre carte selon le mapping suivant (utilisation des câbles Dupont):
- Carte relais (connecteur P3 en 6 ci dessus)<-> Convertisseur
- GND <-> GND
- Tx <-> Rx
- Rx <-> Tx
- 5 V <-> Vcc
- Nota 1: Sur la carte relais, Il faut ponter les broches GND et I00 (uniquement pour ce premier flashage)
- Nota 2: Sur le convertisseur, positionner un cavalier sur le 5V.
Le téléchargement est décrit dans mon article https://domo.rem81.com/2021/03/25/home-assistant_esp-home/
Une fois le premier flashage réalisée avec succés, vous devez débrancher le convertisseur, retirer le cavalier entre GND et GPIO00, puis alimenter votre module, vous avez le choix entre le 240 VCA, du courant continu 5VCC ou de 7 à 12 VCC.
Une fois ce code chargé, l’intégration validée dans HA, la communication est établie et la led GPIO10 est éteinte.
Programme ESPHOME
Je vous propose ci après un programme à télécharger, libre à vous de le modifier, dans ce programme j’ai configuré:
- Une adresse IP fixe (c’est un choix personnel)
- Le status de communication sur la led programmable (GPIO16) qui clignote s’il y a des avertissements (lent) ou des erreurs (rapide)
- Trois entrés logiques sur les GPIO10, GPIO13 et GPIO14: A relier au GND pour devenir « On »
- Une entrée « OnWire » sur le GPIO02 (voir ci après le chapitre dédié)
- Le relais sur le GPIO5: Relais normalement au repos.
substitutions:
device_name: esp172-esp8266-1-relais-1
friendly_name: esp172
adress_ip: "192.168.0.172"
time_timezone: "Europe/Paris"
esphome:
name: ${device_name}
platform: ESP8266
board: d1_mini
wifi:
networks:
- ssid: !secret wifi_esp
password: !secret mdpwifi_esp
priority: 1
- ssid: !secret wifi
password: !secret mdpwifi
priority: 0
reboot_timeout: 5min
manual_ip:
static_ip: ${adress_ip}
gateway: 192.168.0.254
subnet: 255.255.255.0
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
web_server:
port: 80
# Configuration Dallas
dallas:
- pin: GPIO2
update_interval: 10s
# Utilisez la LED bleue de l'appareil comme LED d'état, qui clignotera s'il y a des avertissements (lent) ou des erreurs (rapide)
status_led:
pin:
number: GPIO16
inverted: true
binary_sensor:
# 3 Entrées logiques permettant de lire des contacts ou des BP
- platform: gpio
pin:
number: GPIO10
inverted: True
mode:
input: true
pullup: true
name: "${friendly_name}_bp1"
- platform: gpio
pin:
number: GPIO13
inverted: True
mode:
input: true
pullup: true
name: "${friendly_name}_bp2"
- platform: gpio
pin:
number: GPIO14
inverted: True
mode:
input: true
pullup: true
name: "${friendly_name}_bp3"
#Etat de la connection
- platform: status
name: "${friendly_name}_Status"
sensor:
# DS18B20 15/12/2021
- platform: dallas
address: 0xab0321117f919d28
name: "${friendly_name} Temperature"
id: temp
- platform: wifi_signal
name: "${friendly_name} WiFi Signal Sensor"
update_interval: 60s
- platform: uptime
name: "${friendly_name} Uptime Sensor"
update_interval: 60s
switch:
# Pilotage du relais
- platform: gpio
name: "${friendly_name} Relais"
pin: GPIO5
id: relay
- platform: restart
name: "${friendly_name} Restart"
Une fois la communication établie, vous avez accès à la page Web embarquée:
Vous pouvez tester votre relais
Vous avez également accès depuis l’intégration ESPHOME dans HA:
Exemple d’utilisation:
Comme décrit précédemment, j’ai choisi d’ajouter une sonde de température Dallas ds18b20.
Ces sondes communiquent avec le bus WireOne. Le cablage est simple:
- Fil rouge: Alim 3.3 V
- Fil jaune: GPIO
- Fil Noir: GND
- Il faut également souder une résistance de 4.7 kOhm entre le fil rouge et le fil jaune.
Vous pouvez en mettre plusieurs sur un même GPIO. Il suffit de les raccorder en parallèle.
Pour cette mise en oeuvre, j’ai utilisé un connecteur à souder à plugger directement sur la carte. J’utilise le GPIO2 situé entre GND et 3.3V.
Autres cartes:
J’ai testé d’autres cartes, achetées ici. Perso, je préfère celles équipées d’une alimentation en courant alternatif, elles sont plus faciles à mettre en oeuvre.
Le principe de programmation est toujours le même, mais cependant elles ont quelques particularités:
Un relais mais pas d’alim Courant Alternatif.
Deux relais mais pas d’alim Courant Alternatif.
Les relais doivent être associés au GPIO par des cavaliers, voir le code ci-dessous à ajouter dans les switch:
switch:
- platform: gpio
name: "${friendly_name} Relais1"
pin: GPIO4
id: relais1
- platform: gpio
name: "${friendly_name} Relais2"
pin: GPIO5
id: relais2
Quatre relais avec alim Courant Alternatif.
Attention lors de la première programmation, il faut mettre le cavalier du convertisseur sur le 3.3V et non 5V, sinon ça plante.
Comme pour la 2 relais, les relais doivent être associés au GPIO par des cavaliers, voir le code ci-dessous à ajouter dans les switch:
switch:
- platform: gpio
name: "${friendly_name} Relais1"
pin: GPIO16
id: relais1
- platform: gpio
name: "${friendly_name} Relais2"
pin: GPIO14
id: relais2
- platform: gpio
name: "${friendly_name} Relais3"
pin: GPIO12
id: relais3
- platform: gpio
name: "${friendly_name} Relais4"
pin: GPIO13
id: relais4
Conclusion
Dans cet article, il y a des éléments qui paraîtrons basiques ou évidents pour certain, j’en convient mais il s’adresse aux moins expérimentés qui souhaitent mettre un peu les mains dans le pâté en s’équipant de module presque prêts à l’emploi tout en offrant un maximum de possibilités pour quelques euros.