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
VCC–JD-VCCdu module relais (active l’isolation). JD-VCC(bobines) → +5 V externe ;GNDbobines → 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.
Commentaires
Aucun commentaire pour l'instant. Soyez le premier !
Laisser un commentaire