ESP32 S3 - Capteur à ultrasons - Servomoteur

Ce tutoriel vous montre comment utiliser l'ESP32 S3 avec un capteur à ultrasons HC-SR04 pour contrôler automatiquement un servomoteur en fonction de la distance d'un objet détecté. En combinant la mesure de distance sans contact avec un actionnement angulaire précis, vous pouvez construire des systèmes réactifs déclenchés par la proximité, sans aucune interaction physique.

Ce que vous allez construire :

  1. Un circuit ESP32 S3 avec un capteur à ultrasons HC-SR04 et un servomoteur câblés à la carte
  2. Un sketch qui lit en continu la distance à partir du capteur à ultrasons
  3. Un servomoteur qui tourne à 90° lorsqu'un objet est détecté à proximité du capteur
  4. Un servomoteur qui revient automatiquement à 0° lorsque l'objet s'éloigne
ESP32 S3 - Ultrasonic 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 à ultrasons
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 à ultrasons

Le capteur à ultrasons HC-SR04 et le servomoteur forment une combinaison puissante pour l'ESP32 S3 : le capteur fournit des données de distance sans contact tandis que le servomoteur délivre une sortie angulaire précise et reproductible en réponse à ces données. Ensemble, ils permettent une large gamme de projets d'automatisation sensibles à la proximité - des portes automatiques et déclencheurs de bras robotique aux barrières de parking et mécanismes d'évitement d'objets.

Spécifications clés

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

Schéma de câblage

Connectez le HC-SR04 et le servomoteur à votre ESP32 S3 comme indiqué dans le schéma ci-dessous. Assurez-vous que le VCC du capteur à ultrasons et le fil d'alimentation du servomoteur sont tous deux connectés au rail 5V, car aucun des deux composants ne fonctionne correctement en 3,3V.

Consignes de sécurité

Les servomoteurs peuvent brièvement tirer plusieurs centaines de milliampères sous charge, ce qui peut solliciter l'alimentation USB de l'ESP32 S3 si utilisé pendant des périodes prolongées. Pour les tests sur banc, le port USB est généralement suffisant ; pour tout scénario de déploiement, alimentez le servomoteur depuis une source externe dédiée 5V et ne partagez que le rail GND avec l'ESP32 S3. De même, connectez toujours la broche VCC du HC-SR04 à 5V - pas à 3,3V - pour garantir des mesures ultrasoniques précises.

ESP32 S3 Ultrasonic Sensor Servo Motor Wiring Diagram

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

Composant Broche Broche ESP32 S3
Ultrasonic Sensor VCC 5V
Ultrasonic Sensor GND GND
Ultrasonic Sensor TRIG GPIO39
Ultrasonic Sensor ECHO GPIO38
Servo Motor GND (marron/noir) GND
Servo Motor VCC (rouge) 5V
Servo Motor Signal (jaune/orange) GPIO12

Si vous comptez garder ce circuit, pensez aux borniers à vis. Dans ce cas, utilisez une carte à bornier à vis pour ESP32 S3. La carte ESP32 S3 s'y branche et chaque broche a un bornier à vis. Voir le schéma ci-dessous pour la version avec borniers à vis.

ESP32 S3 Ultrasonic Sensor Servo Motor Wiring Diagram (Screw Terminal)

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

Vous pouvez aussi utiliser une carte d'extension GPIO pour ESP32 S3. Chaque GPIO a ses propres broches S, 3,3V et GND, et les fils des modules s'y branchent directement :

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

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

Code ESP32 S3 - Le capteur à ultrasons contrôle le servomoteur

Le code suivant utilise l'ESP32 S3 pour lire la distance mesurée par le capteur à ultrasons HC-SR04 et la traduire en angle de servomoteur. Lorsqu'un objet s'approche à moins de la distance seuil définie, l'ESP32 S3 commande au servomoteur de tourner à 90° ; lorsque l'objet s'éloigne au-delà de ce seuil, le servomoteur revient à 0°. La bibliothèque ESP32Servo gère la génération du signal PWM pour le servomoteur, tandis que la mesure ultrasonique est directement pilotée par pulseIn() pour plus de simplicité et une faible latence.

/* * 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-ultrasonic-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-ultrasonic-sensor-servo-motor */ #include <ESP32Servo.h> #define TRIG_PIN 39 // ESP32-S3 pin GPIO39 connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 38 // ESP32-S3 pin GPIO38 connected to Ultrasonic Sensor's ECHO pin #define SERVO_PIN 12 // ESP32-S3 pin GPIO12 connected to Servo Motor's pin #define DISTANCE_THRESHOLD 50 // centimeters Servo servo; // create servo object to control a servo // variables will change: float duration_us, distance_cm; void setup() { Serial.begin (9600); // initialize serial port pinMode(TRIG_PIN, OUTPUT); // set ESP32-S3 pin to output mode pinMode(ECHO_PIN, INPUT); // set ESP32-S3 pin to input mode servo.attach(SERVO_PIN); // attaches the servo on pin GPIO12 to the servo object servo.write(0); } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; if (distance_cm < DISTANCE_THRESHOLD) servo.write(90); // rotate servo motor to 90 degree else servo.write(0); // rotate servo motor to 0 degree // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez les composants : suivez le schéma de câblage présenté ci-dessus pour connecter le capteur à ultrasons HC-SR04 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 l'Arduino IDE : si c'est la première fois que vous utilisez l'ESP32 S3, consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE.
  5. Sélectionnez votre carte : choisissez la carte ESP32 S3 et son port COM dans Tools de l'Arduino IDE.
  6. Installez la bibliothèque ESP32Servo : cliquez sur l'icône Libraries dans la barre de gauche de l'Arduino IDE. Tapez ESP32Servo dans le champ de recherche, puis cherchez la bibliothèque servo par Kevin Harrington, John K. Bennett. Cliquez sur Install pour installer la bibliothèque de servomoteur pour l'ESP32.
ESP32 S3 servo motor library
  1. Téléversez le code : copiez le code ci-dessus et collez-le dans l'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 les lectures de distance en direct et les mises à jour de l'angle du servomoteur.
  2. Testez le capteur : déplacez votre main devant le capteur à ultrasons et observez le servomoteur réagir aux changements de distance.
  3. Astuce : si le servomoteur tressaute de façon erratique, ajoutez un petit condensateur (100-470 µF) sur les rails d'alimentation du servomoteur pour filtrer les pics de tension et stabiliser le signal.

Sortie du Serial Monitor

Ouvrez le Serial Monitor à 9600 bauds après le téléversement. Vous verrez une sortie similaire à ce qui suit lorsque vous déplacez votre main 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:14:22 -> Distance: 32.4 cm | Servo angle: 0° 2026-06-16 09:14:23 -> Distance: 18.7 cm | Servo angle: 0° 2026-06-16 09:14:24 -> Distance: 9.2 cm | Servo angle: 90° 2026-06-16 09:14:25 -> Distance: 6.5 cm | Servo angle: 90° 2026-06-16 09:14:26 -> Distance: 24.1 cm | Servo angle: 0°
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Idées d'applications

Combiner l'ESP32 S3 avec un capteur à ultrasons et un servomoteur ouvre un large éventail de projets d'actionnement sensibles à la proximité dans l'automatisation, la robotique, et les scénarios de bricolage quotidiens. Voici quelques idées pratiques pour vous lancer :

  1. Porte ou portail automatique : utilisez le servomoteur pour ouvrir une barrière lorsqu'une personne ou un véhicule est détecté dans une plage définie, et la fermer automatiquement lorsqu'il s'éloigne.
  2. Couvercle de poubelle sans contact : déclenchez le servomoteur pour soulever un couvercle lorsqu'une main est détectée près de la poubelle, permettant une élimination des déchets sans les mains.
  3. Bras robotique activé par proximité : étendez ou rétractez une articulation de bras robotique lorsqu'un objet entre dans une zone définie, sans qu'aucun bouton ne soit nécessaire.
  4. Barrière de parking : construisez une barrière de parking entraînée par servomoteur qui se lève automatiquement lorsqu'une voiture approche du seuil du capteur.
  5. Mécanisme d'évitement d'objets : utilisez la lecture de distance pour orienter une roue ou un gouvernail monté sur servomoteur à l'écart des obstacles proches dans un robot mobile.
  6. Loquet d'alarme : engagez ou désengagez physiquement une goupille de verrouillage entraînée par servomoteur lorsque quelqu'un est détecté dans un périmètre de sécurité.

Vidéo

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

Défiez-vous

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

  1. Débutant : changez le seuil de distance dans le code et observez comment le point de déclenchement du servomoteur se déplace - expérimentez avec des valeurs entre 5 cm et 50 cm.
  2. Débutant : modifiez le code afin que le servomoteur tourne à 180° au lieu de 90° lorsqu'un objet est détecté près du capteur.
  3. Intermédiaire : ajoutez un indicateur LED à l'ESP32 S3 qui s'allume lorsque le servomoteur est à 90° et s'éteint lorsqu'il revient à 0°, offrant un indice visuel d'état en plus du mouvement du moteur.
  4. Intermédiaire : mettez en œuvre un contrôle de servomoteur proportionnel à la distance, où l'angle du servomoteur est mappé en continu à la distance mesurée plutôt que de basculer entre deux positions fixes.
  5. Avancé : ajoutez un afficheur OLED à l'ESP32 S3 qui montre simultanément la distance en temps réel en centimètres et l'angle actuel du servomoteur à l'écran.
  6. Avancé : construisez un système multi-zones avec deux capteurs à ultrasons couvrant des directions différentes, chacun déclenchant indépendamment son propre servomoteur lorsqu'un objet entre dans sa zone.

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 !