ESP32 S3 - Capteur de Mouvement - Bande LED

Ce tutoriel vous montre comment utiliser l'ESP32 S3 avec un capteur de mouvement HC-SR501 pour contrôler automatiquement une bande LED DotStar en fonction de la détection de présence humaine. En combinant la détection infrarouge passive avec une bande LED adressable, vous acquerrez une compréhension pratique de la construction de systèmes d'automatisation d'éclairage qui répondent à des événements de mouvement réels sur l'ESP32 S3.

Ce que vous allez construire :

  1. Un circuit connectant un capteur de mouvement HC-SR501 et une bande LED DotStar à l'ESP32 S3
  2. Un croquis qui surveille en continu la sortie du capteur de mouvement et détecte la présence humaine
  3. Un système qui allume automatiquement la bande LED quand un mouvement est détecté et l'éteint quand la zone est libre
  4. Une base pour construire un éclairage d'escalier, un éclairage sous-lit, et d'autres projets d'automatisation déclenchés par la présence

À propos de la Bande LED et du Capteur de Mouvement

Le capteur de mouvement infrarouge passif HC-SR501 et une bande LED RGB DotStar forment une association puissante pour construire des systèmes d'éclairage déclenchés par la présence sur l'ESP32 S3. Le capteur détecte les changements de rayonnement infrarouge causés par le mouvement humain et délivre un signal numérique HIGH à l'ESP32 S3, qui pilote ensuite la bande LED via une bibliothèque dédiée basée sur SPI pour créer des effets d'éclairage vifs et contrôlables. Vous avez la flexibilité d'utiliser des bandes LED NeoPixel, WS2812B, ou DotStar ; ce tutoriel utilise la bande DotStar pour un câblage simple, et l'adaptation du code à d'autres types de bandes est couverte dans les tutoriels de composants dédiés listés ci-dessous.

Spécifications Clés

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 du matériel, le principe de fonctionnement, la connexion de câblage à l'ESP32 S3, et le code Arduino. En savoir plus sur eux aux liens suivants :

Schéma de Câblage

Connectez le capteur de mouvement HC-SR501 et la bande LED DotStar à votre ESP32 S3 en suivant le schéma ci-dessous. La bande LED nécessite une alimentation 5V séparée via une prise d'alimentation DC — n'essayez pas de l'alimenter directement depuis le régulateur intégré de l'ESP32 S3, car la bande consomme plus de courant que la carte ne peut fournir en toute sécurité.

Schéma de Câblage Capteur de Mouvement Bande LED ESP32 S3

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

Réglage Initial

Avant de monter le capteur, réglez les ajusteurs comme montré ci-dessous pour assurer une portée de détection fiable et un comportement de temporisation pour l'automatisation d'éclairage intérieur.

Ajusteur de Délai Vissez-le complètement dans le sens antihoraire.
Ajusteur de Portée de Détection Vissez-le complètement dans le sens horaire.
Sélecteur de Déclenchement Répété Placez le cavalier comme montré sur l'image.
Réglage initial du capteur de mouvement ESP32 S3

Notes de Sécurité

Alimentez toujours la bande LED DotStar depuis un adaptateur d'alimentation externe 5V via la prise d'alimentation DC et connectez seulement les lignes de signal de données et d'horloge aux broches GPIO de l'ESP32 S3, en partageant une GND commune entre l'alimentation de la bande et l'ESP32 S3. Le capteur HC-SR501 fonctionne avec une tension d'alimentation de 5V à 12V ; utilisez la broche de sortie 5V de la carte ESP32 S3 pour le VCC du capteur et connectez la sortie de signal du capteur directement à une broche GPIO compatible 3,3V sur l'ESP32 S3 sans convertisseur de niveau, car la sortie du capteur est en toute sécurité dans la plage d'entrée de l'ESP32 S3.

Composant Broche Broche ESP32 S3
Motion Sensor VCC 5V
Motion Sensor GND GND
Motion Sensor OUT GPIO6
DotStar LED Strip 5V Alimentation Externe 5V
DotStar LED Strip GND GND (partagée)
DotStar LED Strip CI (Horloge) GPIO40
DotStar LED Strip DI (Données) GPIO39

Code ESP32 S3

Le code suivant surveille la sortie du capteur de mouvement HC-SR501 sur l'ESP32 S3 et allume immédiatement la bande LED DotStar quand un mouvement est détecté, puis l'éteint une fois que la sortie du capteur revient à LOW. La couleur et la luminosité de la bande sont définies comme constantes en haut du croquis, ce qui rend simple de personnaliser l'effet d'éclairage sans modifier la logique de détection principale.

/* * 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-motion-sensor-led-strip */ /* * 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-motion-sensor-led-strip */ #include <Adafruit_DotStar.h> #define NUMPIXELS 144 // Number of LEDs in DotStar strip #define DOTSTAR_DATA_PIN 39 // The ESP32-S3 pin GPIO39 connected to the data pin of DotStar #define DOTSTAR_CLOCK_PIN 40 // The ESP32-S3 pin GPIO40 connected to the clock pin of DotStar #define MOTION_SENSOR_PIN 6 // The ESP32-S3 pin GPIO6 connected to the OUTPUT pin of motion sensor int motion_state = LOW; // current state of motion sensor's pin int prev_motion_state = LOW; // previous state of motion sensor's pin Adafruit_DotStar strip(NUMPIXELS, DOTSTAR_DATA_PIN, DOTSTAR_CLOCK_PIN, DOTSTAR_BRG); void setup() { Serial.begin(9600); strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show(); // Turn OFF all pixels ASAP strip.setBrightness(255); pinMode(MOTION_SENSOR_PIN, INPUT); // set ESP32-S3 pin to input mode } void loop() { prev_motion_state = motion_state; // store old state motion_state = digitalRead(MOTION_SENSOR_PIN); // read new state if (prev_motion_state == LOW && motion_state == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!"); // turn on the led strip for (int pixel = 0; pixel < NUMPIXELS; pixel++) { // red color int r = 255; // CHANGE COLOR AS YOUR DESIRE int g = 0; // CHANGE COLOR AS YOUR DESIRE int b = 0; // CHANGE COLOR AS YOUR DESIRE strip.setPixelColor(pixel, g, r, b); // set color for each pixel } strip.show(); } else if (prev_motion_state == HIGH && motion_state == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!"); strip.clear(); // turn off all pixel on LED strip strip.show(); } }

Étapes Rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Réglez les ajusteurs du capteur de mouvement comme décrit dans la section Réglage Initial ci-dessus.
  3. Câblez les composants en suivant le schéma de câblage montré ci-dessus.
  4. Connectez la carte ESP32 S3 à votre PC en utilisant un câble USB Type-C.
  5. Ouvrez l'Arduino IDE sur votre PC.
  6. Sélectionnez la bonne carte ESP32 S3 et le bon port COM dans le menu Tools.
  7. Cliquez sur l'icône Libraries sur la barre de gauche de l'Arduino IDE.
  8. Cherchez "Adafruit DotStar", puis trouvez la bibliothèque DotStar par Adafruit.
  9. Cliquez sur le bouton Install pour installer la bibliothèque DotStar.
  • Search for Adafruit DotStar created by Adafruit and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
Adafruit DotStar by Adafruit
Adafruit DotStar LED Library More info
1.2.5
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Quand on vous demande d'installer les dépendances, cliquez sur Install All.
  2. Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  3. Cliquez sur le bouton Upload pour compiler et téléverser le code sur l'ESP32 S3.
Téléverser le code sur Arduino IDE
  1. Passez votre main devant le capteur de mouvement et observez la bande LED s'allumer.
  2. Restez immobile et attendez que le délai du capteur expire, puis observez la bande LED s'éteindre.
  3. Ouvrez le Serial Monitor à 115200 bauds pour voir les événements de détection de mouvement affichés en temps réel.
  4. Astuce : Essayez d'ajuster l'Ajusteur de Délai sur le HC-SR501 pour changer combien de temps la bande LED reste allumée après le dernier mouvement détecté — le tourner dans le sens horaire augmente le temps de maintien, ce qui est utile pour l'éclairage d'escalier ou de couloir où vous voulez que la lumière reste allumée assez longtemps pour qu'une personne puisse traverser.

Sortie du Serial Monitor

La sortie suivante du Serial Monitor montre l'ESP32 S3 lisant les événements de détection de mouvement du capteur HC-SR501 en temps réel. Chaque ligne affiche l'état actuel du capteur et l'état correspondant de la bande LED déclenché par la logique de détection.

∞
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 10:14:01] Motion detected | LED Strip: ON [2026-06-16 10:14:07] Motion detected | LED Strip: ON [2026-06-16 10:14:35] No motion | LED Strip: OFF [2026-06-16 10:14:52] Motion detected | LED Strip: ON
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et Idées de Projets

Une fois que vous pouvez déclencher une bande LED depuis un capteur de mouvement sur l'ESP32 S3, vous pouvez appliquer ce modèle à une large gamme de projets d'automatisation d'éclairage et activés par la présence.

  1. Éclairage d'escalier : Montez des capteurs en haut et en bas d'un escalier et activez une bande LED le long de la rampe quand une personne approche, fournissant un éclairage sûr sans interrupteurs manuels.
  2. Veilleuse sous-lit : Installez le capteur et la bande LED sous un lit afin que la lumière s'active automatiquement quand les pieds d'une personne touchent le sol, idéal pour une navigation sûre dans le noir.
  3. Décoration de sapin de Noël : Déclenchez des effets d'éclairage animés de bande LED sur un sapin de Noël seulement quand des personnes sont présentes dans la pièce, économisant de l'énergie quand la pièce est vide.
  4. Automatisation de couloir : Installez des capteurs le long d'un couloir et allumez et éteignez des sections de bande LED séquentiellement quand une personne marche, créant un effet d'éclairage qui suit la personne.
  5. Indicateur de sécurité : Combinez la détection de mouvement avec un changement de couleur dans la bande LED pour fournir une alerte visible — par exemple, changer la bande en rouge quand un mouvement inattendu est détecté dans une zone restreinte.
  6. Amélioration de présentoir commercial : Activez des effets de bande LED accrocheurs sur une étagère de présentation produit quand un client approche, attirant l'attention sans faire fonctionner l'éclairage en continu.

Tutoriel Vidéo

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

Défiez-vous

Maintenant que vous pouvez contrôler une bande LED avec un capteur de mouvement sur l'ESP32 S3, essayez ces extensions progressivement plus difficiles pour approfondir votre compréhension et construire des systèmes d'éclairage déclenchés par la présence plus performants.

  1. Débutant : Changez la couleur de la bande LED dans le code du blanc à une couleur différente de votre choix et observez le résultat, puis ajoutez un message Serial Monitor qui affiche le nom de la couleur active quand la bande s'allume.
  2. Débutant : Ajustez l'Ajusteur de Délai sur le HC-SR501 et observez comment la durée de maintien de la bande LED change, puis ajoutez un horodatage à la sortie du Serial Monitor afin de pouvoir mesurer le délai précisément.
  3. Intermédiaire : Remplacez la couleur unie par un effet d'éclairage animé — comme un balayage de couleur ou un cycle arc-en-ciel de la bibliothèque Adafruit DotStar — qui se joue quand un mouvement est détecté et s'arrête quand la zone est libre.
  4. Intermédiaire : Ajoutez un écran OLED I2C pour afficher l'état actuel du mouvement et le nombre d'événements de mouvement détectés depuis la mise sous tension, supprimant la dépendance à un PC connecté pour la surveillance d'état.
  5. Avancé : Utilisez la capacité WiFi de l'ESP32 S3 pour servir une page web simple qui montre l'état en direct du capteur de mouvement et le temps total d'allumage de la bande LED, et vous permet de basculer la bande on/off à distance depuis un navigateur.
  6. Avancé : Stockez une couleur et une luminosité de bande LED configurables dans le stockage non volatile de l'ESP32 S3 (bibliothèque Preferences) afin que les réglages d'éclairage survivent aux cycles d'alimentation et puissent être mis à jour via une interface web simple sans retéléverser le code.

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 !