ESP32 S3 - Capteur de mouvement

Apprenez à détecter un mouvement avec votre ESP32 S3 et le capteur de mouvement PIR HC-SR501. Ce tutoriel adapté aux débutants vous guide à travers tout ce dont vous avez besoin pour construire des projets de détection de mouvement fiables avec la carte ESP32 S3.

Ce que vous allez construire :

  1. Un circuit reliant le capteur de mouvement HC-SR501 à l'ESP32 S3
  2. Un code Arduino qui lit le capteur et détecte les événements de début et de fin de mouvement
  3. Une sortie du Moniteur Série affichant les résultats de détection de mouvement en temps réel
  4. Une base que vous pouvez étendre avec des lumières, des alarmes ou des automatisations domotiques
ESP32 S3 - Capteur de mouvement

À propos du capteur de mouvement HC-SR501

Capteur de mouvement HC-SR501

Le HC-SR501 est un capteur PIR (infrarouge passif) qui détecte le mouvement en percevant les changements de rayonnement infrarouge émis par les objets chauds. Il fournit un signal numérique simple — HIGH lorsqu'un mouvement est détecté et LOW lorsque le champ est dégagé — ce qui le rend facile à lire avec n'importe quelle broche d'entrée numérique de l'ESP32 S3.

Spécifications clés

Le HC-SR501 fonctionne avec une alimentation 5V et fournit un signal numérique HIGH ou LOW pour indiquer l'état de mouvement. Sa portée de détection atteint jusqu'à 7 mètres grâce à un potentiomètre de sensibilité ajustable, et un second potentiomètre contrôle la durée pendant laquelle la sortie reste à HIGH après un événement de détection. Un cavalier permet de choisir entre les modes de déclenchement unique et répétable, vous offrant une flexibilité pour différents besoins d'application. Le capteur est peu coûteux et largement pris en charge, ce qui en fait un choix populaire aussi bien pour les débutants que pour les professionnels.

Brochage du capteur de mouvement HC-SR501

Le HC-SR501 expose trois broches pour l'alimentation et le signal, plus deux potentiomètres embarqués et un cavalier de mode.

Brochage du capteur de mouvement HC-SR501
  1. VCC : Connectez à une alimentation 5V
  2. GND : Connectez à la masse (0V)
  3. OUTPUT : Connectez à une broche d'entrée numérique de l'ESP32 S3 — la sortie est LOW lorsqu'aucun mouvement n'est détecté, HIGH lorsqu'un mouvement est détecté
  4. Réglage de la portée de détection : Potentiomètre pour ajuster la distance de détection
  5. Réglage du délai : Potentiomètre pour définir la durée pendant laquelle la sortie reste à HIGH après une détection
  6. Sélecteur de déclenchement répété : Cavalier pour choisir entre les modes de déclenchement unique ou répétable

Comment fonctionne le capteur de mouvement HC-SR501

Le HC-SR501 détecte le mouvement en percevant les changements de rayonnement infrarouge émis par des objets chauds comme les personnes et les animaux. Lorsqu'un objet se déplace dans le champ de vision du capteur, l'élément pyroélectrique enregistre un changement dans le motif infrarouge et fait passer la broche OUTPUT à HIGH.

Pour qu'une détection se produise, l'objet doit émettre un rayonnement infrarouge et doit être en mouvement ou changer de position. Une personne traversant la pièce déclenchera fiablement le capteur, alors qu'une personne parfaitement immobile pourrait ne pas être détectée. De même, un robot ou un véhicule en mouvement qui n'émet pas d'énergie infrarouge significative passera inaperçu.

La vidéo ci-dessus montre comment le capteur de mouvement HC-SR501 réagit au mouvement en temps réel.

Détecter la présence humaine

Le HC-SR501 déduit la présence humaine à partir du mouvement plutôt que de détecter une personne directement. Lorsque le capteur perçoit un mouvement, vous pouvez raisonnablement conclure que quelqu'un est présent ; lorsque le mouvement s'arrête, la personne a peut-être quitté les lieux ou simplement fait une pause.

Cette approche indirecte a une limitation pratique : une personne présente mais parfaitement immobile ne sera pas détectée, ce qui peut produire des faux négatifs dans certains scénarios. Malgré cela, le capteur est très efficace pour l'éclairage automatique, les alarmes de sécurité et les appareils économiseurs d'énergie où le mouvement actif est le déclencheur clé.

ESP32 S3 et le capteur de mouvement HC-SR501

En connectant le HC-SR501 à l'ESP32 S3, vous obtenez un système de détection de mouvement simple mais puissant. L'ESP32 S3 lit la broche numérique OUTPUT du capteur et peut répondre en contrôlant des lumières, en déclenchant des alarmes, en enregistrant des événements ou en envoyant des notifications sans fil — tout cela sur une seule carte compacte.

Schéma de câblage

Connectez le capteur de mouvement HC-SR501 à votre ESP32 S3 comme indiqué dans le schéma ci-dessous. Le capteur nécessite une alimentation 5V pour un fonctionnement fiable, utilisez donc le rail 5V de l'ESP32 S3 plutôt que le rail 3,3V.

Schéma de câblage ESP32 S3 capteur de mouvement

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

Notes de sécurité

Alimentez toujours le HC-SR501 depuis la broche 5V de l'ESP32 S3, jamais depuis le 3,3V, car une tension d'alimentation insuffisante entraîne une détection erratique ou inexistante. Le signal OUTPUT du capteur est sûr pour les broches GPIO de l'ESP32 S3 car la tension de sortie du capteur est compatible avec les seuils d'entrée. Gardez le capteur à l'écart des bouches de chaleur et de la lumière directe du soleil pendant les tests, car de fortes sources infrarouges ambiantes peuvent provoquer de fausses détections.

HC-SR501 Pin ESP32 S3 Pin
VCC 5V
GND GND
OUTPUT GPIO19

Réglages initiaux du capteur

Avant d'utiliser le HC-SR501, configurez ces réglages pour des performances optimales.

Réglage initial du capteur de mouvement ESP32 S3
Setting Configuration
Réglage de la portée de détection Vissez entièrement dans le sens horaire (portée minimale pour les tests)
Réglage du délai Vissez entièrement dans le sens antihoraire (délai minimal)
Sélecteur de déclenchement répété Positionnez le cavalier comme indiqué dans l'image ci-dessus

Comment programmer le capteur de mouvement

Programmer l'ESP32 S3 pour lire le HC-SR501 ne nécessite que quelques lignes de code Arduino. L'idée centrale est de suivre l'état précédent de la broche du capteur et de le comparer à l'état actuel à chaque itération de la boucle, afin de détecter le moment exact où le mouvement commence ou s'arrête.

Étape 1 : Configurer la broche de l'ESP32 S3 en entrée

pinMode(PIN_TO_SENSOR, INPUT);

Étape 2 : Lire l'état de sortie du capteur

motion_state = digitalRead(PIN_TO_SENSOR);

Étape 3 : Détecter le début du mouvement (LOW vers HIGH)

prev_motion_state = motion_state; // store old state motion_state = digitalRead(PIN_TO_SENSOR); // read new state if (prev_motion_state == LOW && motion_state == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!"); }

Étape 4 : Détecter la fin du mouvement (HIGH vers LOW)

prev_motion_state = motion_state; // store old state motion_state = digitalRead(PIN_TO_SENSOR); // read new state if (prev_motion_state == HIGH && motion_state == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!"); }

Code ESP32 S3

Le code suivant surveille le capteur de mouvement HC-SR501 et signale chaque événement de début et de fin de mouvement dans le Moniteur Série. Il configure la broche D5 comme entrée numérique, suit en continu les transitions d'état de LOW à HIGH et inversement, et affiche un message descriptif pour chaque événement — vous donnant un journal clair en temps réel de l'activité devant le capteur.

/* * 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 */ #define PIN_TO_SENSOR 19 // The ESP32 S3 pin connected to OUTPUT pin of sensor int motion_state = LOW; // current state of pin int prev_motion_state = LOW; // previous state of pin void setup() { Serial.begin(115200); // Initialize the Serial to communicate with the Serial Monitor. pinMode(PIN_TO_SENSOR, INPUT); // set ESP32 S3 pin to input mode to read value from OUTPUT pin of sensor } void loop() { prev_motion_state = motion_state; // store old state motion_state = digitalRead(PIN_TO_SENSOR); // read new state if (prev_motion_state == LOW && motion_state == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!"); // TODO: turn on alarm, light or activate a device ... here } else if (prev_motion_state == HIGH && motion_state == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!"); // TODO: turn off alarm, light or deactivate a device ... here } }

Étapes rapides

  1. Nouveau avec l'ESP32 S3 ? Complétez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  3. Sélectionnez votre carte ESP32 S3 dans le menu Tools > Board.
  4. Connectez votre ESP32 S3 à votre ordinateur via USB Type-C.
  5. Cliquez sur le bouton Upload dans l'Arduino IDE pour transférer le code.
  6. Ouvrez le Moniteur Série en cliquant sur son icône ou en appuyant sur Ctrl+Shift+M.
  7. Réglez le débit en bauds sur 115200 dans le menu déroulant du Moniteur Série.
  8. Passez votre main devant le capteur HC-SR501 et observez la sortie.
  9. Astuce pro : Commencez avec les potentiomètres réglés à la sensibilité et au délai minimum, puis augmentez-les progressivement pour ajuster la portée de détection et le minutage adaptés à votre environnement.

Sortie du Moniteur Série

Lorsque vous vous déplacez devant le capteur, vous verrez une sortie similaire à la suivante :

∞
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-01-15 09:12:04] Motion detected! [2026-01-15 09:12:07] Motion stopped! [2026-01-15 09:12:11] Motion detected! [2026-01-15 09:12:15] Motion stopped! [2026-01-15 09:12:19] Motion detected! [2026-01-15 09:12:22] Motion stopped!
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Idées de projets

Le HC-SR501 associé à l'ESP32 S3 ouvre la porte à un large éventail d'applications pratiques, de l'automatisation simple aux systèmes domotiques connectés.

  1. Éclairage automatique de pièce : Allumez les lumières lorsqu'un mouvement est détecté et éteignez-les automatiquement une fois la pièce silencieuse.
  2. Système d'alerte de sécurité : Envoyez des notifications push ou déclenchez une alarme sonore lorsqu'un intrus est détecté.
  3. Économiseur d'énergie : Éteignez automatiquement les écrans ou appareils lorsque personne n'est présent dans la pièce.
  4. Distributeur intelligent pour animaux : Détectez quand votre animal approche de la station d'alimentation et distribuez de la nourriture à la demande.
  5. Compteur de visiteurs : Enregistrez le nombre de personnes entrant dans une pièce ou un bâtiment au fil du temps.
  6. Accessoires d'Halloween : Déclenchez des sons effrayants ou des décorations mobiles lorsque quelqu'un approche.

Vidéo tutoriel

Regardez ci-dessous la vidéo pas à pas de ce projet ESP32 S3.

Défiez-vous

Une fois que votre capteur de mouvement fonctionne, essayez ces défis pour repousser vos compétences ESP32 S3 plus loin — en commençant par des ajouts adaptés aux débutants et en progressant vers des fonctionnalités connectées plus avancées.

  1. Débutant : Ajoutez une LED qui s'allume lorsqu'un mouvement est détecté et s'éteint lorsqu'il s'arrête.
  2. Débutant : Comptez et affichez le nombre total d'événements de mouvement détectés depuis la mise sous tension de la carte.
  3. Intermédiaire : Ajoutez un buzzer qui sonne une alarme pendant 3 secondes chaque fois qu'un mouvement est détecté.
  4. Intermédiaire : Utilisez le capteur pour contrôler un relais qui allume et éteint une lampe de bureau.
  5. Avancé : Combinez le capteur de mouvement avec un écran OLED pour afficher l'horodatage du dernier événement de détection.
  6. Avancé : Créez un système de sécurité intelligent qui envoie des alertes par email lorsqu'un mouvement est détecté hors des heures programmées.

Références du langage

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 !