ESP32 S3 - Capteur de mouvement - Servomoteur

Ce tutoriel vous montre comment utiliser l'ESP32 S3 avec un capteur de mouvement PIR HC-SR501 pour contrôler automatiquement un servomoteur en fonction du mouvement détecté. En combinant la détection de mouvement infrarouge passive avec un actionnement angulaire précis, vous pouvez construire des systèmes réactifs déclenchés par la présence, qui réagissent instantanément quand quelqu'un entre dans la zone de détection.

Ce que vous allez construire :

  1. Un circuit ESP32 S3 avec un capteur de mouvement HC-SR501 et un servomoteur câblés à la carte
  2. Un croquis qui lit en continu la sortie du capteur de mouvement sur une broche numérique
  3. Un servomoteur qui tourne automatiquement à 90° quand un mouvement est détecté
  4. Un servomoteur qui revient automatiquement à 0° quand aucun mouvement n'est détecté
ESP32 S3 - Motion Sensor - Servo Motor

Matériel nécessaire

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Capteur de mouvement HC-SR501
1×Servo-moteur
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: Connecteur d'alimentation DC
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Note d'achat: Si vous utilisez plusieurs servomoteurs, nous recommandons d'utiliser le PCA9685 16 Channel PWM Servo Driver Module pour économiser les broches du MCU et faciliter le câblage.

À propos du servomoteur et du capteur de mouvement

Le capteur de mouvement PIR HC-SR501 et le servomoteur forment une combinaison puissante pour l'ESP32 S3 : le capteur détecte les changements de radiation infrarouge causés par des corps chauds en mouvement et produit un signal numérique HIGH/LOW propre, tandis que le servomoteur fournit un mouvement angulaire précis et répétable en réponse directe à ce signal. Ensemble, ils permettent une large classe de projets d'automatisation sensibles à la présence — des portes automatiques et déclencheurs de sécurité aux bras de contrôle d'éclairage et barrières d'accès.

Spécifications clés

Nous avons des tutoriels spécifiques sur chaque composant couvrant en détail le brochage matériel, les principes de fonctionnement, le câblage vers l'ESP32 S3, et des exemples de code complets. Apprenez-en plus aux liens ci-dessous :

Schéma de câblage

Connectez le HC-SR501 et le servomoteur à votre ESP32 S3 comme indiqué dans le schéma ci-dessous. Le HC-SR501 fonctionne en 5V, donc connectez sa broche VCC au rail 5V, et assurez-vous que le fil d'alimentation du servomoteur est également alimenté en 5V pour un couple fiable.

Notes de sécurité

Les servomoteurs peuvent brièvement consommer plusieurs centaines de milliampères en charge, ce qui peut solliciter l'alimentation USB de l'ESP32 S3 si utilisé sur de longues périodes. Pour des tests sur table, le port USB est généralement suffisant ; pour tout scénario de déploiement, alimentez le servomoteur depuis une alimentation externe 5V dédiée et partagez uniquement le rail GND avec l'ESP32 S3. Le capteur de mouvement HC-SR501 nécessite aussi 5V sur sa broche VCC — le connecter au 3,3V produira des signaux de déclenchement incorrects ou absents.

ESP32 S3 Motion Sensor Servo Motor Wiring Diagram

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

Composant Broche Broche ESP32 S3
Capteur de mouvement VCC 5V
Capteur de mouvement GND GND
Capteur de mouvement OUT GPIO42
Servomoteur GND (Marron/Noir) GND
Servomoteur VCC (Rouge) 5V
Servomoteur Signal (Jaune/Orange) GPIO9

Brancher des fils dans les connecteurs femelles est rapide, mais les fils peuvent glisser. Vous pouvez placer la carte ESP32 S3 sur une carte à bornier à vis pour ESP32 S3 et brancher les fils sur ses borniers à vis. Voici le montage avec la carte à bornier à vis :

ESP32 S3 Motion Sensor Servo Motor Wiring Diagram (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 :

ESP32 S3 Motion Sensor Servo Motor Wiring Diagram (GPIO Breakout Board)

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

Réglage initial

Réglage de plage de détection vissez-le complètement dans le sens horaire.
Réglage du délai vissez-le complètement dans le sens anti-horaire.
Sélecteur de déclenchement répété placez le cavalier comme sur l'image ci-dessous.
ESP32 S3 motion sensor initial setting

Code ESP32 S3 - Le capteur de mouvement contrôle le servomoteur

Le code suivant utilise l'ESP32 S3 pour lire la sortie numérique du capteur de mouvement HC-SR501 et traduire le mouvement détecté en un angle de servomoteur. Quand un mouvement est détecté, l'ESP32 S3 commande au servomoteur de tourner à 90° ; quand le mouvement n'est plus présent, le servomoteur revient à 0°. La bibliothèque ESP32Servo gère la génération du signal PWM pour le servomoteur, gardant le croquis simple et facile à adapter.

/* * 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-servo-motor */ /* * 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-servo-motor */ #include <ESP32Servo.h> #define MOTION_SENSOR_PIN 42 // ESP32-S3 pin GPIO42 connected to motion sensor's pin #define SERVO_PIN 9 // ESP32-S3 pin GPIO9 connected to servo motor's pin Servo servo; // create servo object to control a servo // variables will change: int angle = 0; // the current angle of servo motor int lastMotionState; // the previous state of motion sensor int currentMotionState; // the current state of motion sensor void setup() { Serial.begin(9600); // initialize serial pinMode(MOTION_SENSOR_PIN, INPUT); // set ESP32-S3 pin to input mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); currentMotionState = digitalRead(MOTION_SENSOR_PIN); } void loop() { lastMotionState = currentMotionState; // save the last state currentMotionState = digitalRead(MOTION_SENSOR_PIN); // read new state if (currentMotionState == LOW && lastMotionState == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!, rotating servo motor to 90°"); servo.write(90); } else if (currentMotionState == HIGH && lastMotionState == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!, rotating servo motor to 0°"); servo.write(0); } }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez les composants : suivez le schéma de câblage ci-dessus pour connecter le capteur de mouvement HC-SR501 et le servomoteur à votre ESP32 S3.
  3. Connectez l'ESP32 S3 : utilisez un câble USB Type-C pour connecter la carte à votre ordinateur.
  4. Configurez Arduino IDE : si c'est la première fois que vous utilisez l'ESP32 S3, voir comment configurer l'environnement pour ESP32 S3 sur Arduino IDE.
  5. Sélectionnez votre carte : choisissez la carte ESP32 S3 et son port COM sous Tools dans Arduino IDE.
  6. Installez la bibliothèque ESP32Servo : cliquez sur l'icône Libraries sur la barre de gauche d'Arduino IDE. Tapez ESP32Servo dans le champ de recherche, puis cherchez la bibliothèque de servomoteur de Kevin Harrington, John K. Bennett. Cliquez sur Install pour installer la bibliothèque de servomoteur pour ESP32.
ESP32 S3 servo motor library
  1. Téléversez le code : copiez le code ci-dessus et collez-le dans Arduino IDE, puis cliquez sur le bouton Upload.
Arduino IDE Upload Code
  1. Ouvrez le Serial Monitor : ouvrez le Serial Monitor à 9600 bauds pour voir l'état de détection de mouvement et les mises à jour d'angle du servomoteur en direct.
  2. Testez le capteur : bougez votre main devant le capteur de mouvement et observez le servomoteur répondre au mouvement détecté.
  3. Astuce pro : si le servomoteur tremble de façon erratique après que le capteur ait arrêté de détecter un mouvement, ajoutez un petit condensateur (100–470 µF) aux bornes d'alimentation du servomoteur pour filtrer les pics de tension causés par le retour du moteur à 0°.

Sortie du Serial Monitor

Ouvrez le Serial Monitor à 9600 bauds après le téléversement. Vous verrez une sortie semblable à celle-ci en vous déplaçant devant le capteur :

∞
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:22:11 -> Motion: NOT DETECTED | Servo angle: 0° 2026-06-16 09:22:14 -> Motion: DETECTED | Servo angle: 90° 2026-06-16 09:22:17 -> Motion: DETECTED | Servo angle: 90° 2026-06-16 09:22:21 -> Motion: NOT DETECTED | Servo angle: 0°
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Idées d'applications

Combiner l'ESP32 S3 avec un capteur de mouvement et un servomoteur ouvre la voie à un large ensemble de projets d'actionnement déclenchés par la présence, dans la domotique, la sécurité, et la robotique. Voici quelques idées pratiques pour vous lancer :

  1. Porte ou barrière automatique : utilisez le servomoteur pour ouvrir une barrière en pivot quand une personne est détectée dans la zone de détection, puis la refermer automatiquement une fois le mouvement arrêté.
  2. Déclencheur de panoramique de caméra de sécurité : faites pivoter une caméra montée sur servomoteur vers la zone de mouvement détectée pour cadrer automatiquement tout intrus ou visiteur.
  3. Bouche d'aération ou registre activé par la présence : ouvrez ou fermez un clapet de bouche d'aération avec le servomoteur quand des personnes sont présentes dans une pièce, améliorant l'efficacité du CVC.
  4. Barrière d'accès sans contact : levez un bras entraîné par servomoteur pour autoriser l'entrée quand quelqu'un approche d'une zone restreinte, puis le baissez une fois qu'il est passé.
  5. Déclencheur de distributeur pour animaux : faites pivoter une roue de distribution contrôlée par servomoteur pour libérer de la nourriture quand votre animal approche de la station d'alimentation.
  6. Verrou d'alarme : engagez ou désengagez physiquement une goupille de verrouillage entraînée par servomoteur quand un mouvement est détecté dans un périmètre de sécurité.

Vidéo

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

Mettez-vous au défi

Maintenant que votre circuit capteur de mouvement-servomoteur ESP32 S3 fonctionne, essayez ces défis progressivement plus difficiles pour approfondir votre compréhension de la détection PIR et de l'actionnement par servomoteur :

  1. Débutant : changez l'angle cible du servomoteur dans le code de 90° à 45° ou 180° et observez comment le servomoteur répond différemment aux mêmes événements de mouvement.
  2. Débutant : ajoutez un délai après l'arrêt du mouvement avant que le servomoteur revienne à 0°, afin que le servomoteur maintienne sa position pendant quelques secondes après le dernier mouvement détecté.
  3. Intermédiaire : ajoutez un indicateur LED à l'ESP32 S3 qui s'allume quand un mouvement est détecté, fournissant un indice visuel en complément du mouvement du servomoteur.
  4. Intermédiaire : enregistrez les événements de mouvement avec un horodatage sur le Serial Monitor, en notant chaque fois que le capteur passe de NOT DETECTED à DETECTED et inversement.
  5. Avancé : ajoutez un écran OLED à l'ESP32 S3 qui affiche l'état de mouvement actuel et le nombre d'événements de mouvement détectés depuis la mise sous tension.
  6. Avancé : construisez un système multi-zones utilisant deux capteurs HC-SR501 couvrant des directions différentes, chacun déclenchant indépendamment son propre servomoteur quand un mouvement est détecté dans sa zone.

※ 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 !