📖 Chapitre 4/5 — Domotique : ESP8266 et relais Voir le sommaire →
Un ESP-12E pour piloter 8 relais
← Retour
Électronique

Un ESP-12E pour piloter 8 relais

Cédrix · 01/07/2026
Modifié le 2 juillet 2026 à 11h16

Guide autonome pour piloter 8 relais directement par les broches (GPIO) d’un Wemos / NodeMCU v3 (ESP-12E / ESP8266).

C’est le montage le plus simple qui soit — l’ESP pilote directement le module relais. En contrepartie, il est limité à 8 relais et mobilise deux broches de boot (D3/D4), avec un risque de bref « clac » au démarrage. Si vous visez 16 relais, ou si vous voulez éliminer tout aléa au boot, préférez le montage à base de MCP23017.

Quand choisir ce montage ?

Ce montage convient si :

  • 8 relais suffisent à votre projet ;
  • vous acceptez un éventuel « clac » très bref (de l’ordre de la milliseconde) sur les relais 4 et 5 à la mise sous tension ;
  • vous voulez démarrer vite, sans composant d’extension.

L’ESP8266 dispose justement de 8 broches GPIO utilisables sans précaution excessive (D0 à D7) : une par relais, le compte est bon. Nul besoin d’un microcontrôleur dernier cri — un ESP8266 suffit largement, avec son Wi-Fi intégré et ses 8 sorties.

Matériel utilisé

Élément Détail
Carte Wemos / NodeMCU v3, puce ESP-12E (ESP8266)
Module relais Carte 8 relais avec borniers IN1..IN8, VCC, GND (souvent JD-VCC)
Alimentation 5 V externe capable de fournir le courant des 8 bobines (≈ 0,5–0,6 A)
Liaison PC Câble USB (le NodeMCU apparaît en /dev/ttyUSB0)

La plupart des modules 8 relais du commerce fonctionnent en logique active-bas :

  • broche IN à l’état BAS (0 V) → relais activé (ON) ;
  • broche IN à l’état HAUT (3,3 V / 5 V) → relais au repos (OFF).

Retenez bien ce point : il explique à lui seul pourquoi le montage cohabite bien avec les broches de boot de l’ESP8266.

Câblage — table relais ↔ GPIO

C’est le brochage défini dans include/config.h (RELAY_PINS) :

//                 Relais 1   2   3    4    5    6    7    8
//                 NodeMCU  D0  D1  D2   D3   D4   D5   D6   D7
static const uint8_t RELAY_PINS[GPIO_RELAY_MAX] = { 16, 5, 4, 0, 2, 14, 12, 13 };
Relais Bornier GPIO Pin NodeMCU Remarque
1 IN1 GPIO16 D0 sûr (pas d’interruption/PWM, sans importance ici)
2 IN2 GPIO5 D1 sûr
3 IN3 GPIO4 D2 sûr
4 IN4 GPIO0 D3 ⚠️ broche de boot
5 IN5 GPIO2 D4 ⚠️ broche de boot (aussi LED interne)
6 IN6 GPIO14 D5 sûr
7 IN7 GPIO12 D6 sûr
8 IN8 GPIO13 D7 sûr

💡 On évite GPIO15 (D8) : Cette broche est tirée à la masse au démarrage par la carte elle-même. En logique active-bas, cela collerait un relais à chaque boot — et un signal externe qui la tirerait au mauvais niveau pourrait même empêcher le démarrage. On la laisse donc de côté.

Broches de boot (D3/D4) — le piège à connaître

GPIO0 (D3) et GPIO2 (D4) sont des broches de boot strapping : au moment de la mise sous tension, l’ESP8266 lit leur niveau pour décider de son mode de démarrage. Elles doivent être HAUTES pour un boot normal ; si elles sont basses, l’ESP part en mode flash au lieu d’exécuter le firmware.

Bonne nouvelle : en logique active-bas, l’état OFF des relais correspond justement à des broches HAUTES. En fonctionnement normal, il n’y a donc aucun conflit — c’est ce qui rend ce montage viable.

Le problème ne se pose qu’à deux moments :

  • à la mise sous tension, où un bref état transitoire peut faire « claquer » les relais 4 et 5 pendant une milliseconde ;
  • pendant le flash du firmware, si le module relais tire ces broches vers le bas et empêche l’ESP de démarrer ou d’entrer en mode programmation.

⚠️ Si l’ESP refuse de booter ou de flasher une fois le module branché : débranchez IN4 (D3) et/ou IN5 (D4) le temps du flash USB, puis rebranchez-les une fois le firmware chargé. C’est précisément cette gymnastique que le montage MCP23017 fait disparaître.

Alimentation — le point important ⚡

Une bobine de relais consomme ~60–80 mA. Avce 8 relais activés simultanément, on atteint 0,5–0,6 A. Or :

  • le régulateur 3,3 V du NodeMCU ne peut pas fournir ce courant
  • la sortie 5 V (Vin) issue de l’USB est elle aussi limitée.

La solution recommandée : alimenter les bobines par une alimentation 5 V externe, en tirant parti de l’isolation par optocoupleurs intégrée au module. Concrétement, en quatres étapes :

  • Retirer le cavalier VCCJD-VCC du module relais (active l’isolation).
  • JD-VCC (bobines) → +5 V externe ; GND bobines → GND externe.
  • VCC (côté optocoupleurs / logique IN) → +5 V alim externe.
  • Masse commune obligatoire : GND NodeMCU = GND opto = GND alim externe.
   Alim 5V externe ──┬── JD-VCC (bobines)
                     └── GND ───────┬── GND module ── GND opto
   Alim 5V externe ───────── VCC module (côté IN/opto)
   NodeMCU GND ──────────────────── masse commune ──┘

⚠️ Ne tentez pas d’alimenter les 8 bobines depuis le seul USB du NodeMCU. Vous vous exposeriez à des chutes de tension, des redémarrages intempestifs et des relais qui « claquent » de façon erratique.

Partager : ✉ Mail X in 🐘
Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.