ESP32 S3 - Capteur à ultrasons

Le capteur à ultrasons HC-SR04 est l'un des modules de mesure de distance les plus pratiques à associer à l'ESP32 S3, offrant une détection sans contact fiable de 2 cm à 400 cm. Ce tutoriel vous guide à travers tout ce dont vous avez besoin — du câblage du capteur à l'écriture et au téléversement du sketch Arduino — afin que vous puissiez ajouter la détection de distance à vos projets ESP32 S3 en toute confiance.

Ce que vous allez construire :

  1. Un système de mesure de distance utilisant l'ESP32 S3 et le capteur à ultrasons HC-SR04
  2. Un sketch qui déclenche le capteur, lit l'écho, et calcule la distance en centimètres
  3. Une sortie de distance en temps réel affichée sur le Serial Monitor d'Arduino IDE
  4. Une base que vous pouvez étendre en évitement d'obstacles, assistants de stationnement, ou moniteurs de niveau de liquide
ESP32 S3 - Ultrasonic Sensor

À propos du capteur à ultrasons

Le HC-SR04 est un capteur de distance largement utilisé qui émet des impulsions ultrasoniques et écoute l'écho pour déterminer la distance d'un objet. Il est bon marché, facile à câbler, et suffisamment précis pour la plupart des applications de loisir et de maker, ce qui en fait un choix naturel pour les projets ESP32 S3.

Spécifications clés

Le HC-SR04 fonctionne en 5V CC et mesure des distances de 2 cm à 400 cm (environ 0,8 à 157 pouces) avec une précision allant jusqu'à 3 mm. Son angle de mesure est de 15 degrés, et il est déclenché par une impulsion TTL de 10 µs sur la broche TRIG. Comme la mesure est sans contact, le capteur peut détecter des objets en toute sécurité sans les toucher.

Brochage du capteur à ultrasons

Le HC-SR04 a quatre broches, chacune avec un rôle spécifique dans le processus de mesure :

  1. VCC — Connectez à l'alimentation 5V
  2. GND — Connectez à la masse (0V)
  3. TRIG — Reçoit l'impulsion de déclenchement depuis l'ESP32 S3 pour initier une mesure
  4. ECHO — Produit une impulsion dont la durée est proportionnelle à la distance mesurée
Ultrasonic Sensor Pinout
image source: diyables.io

Comment fonctionne le capteur à ultrasons

Voir Comment fonctionne le capteur à ultrasons

Schéma de câblage entre le capteur à ultrasons et l'ESP32 S3

Connecter le HC-SR04 à l'ESP32 S3 ne nécessite que quatre fils et ne prend que quelques minutes sur une breadboard. Faites attention à la connexion d'alimentation — le HC-SR04 a besoin de 5V, que l'ESP32 S3 peut fournir via sa broche 5V lorsqu'il est alimenté par USB.

Notes de sécurité

Connectez toujours la broche VCC du HC-SR04 au rail 5V, jamais au 3,3V, car le capteur ne fonctionnera pas correctement à une tension plus basse. Vérifiez vos connexions avant de mettre la carte sous tension pour éviter d'envoyer des signaux incorrects sur les lignes TRIG ou ECHO.

ESP32 S3 ultrasonic sensor wiring diagram

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

Broche du capteur à ultrasons Broche ESP32 S3
VCC 5V
GND GND
TRIG GPIO8
ECHO GPIO9

Comment programmer le capteur à ultrasons

Programmer le HC-SR04 avec l'ESP32 S3 suit un processus simple en trois étapes qui correspond directement au fonctionnement physique du capteur. Chaque étape ci-dessous montre l'extrait pertinent et explique ce qu'il fait.

Étape 1 : Envoyer l'impulsion de déclenchement

Générez une impulsion HIGH de 10 microsecondes sur la broche TRIG en utilisant digitalWrite() et delayMicroseconds() :

digitalWrite(GPIO8, HIGH); delayMicroseconds(10); digitalWrite(GPIO8, LOW);

Étape 2 : Mesurer la durée de l'impulsion d'écho

Lisez la durée de l'impulsion de retour sur la broche ECHO en utilisant pulseIn(). La durée représente le temps de trajet aller-retour de l'onde sonore :

duration_us = pulseIn(GPIO9, HIGH);

Étape 3 : Calculer la distance

Convertissez la durée de l'impulsion en centimètres. Le son se déplace à environ 340 m/s, et diviser par 2 tient compte de l'aller-retour :

distance_cm = 0.017 * duration_us;

Code ESP32 S3

Le sketch suivant rassemble les trois étapes en un programme complet qui envoie une impulsion de déclenchement toutes les 500 millisecondes, lit la durée de l'écho, la convertit en centimètres, et affiche le résultat sur le Serial Monitor. Il initialise les broches TRIG et ECHO dans setup() et répète la boucle de mesure en continu dans loop().

/* * 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 */ #define TRIG_PIN 8 // The ESP32 S3 pin connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 9 // The ESP32 S3 pin connected to Ultrasonic Sensor's ECHO pin float duration_us, distance_cm; void setup() { // begin serial port Serial.begin (115200); // Configure the trigger pin to output mode pinMode(TRIG_PIN, OUTPUT); // Configure the echo pin to input mode pinMode(ECHO_PIN, INPUT); } void loop() { // Produce a 10-microsecond pulse to the TRIG pin. digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Measure the pulse duration from the ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; // 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 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Copiez le sketch ci-dessus et collez-le dans Arduino IDE.
  3. Connectez l'ESP32 S3 à votre ordinateur à l'aide d'un câble USB Type-C.
  4. Dans Arduino IDE, sélectionnez la bonne carte (ESP32S3 Dev Module ou équivalent) et le bon port COM sous Tools.
  5. Cliquez sur le bouton Upload pour compiler et flasher le sketch sur l'ESP32 S3.
How to upload ESP32 S3 code on Arduino IDE
  1. Une fois le téléversement terminé, ouvrez le Serial Monitor depuis le menu Tools ou l'icône du moniteur.
How to open serial monitor on Arduino IDE
  1. Réglez le débit en bauds sur 115200 dans le menu déroulant du Serial Monitor.
  2. Tenez votre main à différentes distances devant le capteur et observez les relevés se mettre à jour en temps réel.
  3. Astuce : Gardez les objets à au moins 2 cm du capteur pour des relevés précis, et évitez les surfaces molles ou inclinées qui absorbent ou dévient les ondes sonores.

Explication du code ligne par ligne

Le code ESP32 S3 ci-dessus contient une explication ligne par ligne. Veuillez lire les commentaires dans le code !

Sortie du Serial Monitor

Lorsque vous déplacez votre main devant le capteur à ultrasons HC-SR04 connecté à l'ESP32 S3, le Serial Monitor affichera des relevés de distance en temps réel similaires aux suivants :

∞
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 10:32:01] distance: 19.4 cm [2026-06-16 10:32:01] distance: 17.6 cm [2026-06-16 10:32:02] distance: 14.2 cm [2026-06-16 10:32:02] distance: 12.8 cm [2026-06-16 10:32:03] distance: 10.1 cm [2026-06-16 10:32:03] distance: 15.3 cm [2026-06-16 10:32:04] distance: 23.5 cm [2026-06-16 10:32:04] distance: 27.4 cm
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Comment filtrer le bruit des mesures de distance du capteur à ultrasons

Les capteurs à ultrasons peuvent parfois produire des relevés bruités ou incohérents en raison de facteurs environnementaux.

Voir Comment filtrer le bruit des mesures de distance du capteur à ultrasons

La température, l'humidité, et la texture de la surface de l'objet influencent tous le comportement de l'écho, et des surfaces réfléchissantes à proximité peuvent introduire des relevés erronés. Appliquer un simple filtre médian ou de moyenne mobile dans votre sketch ESP32 S3 est un moyen efficace de lisser ces variations et d'améliorer la fiabilité de vos données de distance.

Applications et idées de projets

L'ESP32 S3 associé à un capteur à ultrasons HC-SR04 ouvre la voie à un large éventail de projets pratiques et créatifs en robotique, domotique, et IoT. Voici quelques directions qui valent la peine d'être explorées :

  1. Assistant de stationnement : Construisez un système d'alerte de distance qui avertit les conducteurs à l'approche d'un obstacle dans un garage.
  2. Poubelle automatique : Créez un ouvre-couvercle sans contact qui s'active quand une main s'approche à une distance définie.
  3. Moniteur de niveau d'eau : Mesurez le niveau d'eau ou de liquide dans un réservoir sans aucun contact avec le liquide.
  4. Robot d'évitement d'obstacles : Permettez à un robot autonome de détecter et de contourner des objets sur son chemin.
  5. Alarme de sécurité : Déclenchez une alerte ou une notification quand un objet entre dans une zone définie.
  6. Outil de mesure de hauteur : Construisez une station de mesure de hauteur numérique pour des mesures rapides et sans les mains.
  7. Sonnette intelligente : Détectez quand quelqu'un s'approche de votre porte d'entrée et envoyez une notification via Wi-Fi sur l'ESP32 S3.

Tutoriel vidéo

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

Relevez le défi

Une fois que les relevés de distance de base fonctionnent sur votre ESP32 S3, il existe de nombreuses façons d'approfondir votre compréhension et d'étendre le projet. Essayez les défis ci-dessous par ordre de difficulté :

  1. Débutant : Modifiez le sketch pour afficher la distance en pouces au lieu de centimètres.
  2. Débutant : Ajoutez une LED qui s'allume chaque fois qu'un objet est détecté à moins de 10 cm.
  3. Intermédiaire : Créez un système d'alerte multi-zones qui change le rythme de clignotement de la LED selon la proximité d'un objet.
  4. Intermédiaire : Affichez le relevé de distance en direct sur un écran OLED ou LCD au lieu du Serial Monitor.
  5. Avancé : Construisez un détecteur de position 2D utilisant deux capteurs HC-SR04 et des calculs de triangulation sur l'ESP32 S3.
  6. Avancé : Implémentez un filtre médian sur cinq relevés consécutifs pour supprimer le bruit et obtenir une sortie de distance plus lisse et plus précise.

Commentaires

Tutoriels connexes

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