ESP32 S3 - Capteur de lumière déclenche un relais

Ce tutoriel vous montre comment utiliser l'ESP32 S3 avec un capteur de lumière pour contrôler automatiquement un relais selon le niveau de lumière ambiante. En combinant la mesure analogique de la lumière avec la commutation d'un relais, vous acquerrez une compréhension pratique de la façon de déclencher des charges de forte puissance en réponse à des données de capteur du monde réel sur l'ESP32 S3.

Ce que vous allez construire :

  1. Un circuit connectant un capteur de lumière (photorésistance/LDR) et un module relais à l'ESP32 S3
  2. Un sketch qui lit en continu la valeur analogique du capteur de lumière
  3. Un système qui allume automatiquement le relais quand la lumière ambiante descend sous un seuil défini et l'éteint quand la lumière revient
  4. Une base pour construire des systèmes d'automatisation déclenchés par la lumière tels que des veilleuses automatiques, des contrôleurs de lampadaires et des systèmes de serre intelligente

Le capteur de lumière LDR est très abordable, mais il nécessite une résistance pour le câblage, ce qui peut compliquer le montage. Pour simplifier le câblage, vous pouvez utiliser un module capteur de lumière LDR comme alternative.

À propos du relais et du capteur de lumière

Un capteur de lumière (photorésistance) est un composant analogique dont la résistance diminue quand la lumière ambiante augmente, produisant une tension variable que l'ESP32 S3 lit via son ADC pour déterminer les niveaux de luminosité. Associé à un relais, l'ESP32 S3 peut utiliser cette lecture de luminosité pour commuter en toute sécurité des charges haute tension ou fort courant — comme des ampoules, des ventilateurs ou des sirènes — que ses broches GPIO ne peuvent pas piloter directement.

Caractéristiques principales

Nous avons des tutoriels dédiés couvrant chaque composant en profondeur. Chaque tutoriel contient des informations détaillées et des instructions étape par étape sur le brochage matériel, le principe de fonctionnement, le câblage vers l'ESP32 S3 et le code Arduino. Découvrez-en plus aux liens suivants :

Schéma de câblage

Connectez le capteur de lumière et le relais à votre ESP32 S3 en suivant le schéma ci-dessous. Vérifiez bien toutes les connexions avant de mettre sous tension, en particulier le câblage haute tension sur les bornes de sortie du relais.

Schéma de câblage capteur de lumière relais ESP32 S3

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous comptez garder ce circuit, pensez aux borniers à vis. Essayez une carte à bornier à vis pour ESP32 S3 : la carte ESP32 S3 se place dessus et chaque broche a son propre bornier à vis. Chaque fil va au bornier à vis de la même broche, comme sur l'image ci-dessous.

Schéma de câblage capteur de lumière relais ESP32 S3 (Screw Terminal)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Une carte d'extension GPIO pour ESP32 S3 convient aussi. En plus des broches S, 3,3V et GND de chaque GPIO, elle a des broches 3,3V et 5V supplémentaires :

Schéma de câblage capteur de lumière relais ESP32 S3 (GPIO Breakout Board)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Consignes de sécurité

Vérifiez toujours que les bornes COM et NO (ou NC) du relais sont fermement fixées et qu'aucun fil nu n'est exposé avant de mettre le circuit sous tension. Gardez le câblage de commande basse tension vers l'ESP32 S3 physiquement séparé de tout câblage de charge haute tension pour réduire le risque de contact accidentel.

Composant Broche Broche ESP32 S3
Capteur de lumière Broche 1 3,3V
Capteur de lumière Broche 2 GPIO4 (broche analogique) + résistance 10kΩ
Résistance 10kΩ (autre extrémité) GND
Relais DC- GND
Relais DC+ 5V
Relais IN GPIO10

Code ESP32 S3

Le code suivant lit la valeur analogique du capteur de lumière sur l'ESP32 S3, la compare à un seuil configurable, et active le relais quand le niveau de lumière descend sous ce seuil. La valeur du seuil peut être ajustée directement dans le code pour s'adapter à différents environnements lumineux et exigences de sensibilité.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-light-sensor-triggers-relay */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-light-sensor-triggers-relay */ #define LIGHT_SENSOR_PIN 4 // ESP32-S3 pin GPIO4 (ADC0) connected to light sensor #define RELAY_PIN 10 // ESP32-S3 pin GPIO10 connected to Relay #define ANALOG_THRESHOLD 500 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(RELAY_PIN, OUTPUT); // set ESP32-S3 pin to output mode } void loop() { int analogValue = analogRead(LIGHT_SENSOR_PIN); // read the value on analog pin if (analogValue < ANALOG_THRESHOLD) digitalWrite(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez les composants en suivant le schéma de câblage montré ci-dessus.
  3. Connectez la carte ESP32 S3 à votre PC à l'aide d'un câble USB Type-C.
  4. Ouvrez l'Arduino IDE sur votre PC.
  5. Sélectionnez la bonne carte ESP32 S3 et le bon port COM dans le menu Tools.
  6. Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  7. Cliquez sur le bouton Upload pour compiler et téléverser le code sur l'ESP32 S3.
Téléverser le code avec Arduino IDE
  1. Ouvrez le moniteur série à 115200 bauds.
  2. Couvrez le capteur de lumière avec votre main pour réduire le niveau de lumière et observez le relais s'activer (vous entendrez un clic).
  3. Exposez le capteur à une lumière vive et observez le relais s'éteindre.
  4. Vérifiez le moniteur série pour voir les valeurs analogiques en direct et l'état du relais affichés en temps réel.
  5. Astuce : Essayez d'ajuster la valeur du seuil dans le code pour affiner le point de déclenchement — un seuil plus bas nécessite une quasi-obscurité pour activer le relais, tandis qu'une valeur plus élevée l'active dans des conditions plus sombres, ce qui est utile pour différents scénarios d'automatisation lumineuse.

Résultat sur le moniteur série

Le résultat suivant du moniteur série montre l'ESP32 S3 lisant les valeurs analogiques du capteur de lumière et commutant le relais en temps réel. Chaque ligne affiche la lecture ADC actuelle et l'état du relais correspondant déclenché par le seuil de lumière.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:14:01] Analog Value: 3812 | Relay: OFF [2026-06-16 09:14:02] Analog Value: 2104 | Relay: OFF [2026-06-16 09:14:03] Analog Value: 987 | Relay: ON [2026-06-16 09:14:04] Analog Value: 312 | Relay: ON
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Note:

Ce tutoriel utilise la fonction analogRead() pour lire les valeurs d'un ADC (convertisseur analogique-numérique) connecté à un capteur de lumière. L'ADC de l'ESP32 S3 convient aux projets qui n'exigent pas une grande précision. Cependant, pour les projets nécessitant des mesures précises, gardez à l'esprit les points suivants :

  • L'ADC de l'ESP32 S3 n'est pas parfaitement précis et peut nécessiter un étalonnage pour obtenir des résultats corrects. Chaque carte ESP32 S3 peut varier légèrement, donc un étalonnage est nécessaire pour chaque carte individuelle.
  • L'étalonnage peut être difficile, en particulier pour les débutants, et ne donne pas toujours exactement les résultats souhaités.

Pour les projets nécessitant une haute précision, envisagez d'utiliser un ADC externe (par exemple ADS1115) avec l'ESP32 S3. Si vous voulez quand même étalonner l'ADC de l'ESP32 S3, consultez le pilote d'étalonnage ADC de l'ESP32.

Applications et idées de projets

Une fois que vous pouvez déclencher un relais à partir d'une lecture de capteur de lumière sur l'ESP32 S3, vous pouvez étendre ce modèle à un large éventail de projets d'automatisation et de contrôle sensibles à la lumière.

  1. Veilleuse automatique : Activez automatiquement une ampoule ou un ruban LED contrôlé par relais quand la lumière ambiante descend sous un niveau défini au crépuscule.
  2. Contrôleur de lampadaire intelligent : Utilisez le capteur de lumière pour allumer les lampadaires au coucher du soleil et les éteindre au lever du soleil sans minuterie manuelle.
  3. Contrôleur d'éclairage de croissance en serre : Allumez des lampes de croissance d'appoint via relais quand les niveaux de lumière naturelle dans la serre descendent sous le seuil nécessaire à la croissance des plantes.
  4. Lumière de périmètre de sécurité : Déclenchez une lumière d'avertissement 12V ou une sirène via relais chaque fois qu'une zone devient inopinément sombre, indiquant une possible obstruction ou intrusion.
  5. Contrôle CVC économe en énergie : Combinez la détection de lumière avec un ventilateur contrôlé par relais pour ajuster la ventilation selon l'intensité de la lumière solaire comme indicateur de la température de la pièce.
  6. Contrôleur de chambre noire photo : Alimentez automatiquement un équipement contrôlé par relais quand la lumière de la chambre noire descend sous un seuil sûr, protégeant les matériaux sensibles à la lumière.

Relais vs module MOSFET

Un relais n'est pas le seul moyen de commuter un appareil. Si votre appareil fonctionne en courant continu (DC), comme une bande LED 12V, une serrure à solénoïde 12V ou un ventilateur 12V, un module MOSFET peut faire le même travail.

Relais Module MOSFET
Ce qu'il peut faire allumer ou éteindre l'appareil allumer ou éteindre l'appareil, et régler sa puissance (PWM)
Bruit à la commutation un clic à chaque fois aucun bruit
Vitesse de commutation lente, quelques millisecondes très rapide
Durée de vie les contacts s'usent après de nombreuses commutations rien ne bouge, donc il dure longtemps
Type d'alimentation AC ou DC DC uniquement
Alimentation de l'appareil toute tension admise par le relais environ 6V ou plus
Isolation de l'ESP32 S3 oui, entre bobine et contacts oui, par l'optocoupleur PC817
Idéal pour appareils AC, ou simple ON/OFF appareils DC, ou variation de luminosité et de vitesse

Le relais et le module MOSFET s'activent tous les deux quand la broche de l'ESP32 S3 est à l'état HIGH. Le niveau 3.3V de l'ESP32 S3 suffit largement, car la LED de l'optocoupleur PC817 n'a besoin que de quelques milliampères. Donc, pour un simple ON/OFF, le code ci-dessus reste le même. Seul le câblage change. Pour les appareils branchés sur le secteur AC, utilisez toujours le relais.

Pour connaître le brochage, le câblage, le code PWM et les conseils de sécurité du module MOSFET, consultez le tutoriel ESP32 S3 - Module MOSFET.

Vidéo du tutoriel

Regardez ci-dessous le tutoriel vidéo étape par étape pour ce projet ESP32 S3.

Défiez-vous

Maintenant que vous pouvez contrôler un relais avec un capteur de lumière sur l'ESP32 S3, essayez ces extensions progressivement plus difficiles pour approfondir votre compréhension et construire des systèmes d'automatisation déclenchés par la lumière plus performants.

  1. Débutant : Modifiez la valeur du seuil dans le code et observez comment cela change le niveau de lumière auquel le relais s'active, puis affichez un message de confirmation sur le moniteur série indiquant quel seuil est actuellement actif.
  2. Débutant : Ajoutez un indicateur LED câblé sur une broche GPIO séparée qui s'allume chaque fois que le relais est activé, vous donnant une confirmation visuelle basse tension en plus du clic audible du relais.
  3. Intermédiaire : Implémentez une hystérésis dans la logique de seuil pour que le relais s'active à un niveau de lumière (par exemple, valeur ADC sous 1000) mais ne s'éteigne que quand la luminosité remonte au-dessus d'un niveau plus élevé (par exemple, valeur ADC au-dessus de 1500), empêchant un cliquetis rapide du relais près de la limite.
  4. Intermédiaire : Ajoutez un écran OLED I2C pour afficher la lecture ADC en direct et l'état du relais dans un affichage formaté, supprimant la dépendance au moniteur série pour la surveillance.
  5. Avancé : Stockez une valeur de seuil configurable dans la mémoire non volatile de l'ESP32 S3 (bibliothèque Preferences) afin que le réglage persiste après un cycle d'alimentation sans rételéverser le code.
  6. Avancé : Étendez le projet avec le WiFi afin que le relais puisse être surveillé et le seuil de lumière ajusté à distance depuis une page web servie par l'ESP32 S3.

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !