HA-Platines Relais ESP8266

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 relier 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 celle é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 cela pour quelques euros.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.