Piloter des appareils électriques avec un relais et un ESP32 en MicroPython
(Mis à jour le 06/01/2023)
Si vous souhaitez réaliser des projets domotiques DIY, le relais est essentiel. En le couplant avec une ESP32 connecté en WiFi, vous pouvez contrôler directement les appareils ménagers depuis votre téléphone, ordinateur ou même à distance depuis Internet.
Avertissement
Cependant, manipuler des tensions secteurs peut être très dangereux. Si vous devez l’utiliser, faites-le avec la plus grande prudence et pour une utilisation continue, il est préférable d’opter pour des modules relais de qualité et de confirmer son installation par un professionnel avant toute utilisation.
Prendre en main un relais
Utiliser un relais est très simple, surtout quand il est vendu sous forme de module près à l’emploi.
Note
Je vous recommande vivement d’utiliser un module qui incorpore un relais avec son circuit minimal plutôt que d’utiliser le relais seul et de fabriquer vous-même le circuit pour la partie logique (le relais en lui-même ne s’adapte pas à une breadboard et ne doit pas être placé dessus de toute façon).
Présentation et fonctionnement d’un relais
Si vous n’avez jamais utilisé de relais auparavant ou si vous êtes curieux de comprendre comment il fonctionne, ses utilisations et ses limites, je vous recommande vivement de lire l’article théorique sur le fonctionnement d’un relais .
Brièvement, c’est un interrupteur mécanique que l’on contrôle via l’ESP32 pour allumer/éteindre un circuit électrique puissant en courant continu (bandes LED RGB, pompes) ou un appareil connecté au secteur 220V (ventilateurs, lumières, appareils de chauffage).
Note
Si le but est de très fréquemment allumer et éteindre un moteur, le montage à transistor serait plus approprié (pour du courant continu bien sûr).
Branchement avec le relais SRD-05VDC-SL-C
Dans la plupart des kits Arduino, les modules utilisent le relais SRD-05VDC-SL-C du fabricant Songle . Il existe en général deux variétés : un module avec un seul relais et un autre avec plusieurs relais en même temps. Si vous avez prévu de piloter séparément plusieurs circuits de puissance dans un projet, prenez plutôt le module multirelais.
Note
Le modèle SRD-05VDC- SL-C est conçu pour être alimenté en 5V, mais si vous utilisez une ESP32 alimentée par une batterie LiPo, la tension disponible sera généralement comprise entre 3.3V et 4.2V. Dans ce cas, le modèle SRD-03VDC SL-C, qui s’alimente en 3.3V, est plus approprié.
Avertissement
Lorsqu’un relais est utilisé, les masses de la partie logique et de la partie puissance sont complètement séparées et ne doivent jamais être reliées, surtout si le circuit est alimenté en 220V alternatif.
Le modèle SRD-05VDC-SL-C comporte 3 broches pour piloter le relais :
La broche de signal
S
pour piloter le relais, qu’on relie à une broche de l’ESP32.La broche d’alimentation que l’on relie au
5V
de l’ESP32. (Ou au3V3
si c’est le module SRD-03VDC -SL-C).La dernière broche, représenté par
-
est la masse, que l’on relie à une brocheGND
.
Il y a également un bornier à 3 plots à la sortie côté puissance
NC
: Normally Closed, en français Contact Normalement Fermé.COM
: La broche du milieu, appelé commun (COM).NO
: Normally Open : Contact Normallement Ouvert
L’appareil du circuit de puissance sera relié à la borne COM
et NO
ou NC
selon l’application. Si vous optez pour NO
, le relais sera par défaut ouvert (le circuit électrique ne sera pas fermé). Il n’y aura fermeture du circuit que lorsque le relais sera activé par un signal.
Par contre, en choisissant les bornes COM
et NC
, le circuit sera par défaut fermé : le dispositif branché sera alimenté. Quand le relais sera activé, le circuit s’ouvrira, et l’appareil branché s’arrêtera de fonctionner.
Il est plus prudent de choisir le mode le moins dangereux en cas de défaut de commande (ou si le relais est en panne). Par exemple, s’il s’agit d’alimenter une résistance chauffante, il est préférable que le circuit reste ouvert si le relais ne fonctionne plus correctement.
Note
Je vous suggère donc d’utiliser la combinaison COM
et NO
si c’est pour actionner ponctuellement un appareil (lampe, moteur, pompe).
Voici un exemple d’utilisation d’un relais pour allumer un gros ventilateur d’ordinateur, alimenté en 12V.
Contrôler le relais avec du Python sur l’ESP32
Le script MicroPython est très simple, c’est comme si on devait allumer ou éteindre une LED. Le code est identique au script blink
.
from machine import Pin
import time
pin_relay = Pin(32, mode=Pin.OUT)
while True:
pin_relay.on()
time.sleep_ms(200)
pin_relay.off()
time.sleep_ms(5000)
Et voici ce que cela donne avec le circuit proposé :
Note
Le module dispose d’une LED pour connaître l’état du relais. Elle s’allume lorsque le relais est activé.
Des modules relais avancés multicanaux
Il existe une variété de modules relais disponibles, allant d’un à huit canaux. Chaque module peut contrôler un nombre correspondant de sorties et contient en général un relais bleu SRD-05VDC-SL-C.
Séparer complètement l’ESP32 du relais avec les optocoupleurs
Les modèles comportant au moins deux canaux intègrent en général un optocoupleur afin d’isoler complètement le relais de l’ESP32.
Note
Un optocoupleur permet d’isoler complètement un signal logique avec un émetteur et un récepteur sensible à la lumière.
Cette section est réservée aux abonnés. Il vous reste 75% à découvrir.
Devenir membre premiumDéjà abonné ? Connectez-vous