ESP32 S3 - Capteur de porte - Servomoteur

Ce tutoriel vous montre comment utiliser l'ESP32 S3 avec un capteur de porte magnétique et un servomoteur pour construire un système de contrôle de position automatique qui réagit aux événements d'ouverture et de fermeture de la porte. L'ESP32 S3 surveille en continu le capteur de porte et fait tourner le servomoteur vers un angle cible à chaque changement d'état de la porte — ce qui en fait une base pratique pour des mécanismes de verrouillage liés aux portes, des clapets de ventilation et des indicateurs visuels.

Ce que vous allez construire :

  1. Un circuit ESP32 S3 avec un capteur de porte magnétique et un servomoteur câblés à la carte
  2. Un sketch qui lit l'état du capteur de porte et fait tourner le servomoteur à 90 degrés lorsque la porte s'ouvre et le ramène à 0 degré lorsque la porte se ferme
  3. Une boucle de contrôle de position automatique qui se répète à chaque changement d'état de la porte
  4. Une base pour des applications concrètes telles que des bras de verrouillage activés par la porte, des clapets de ventilation et des indicateurs visuels

Matériel requis

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

Un capteur de porte magnétique est composé de deux parties — un boîtier à interrupteur à lame souple (reed switch) et un aimant — qui, ensemble, modifient l'état du circuit lorsque la porte s'ouvre et que l'aimant s'éloigne du reed switch. L'ESP32 S3 lit ce changement d'état numérique sur une broche GPIO en entrée et y répond en commandant un servomoteur via un signal PWM sur une seconde broche GPIO. Le servomoteur convertit cette largeur d'impulsion PWM en un angle précis de l'axe, ce qui le rend idéal pour les applications où un actionneur physique doit répondre automatiquement aux événements de porte.

Spécifications clés

Nous avons des tutoriels dédiés couvrant chaque composant en détail. 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. Apprenez-en plus à ces liens :

Schéma de câblage

Connectez le capteur de porte et le servomoteur à votre ESP32 S3 en suivant le schéma ci-dessous, et vérifiez chaque connexion avant de mettre la carte sous tension. Le fil de signal du capteur de porte se connecte à un GPIO de l'ESP32 S3 configuré en entrée avec la résistance de tirage interne (pull-up) activée, tandis que le fil de signal de contrôle du servomoteur se connecte à un GPIO configuré pour une sortie PWM.

Schéma de câblage ESP32 S3 capteur de porte servomoteur

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

Les fils de connexion peuvent se débrancher quand vous déplacez le projet. Une carte à bornier à vis pour ESP32 S3 règle ce problème. Branchez-y la carte ESP32 S3 et vissez les fils. Voici le montage avec la carte à bornier à vis :

Schéma de câblage ESP32 S3 capteur de porte servomoteur (Screw Terminal)

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

Vous préférez des connecteurs à broches plutôt que des vis ? Branchez la carte ESP32 S3 sur une carte d'extension GPIO pour ESP32 S3 :

Schéma de câblage ESP32 S3 capteur de porte servomoteur (GPIO Breakout Board)

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

Notes de sécurité

Le servomoteur consomme plus de courant qu'une seule broche GPIO de l'ESP32 S3 ne peut en fournir en toute sécurité, alimentez donc toujours le servomoteur depuis le rail 5V de la carte (ou une alimentation 5V externe) plutôt que depuis la broche GPIO elle-même. Les broches GPIO de l'ESP32 S3 fonctionnent en logique 3,3V, et la plupart des servomoteurs de loisir acceptent un signal de contrôle en 3,3V sans problème, mais vérifiez la fiche technique de votre servomoteur spécifique pour confirmer. Le capteur de porte se connecte à une entrée GPIO avec la résistance de tirage interne activée, donc aucune résistance de tirage externe n'est nécessaire pour le côté capteur du circuit.

Component Pin ESP32 S3 Pin
Capteur de porte Fil 1 GND
Capteur de porte Fil 2 GPIO2
Servomoteur VCC (Rouge) 5V
Servomoteur GND (Marron/Noir) GND
Servomoteur Signal (Orange/Jaune) GPIO8

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

Le code suivant lit l'état du capteur de porte à chaque itération de la boucle et fait tourner le servomoteur à 90 degrés lorsque la porte est détectée comme ouverte, puis le ramène à 0 degré lorsque la porte est détectée comme fermée. Le sketch s'appuie sur la bibliothèque ESP32Servo pour générer le signal PWM correct pour le servomoteur, vous devez donc installer cette bibliothèque avant de téléverser.

/* * 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-door-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-door-sensor-servo-motor */ #include <ESP32Servo.h> #define DOOR_SENSOR_PIN 2 // ESP32-S3 pin GPIO2 connected to door sensor's pin #define SERVO_PIN 8 // ESP32-S3 pin GPIO8 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 prev_door_state; // the previous state of door sensor int door_state; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32-S3 pin to input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin GPIO8 to the servo object servo.write(angle); door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if(prev_door_state == LOW && door_state == HIGH) { Serial.println("The door-opening event is detected"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Étapes rapides

  1. Nouveau avec l'ESP32 S3 ? Complétez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez le capteur de porte et le servomoteur à l'ESP32 S3 en suivant le schéma de câblage 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. Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  7. Recherchez ESP32Servo dans la zone de recherche, puis repérez la bibliothèque servo par Kevin Harrington et John K. Bennett.
  8. Cliquez sur Install pour installer la bibliothèque de servomoteur pour ESP32.
Bibliothèque servomoteur ESP32 S3
  1. Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  2. Cliquez sur le bouton Upload pour compiler et téléverser le code sur votre ESP32 S3.
Comment téléverser le code ESP32 S3 avec Arduino IDE
  1. Approchez l'aimant du reed switch, puis éloignez-le pour simuler l'ouverture de la porte.
  2. Observez le servomoteur tourner à 90 degrés lorsque la porte s'ouvre et revenir à 0 degré lorsque la porte se ferme.
  3. Astuce pro : Si le servomoteur tremble ou se comporte de manière erratique, alimentez-le depuis une alimentation 5V externe au lieu de la broche 5V de la carte ESP32 S3, car les servomoteurs à fort courant peuvent provoquer des chutes de tension qui réinitialisent la carte.

Sortie du Moniteur Série

Ouvrez le Moniteur Série de l'Arduino IDE à 9600 bauds pour observer en temps réel l'état du capteur de porte et la position du servomoteur.

∞
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:30:01] Door: OPEN Servo: 90 degrees [2026-06-16 09:30:07] Door: CLOSED Servo: 0 degrees [2026-06-16 09:30:13] Door: OPEN Servo: 90 degrees [2026-06-16 09:30:19] Door: CLOSED Servo: 0 degrees
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et idées de projets

Une fois que l'ESP32 S3 peut positionner automatiquement un servomoteur en réponse aux événements du capteur de porte, vous pouvez adapter ce projet à un large éventail d'applications pratiques d'automatisation, de sécurité et de robotique.

  1. Bras de verrouillage de porte : Fixez un bras de verrouillage physique au servomoteur afin qu'il pivote en position verrouillée lorsque la porte se ferme et se rétracte lorsqu'elle s'ouvre.
  2. Contrôleur de clapet de ventilation : Utilisez le servomoteur pour ouvrir un clapet de ventilation lorsqu'une porte s'ouvre, assurant la circulation de l'air dans des espaces fermés comme les salles de serveurs ou les zones de stockage.
  3. Indicateur de drapeau ou de signal : Faites pivoter un petit drapeau ou un indicateur coloré en position « ouvert » chaque fois que la porte est entrouverte, fournissant un état visible à distance.
  4. Loquet d'armoire : Verrouillez automatiquement une porte d'armoire à l'aide du servomoteur chaque fois que le capteur de porte détecte que la porte est en position fermée.
  5. Coordinateur multi-portes : Surveillez deux capteurs de porte et associez leurs états combinés à quatre positions de servomoteur, mettant en œuvre un simple mécanisme d'interverrouillage entre deux portes adjacentes.
  6. Inclinaison de caméra déclenchée par événement : Montez une caméra sur l'axe du servomoteur afin que l'objectif pointe automatiquement vers l'embrasure de la porte chaque fois que le capteur de porte détecte une ouverture, capturant ainsi quiconque entre.

Vidéo tutoriel

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

Défiez-vous

Maintenant que vous savez contrôler automatiquement un servomoteur avec un capteur de porte sur l'ESP32 S3, essayez ces défis progressivement plus difficiles pour approfondir votre compréhension et construire un système plus performant.

  1. Débutant : Changez l'angle cible du servomoteur de 90 degrés à 45 degrés en modifiant une seule constante dans le sketch, puis retéléversez et vérifiez la nouvelle position.
  2. Débutant : Ajoutez un compteur dans le Moniteur Série qui s'incrémente et affiche le nombre total d'événements d'ouverture de porte depuis la mise sous tension de la carte.
  3. Intermédiaire : Utilisez millis() au lieu de delay() pour implémenter un retour retardé du servomoteur — le servomoteur se déplace à 90 degrés lorsque la porte s'ouvre mais ne revient à 0 degré qu'après 5 secondes, indépendamment du moment où la porte se ferme.
  4. Intermédiaire : Ajoutez un second servomoteur au circuit et pilotez les deux servomoteurs simultanément mais dans des directions opposées, l'un s'ouvrant pendant que l'autre se ferme.
  5. Avancé : Combinez le capteur de porte et le servomoteur avec un lecteur RFID afin que le servomoteur ne tourne (déverrouille) qu'après la lecture d'une carte RFID valide, tandis que le capteur de porte confirme que la porte a effectivement été ouverte.
  6. Avancé : Connectez l'ESP32 S3 au Wi-Fi et publiez l'état de la porte et la position du servomoteur sur un broker MQTT à chaque transition, permettant une surveillance à distance via un tableau de bord domotique.

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 !