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 :
- Un circuit ESP32 S3 avec un capteur de mouvement HC-SR501 et un servomoteur câblés à la carte
- Un croquis qui lit en continu la sortie du capteur de mouvement sur une broche numérique
- Un servomoteur qui tourne automatiquement à 90° quand un mouvement est détecté
- Un servomoteur qui revient automatiquement à 0° quand aucun mouvement n'est détecté

Matériel nécessaire
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) |
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.

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 :

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 :

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. |

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.
Étapes rapides
- Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- 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.
- Connectez l'ESP32 S3 : utilisez un câble USB Type-C pour connecter la carte à votre ordinateur.
- 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.
- Sélectionnez votre carte : choisissez la carte ESP32 S3 et son port COM sous Tools dans Arduino IDE.
- 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.

- Téléversez le code : copiez le code ci-dessus et collez-le dans Arduino IDE, puis cliquez sur le bouton Upload.

- 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.
- Testez le capteur : bougez votre main devant le capteur de mouvement et observez le servomoteur répondre au mouvement détecté.
- 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 :
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 :
- 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é.
- 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.
- 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.
- 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é.
- 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.
- 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 :
- 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.
- 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é.
- 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.
- 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.
- 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.
- 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.