ESP32 S3 - Capteur à ultrasons - LCD

Le capteur à ultrasons HC-SR04 combiné à un écran LCD I2C donne à l'ESP32 S3 une station de mesure de distance autonome — aucun ordinateur portable n'est nécessaire une fois le sketch téléversé. Ce tutoriel vous guide à travers le câblage des deux composants à l'ESP32 S3 et l'écriture du code Arduino qui prend des mesures et les affiche à l'écran en temps réel.

Ce que vous allez construire :

  1. Un circuit connectant un capteur à ultrasons HC-SR04 et un écran LCD I2C à l'ESP32 S3
  2. Un sketch qui déclenche le capteur, calcule la distance, et met à jour le LCD toutes les 500 millisecondes
  3. Un télémètre portable et autonome qui affiche les lectures sans avoir besoin d'un Serial Monitor
  4. Une base que vous pouvez étendre en alarmes de proximité, assistants de stationnement, ou moniteurs de niveau de liquide

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×LCD I2C Display 3.3V
1×Alternativement: LCD I2C 20x4
1×Capteur à ultrasons
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: La plupart des écrans LCD I2C du marché sont des modèles 5V. Ils peuvent fonctionner avec cette carte, mais ce n'est pas sûr et cela risque d'endommager la carte. Nous recommandons vivement d'utiliser l'écran LCD I2C 3.3V recommandé ci-dessus.

À propos du capteur à ultrasons et du LCD

Le capteur à ultrasons HC-SR04 émet une impulsion sonore à haute fréquence et mesure le temps que met l'écho à revenir, permettant à l'ESP32 S3 de calculer la distance à tout objet devant lui sans contact physique. L'associer à un écran LCD I2C transforme le résultat en un affichage continuellement mis à jour, facile à lire d'un coup d'œil, ce qui le rend idéal pour des instruments autonomes et des expositions interactives.

Caractéristiques principales

Nous avons des tutoriels dédiés couvrant chaque composant en profondeur. Chaque tutoriel contient des informations détaillées et des instructions étape par étape sur le brochage du matériel, le principe de fonctionnement, le câblage vers l'ESP32 S3 et le code Arduino. Apprenez-en plus aux liens suivants :

Schéma de câblage

Connectez le HC-SR04 et l'écran LCD I2C à votre ESP32 S3 en suivant le schéma ci-dessous, et vérifiez bien chaque connexion avant de mettre la carte sous tension. Le capteur à ultrasons et le LCD fonctionnent tous les deux en 5V, donc utilisez la broche 5V (VBUS) de l'ESP32 S3 lors de l'alimentation via USB.

ESP32 S3 Ultrasonic Sensor LCD Wiring Diagram

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

Un bornier à vis maintient chaque fil bien serré, même quand la carte bouge. La carte ESP32 S3 se branche sur une carte à bornier à vis pour ESP32 S3, qui transforme chaque broche en bornier à vis. Voici le montage avec la carte à bornier à vis :

ESP32 S3 Ultrasonic Sensor LCD Wiring Diagram (Screw Terminal)

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

Ou branchez la carte ESP32 S3 sur une carte d'extension GPIO pour ESP32 S3. Le même câblage ressemble alors à ceci :

ESP32 S3 Ultrasonic Sensor LCD Wiring Diagram (GPIO Breakout Board)

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

Notes de sécurité

Connectez toujours les broches VCC du HC-SR04 et du LCD au rail 5V plutôt qu'au rail 3,3V — les deux composants nécessitent 5V pour fonctionner correctement et produiront des résultats peu fiables à des tensions plus basses. Gardez les fils de signal courts et éloignés des fils d'alimentation pour minimiser le bruit sur la ligne ECHO, qui pourrait produire des lectures de distance erratiques.

Composant Broche Broche ESP32 S3
Capteur à ultrasons VCC 5V
Capteur à ultrasons GND GND
Capteur à ultrasons TRIG GPIO15
Capteur à ultrasons ECHO GPIO7
LCD I2C VCC 5V
LCD I2C GND GND
LCD I2C SCL GPIO9 (Horloge I2C)
LCD I2C SDA GPIO8 (Données I2C)

Code ESP32 S3

Le code suivant déclenche le capteur à ultrasons HC-SR04 toutes les 500 millisecondes, lit la durée de l'impulsion d'écho, la convertit en centimètres, et affiche le résultat sur l'écran LCD I2C. Il utilise la bibliothèque DIYables LCD I2C pour garder la logique d'affichage propre et lisible, ne nécessitant que quelques lignes pour initialiser et mettre à jour l'écran.

/* * 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-lcd */ /* * 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-lcd */ #include <DIYables_LCD_I2C.h> DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows #define TRIG_PIN 15 // ESP32-S3 pin GPIO15 connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 7 // ESP32-S3 pin GPIO7 connected to Ultrasonic Sensor's ECHO pin float duration_us, distance_cm; void setup() { lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight pinMode(TRIG_PIN, OUTPUT); // config trigger pin to output mode pinMode(ECHO_PIN, INPUT); // config echo pin to input mode } 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; lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Distance: "); lcd.print(distance_cm); delay(500); }

※ Note:

L'adresse I2C du LCD peut varier selon les fabricants. Dans le code, nous avons utilisé l'adresse 0x27 spécifiée par le fabricant DIYables. Si votre LCD n'affiche rien, essayez l'adresse 0x3F à la place.

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez le capteur à ultrasons et le LCD I2C à 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. Tapez "DIYables LCD I2C" dans la zone de recherche, puis recherchez la bibliothèque DIYables_LCD_I2C de DIYables.
  8. Cliquez sur le bouton Install pour installer la bibliothèque DIYables_LCD_I2C.
  • Search for DIYables LCD I2C created by DIYables.io and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
DIYables LCD I2C by DIYables.io
This library is designed for HD44780-based I2C LCD displays. It provides LiquidCrystal-compatible API plus helper functions (text alignment, progress bars, predefined custom characters). Supports multiple I2C buses (Wire, Wire1, Wire2) for advanced boards like Arduino Giga, Due, and ESP32. Compatible with all Arduino-based platforms including Arduino Uno, Mega, Nano, ESP32, ESP8266, STM32, and Raspberry Pi Pico. More info
1.0.0
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  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.
Arduino IDE Upload Code
  1. Tenez votre main ou un objet à différentes distances devant le capteur.
  2. Observez la lecture de distance se mettre à jour sur l'écran LCD en temps réel.
  3. Astuce pro : Si le LCD n'affiche rien, ajustez le potentiomètre de contraste à l'arrière du module LCD et vérifiez que l'adresse I2C dans le code correspond à votre module (essayez 0x3F si 0x27 ne fonctionne pas).

Sortie du moniteur série

La sortie suivante du Serial Monitor montre l'ESP32 S3 lisant la distance depuis le capteur HC-SR04 et mettant à jour le LCD à intervalles réguliers. Chaque ligne est horodatée afin que vous puissiez vérifier la fréquence de mise à jour et voir que les lectures changent lorsque vous rapprochez ou éloignez un objet.

∞
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:02] Distance: 24.7 cm [2026-06-16 09:14:02] Distance: 22.3 cm [2026-06-16 09:14:03] Distance: 18.1 cm [2026-06-16 09:14:03] Distance: 12.5 cm
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et idées de projets

Une fois que vous avez des lectures de distance qui s'affichent sur le LCD avec votre ESP32 S3, vous pouvez adapter ce projet en une large gamme d'applications pratiques dans la domotique, la robotique et la surveillance industrielle.

  1. Assistant de stationnement : Montez le capteur dans un garage et affichez la distance en temps réel à mesure qu'un véhicule approche une ligne d'arrêt.
  2. Moniteur de niveau de liquide : Orientez le capteur vers le bas dans un réservoir et affichez la profondeur mesurée sous forme de pourcentage de remplissage sur le LCD.
  3. Alarme de proximité : Déclenchez un buzzer lorsque la distance affichée descend sous un seuil configurable.
  4. Robot de détection d'obstacle : Utilisez la distance affichée sur le LCD dans la logique de navigation pour diriger un véhicule autonome autour des obstacles.
  5. Compteur de personnes : Détectez quand quelqu'un passe une porte et incrémentez un compteur de visiteurs affiché sur le LCD.
  6. Station de mesure de hauteur : Montez le capteur au-dessus et affichez la hauteur calculée d'un objet ou d'une personne se tenant en dessous.

Tutoriel vidéo

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

Défiez-vous

Maintenant que vous pouvez afficher des lectures de distance en direct sur le LCD avec votre ESP32 S3, essayez ces défis progressivement plus difficiles pour approfondir votre compréhension et étendre le projet vers quelque chose de plus performant.

  1. Débutant : Modifiez le sketch pour afficher la distance à la fois en centimètres et en pouces sur des lignes séparées du LCD.
  2. Débutant : Ajoutez une seconde ligne au LCD qui montre si l'objet détecté est « NEAR » (moins de 20 cm) ou « FAR » (plus de 20 cm).
  3. Intermédiaire : Implémentez un indicateur de proximité à trois niveaux sur le LCD — « SAFE », « CLOSE », et « DANGER » — avec des couleurs de LED correspondantes en utilisant une LED RVB.
  4. Intermédiaire : Appliquez une moyenne mobile sur cinq échantillons aux lectures de distance pour atténuer le bruit et produire un affichage LCD plus stable.
  5. Avancé : Ajoutez un bouton-poussoir qui permet à l'utilisateur de définir un seuil d'alerte personnalisé, stocké en mémoire flash afin qu'il survive à un cycle d'alimentation.
  6. Avancé : Étendez le projet avec le Wi-Fi afin que l'ESP32 S3 envoie les lectures de distance à un tableau de bord web tout en mettant à jour simultanément le LCD.

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 !