Piloter des appareils électriques avec un relais et l’ESP32 avec du code Arduino
(Mis à jour le 06/01/2023)
Si vous voulez faire de la domotique, le relais est le module incontournable. En effet, couplé avec une ESP32 vous pouvez contrôler directement des appareils ménagers aussi bien sur votre téléphone, que sur votre ordinateur, voir depuis partout dans le monde depuis Internet si vous le souhaitez.
Avertissement
Manipuler des tensions secteurs est dangereux. Si vous amenez à en utiliser, cela doit être fait avec la plus grande prudence. Pour une utilisation permanente, je vous conseille fortement d’utiliser des modules relais de bonnes qualités professionnels et de faire vérifier votre installation par un professionnel avant tout usage.
Prendre en main un relais
Un relais est très facile à utiliser, surtout quand ils sont vendus sous la forme d’un module qui contient un circuit élémentaire pour l’utiliser.
Note
Je vous encourage fortement à prendre un module tout fait qui intègre relais avec son circuit minimal, plutôt qu’utiliser le relais seul et de faire vous-même le circuit pour la partie logique (le relais en lui-même, ne rentre pas sur une breadboard et ne doit pas être mis dessus de toute façon).
Présentation et fonctionnement d’un relais
Si vous n’avez jamais utilisé un relais avant ou que par curiosité vous voulez comprendre comment il fonctionne, ses cas d’usage et ses limitations, je vous encourage fortement à consulter l’article plus théorique sur le fonctionnement d’un relais .
Très brièvement, c’est un interrupteur mécanique que l’on contrôle via l’ESP32 pour allumer/éteindre un circuit électrique costaud en courant continu (des rubans de leds RGB, des pompes) ou un appareil relié au secteur 220V (ventilateurs, lumières, appareil de chauffage, moteur…).
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. En général, ils se déclinent en 2 catégories : un module avec un unique relais et un autre avec plusieurs relais en même temps. Donc si vous prévoyez de piloter séparément plusieurs circuits de puissance dans un même projet, c’est plus intéressant de prendre un module multirelais.
Note
Ce relais est fait pour être alimenté en 5V : SRD-05VDC -SL-C. Si vous utilisez une ESP32 qui fonctionne sur batterie LiPo, alors la tension disponible sera plutôt entre 3.3V et 4.2V. Il serait donc judicieux de prendre dans ce cas, un module SRD-03VDC -SL-C qui s’alimente en 3.3V.
Avertissement
Contrairement au schéma avec un transistor, la masse de la partie logique et de la partie puissance est complètement séparée. Il ne faut surtout pas les relier, surtout si c’est du 220V alternatif, ou il n’y a pas de masse !
Sur le modèle SRD-05VDC-SL-C , il y a 3 broches pour piloter le relais :
La broche
S
, tout à gauche que l’on relie à une broche de l’ESP32 (iciGPIO32
) . Elle permet d’envoyer un signal pour piloter le relais.La broche du milieu est l’alimentation que l’on relie au 5V de l’ESP32. (3V3 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
.
Le relais dispose d’un bornier à 3 plots en 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 en circuit sera relié à la borne COM
et NO
ou NC
en fonction de votre application. En choisissant NO
, le relais sera ouvert par défaut (le circuit électrique ne serait pas fermé). Le circuit sera fermé uniquement quand un signal sera envoyé au relais.
A contrario, en choisissant les bornes COM
et NC
, le circuit sera fermé par défaut : l’appareil est allumé. Quand le relais sera activé, le circuit deviendra ouvert, et l’appareil branché ne sera plus alimenté.
C’est plus prudent, de choisir le mode le moins dangereux en cas de défaut de commande (ou si le relais est HS). Par exemple, si c’est pour alimenter une résistance chauffante, il vaut mieux que le circuit soit ouvert si le relais ne fonctionne plus correctement.
Note
Je vous recommande donc d’utiliser la combinaison COM
et NO
si c’est pour allumer ponctuellement un appareil (lampe, moteur, pompe).
Voici un exemple avec un relais qui allume un gros ventilateur d’ordinateur :
Contrôler le relais avec du code Arduino sur l’ESP32
Pour le coup, le code Arduino est ultra-simple, c’est un comme si on voulait allumer et éteindre une LED. Le code est identique au fameux sketch blink
. Il n’y a pas besoin d’installer de librairies tierces.
#define RELAIS 32
void setup() {
pinMode(RELAIS,OUTPUT);
}
void loop() {
digitalWrite(RELAIS, HIGH); // Le circuit est fermé pendant 200ms
delay(200);
digitalWrite(RELAIS,LOW); // Le circuit est ouvert pendant 5s
delay(5000);
}
Note
Le relais se contrôle en tout ou rien (0V ou 5V) et non pas avec un signal PWM à tension variable.
Et voici ce que cela donne avec le circuit proposé :
Note
Si c’est pour allumer/éteindre très fréquemment un moteur, un montage avec transistor serait plus approprié.
Des modules relais avancés multicanaux
Il existe une variété de modules relais disponibles, qui vont de 1 à 8 canaux. Pour un système de domotique, c’est très pratique. Chacun d’entre eux peut contrôler un nombre correspondant de sorties. Ils utilisent en général le même relais bleu SRD-05VDC-SL-C.
Séparer complètement l’ESP32 du relais avec les optocoupleurs
Sur les modèles avec au moins de canaux, il y a en général un optocoupleur intégré qui permet d’isoler complètement le relais de votre ESP32.
Cette section est réservée aux abonnés. Il vous reste 81% à découvrir.
Devenir membre premiumDéjà abonné ? Connectez-vous