ESP32 S3 - Capteur Ultrasonique - OLED
Le capteur ultrasonique HC-SR04 combiné à un écran OLED donne à l'ESP32 S3 une station de mesure de distance compacte et autonome — aucun ordinateur portable requis une fois le croquis téléversé. Ce tutoriel vous guide dans le câblage des deux composants à l'ESP32 S3 et l'écriture du code Arduino qui prend des mesures et les affiche sur l'écran OLED en temps réel.
Ce que vous allez construire :
- Un circuit connectant un capteur ultrasonique HC-SR04 et un écran OLED SSD1306 à l'ESP32 S3
- Un croquis qui déclenche le capteur, calcule la distance, et met à jour l'OLED toutes les 500 millisecondes
- Un mètre de distance portable et autonome qui affiche les relevés sans avoir besoin d'un Serial Monitor
- Une base que vous pouvez étendre en alarmes de proximité, assistants de stationnement, ou moniteurs de niveau de liquide
Matériel Requis
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 souhaitez un écran OLED plus grand, utilisez le ESP32 S3 - Écran OLED SSD1309 128x64 | Tutoriel OLED I2C 2,42 pouces.
À propos du Capteur Ultrasonique et de l'OLED
Le capteur ultrasonique HC-SR04 émet une impulsion sonore haute fréquence et mesure combien de temps l'écho met à revenir, permettant à l'ESP32 S3 de calculer la distance à tout objet devant lui sans contact physique. L'associer à un écran OLED SSD1306 transforme le résultat en une lecture nette et à haut contraste, facile à lire d'un coup d'œil, ce qui le rend idéal pour les instruments autonomes et les projets interactifs.
Spécifications Clés
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, la connexion de câblage à l'ESP32 S3, et le code Arduino. En savoir plus sur eux aux liens suivants :
Schéma de Câblage
Connectez le HC-SR04 et l'écran OLED SSD1306 à votre ESP32 S3 en suivant le schéma ci-dessous, et vérifiez deux fois chaque connexion avant d'alimenter la carte. Le capteur ultrasonique fonctionne en 5V, donc utilisez la broche 5V (VBUS) sur l'ESP32 S3 quand alimenté par USB, tandis que l'OLED peut fonctionner en 3,3V ou 5V selon votre module.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Pour un projet durable, les borniers à vis tiennent mieux les fils que les fils de connexion. Une carte à bornier à vis pour ESP32 S3 règle ce problème. Branchez-y la carte ESP32 S3 et vissez les fils. Les broches ne changent pas. Branchez simplement chaque fil sur le bornier à vis correspondant :

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 :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Notes de Sécurité
Connectez toujours la broche VCC du HC-SR04 au rail 5V plutôt qu'au rail 3,3V — le capteur nécessite 5V pour fonctionner correctement et produira des impulsions d'écho non fiables à des tensions plus basses. Gardez les fils de signal courts et loin 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 |
|---|---|---|
| Ultrasonic Sensor | VCC | 5V |
| Ultrasonic Sensor | GND | GND |
| Ultrasonic Sensor | TRIG | GPIO15 |
| Ultrasonic Sensor | ECHO | GPIO7 |
| OLED Display | VCC | 3.3V |
| OLED Display | GND | GND |
| OLED Display | SCL | GPIO9 (Horloge I2C) |
| OLED Display | SDA | GPIO8 (Données I2C) |
Code ESP32 S3
Le code suivant déclenche le capteur ultrasonique 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 centré sur l'écran OLED SSD1306. Il utilise la bibliothèque Adafruit SSD1306 pour garder la logique d'affichage claire et lisible, et centre automatiquement la valeur de distance à la fois horizontalement et verticalement sur l'écran.
※ Note:
Le code ci-dessus centre automatiquement le texte horizontalement et verticalement sur l'écran OLED. Voir Comment centrer verticalement/horizontalement sur OLED pour plus de détails.
Étapes Rapides
- Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
- Câblez le capteur ultrasonique et l'écran OLED à l'ESP32 S3 en suivant le schéma de câblage ci-dessus.
- Connectez la carte ESP32 S3 à votre PC en utilisant un câble USB Type-C.
- Ouvrez l'Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 S3 et le bon port COM dans le menu Tools.
- Cliquez sur l'icône Libraries sur la barre de gauche de l'Arduino IDE.
- Tapez "SSD1306" dans la boîte de recherche, puis trouvez la bibliothèque SSD1306 par Adafruit.
- Cliquez sur le bouton Install pour installer la bibliothèque.
- Search for Adafruit SSD1306 created by Adafruit and click the Install button.
- Il vous sera demandé d'installer d'autres dépendances de bibliothèque.
- Cliquez sur le bouton Install All pour installer toutes les dépendances de bibliothèque.
- Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
- Cliquez sur le bouton Upload pour compiler et téléverser le code sur votre ESP32 S3.

- Tenez votre main ou un objet à différentes distances devant le capteur.
- Regardez le relevé de distance se mettre à jour sur l'écran OLED en temps réel.
- Astuce : Si rien n'apparaît sur l'OLED, vérifiez que l'adresse I2C dans le code correspond à votre module (essayez 0x3F si 0x3D ou 0x3C ne fonctionne pas) et confirmez que les fils SDA/SCL ne sont pas inversés.
Sortie du Serial Monitor
La sortie suivante du Serial Monitor montre l'ESP32 S3 lisant la distance depuis le capteur HC-SR04 et mettant à jour l'OLED à intervalles réguliers. Chaque ligne est horodatée afin que vous puissiez vérifier le taux de mise à jour et vérifier que les relevés changent pendant que vous rapprochez ou éloignez un objet.
Applications et Idées de Projets
Une fois que vous avez des relevés de distance apparaissant sur l'OLED 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.
- Assistant de stationnement : Montez le capteur dans un garage et affichez la distance en temps réel pendant qu'un véhicule approche d'une ligne d'arrêt sur l'OLED.
- Moniteur de niveau de liquide : Pointez le capteur vers le bas dans un réservoir et affichez la profondeur mesurée comme pourcentage de remplissage sur l'OLED.
- Alarme de proximité : Déclenchez un buzzer quand la distance affichée descend sous un seuil configurable.
- Robot de détection d'obstacles : Alimentez la logique de navigation avec le relevé de distance de l'OLED pour diriger un véhicule autonome autour des obstacles.
- Compteur de personnes : Détectez quand quelqu'un passe une entrée et incrémentez un compte de visiteurs affiché sur l'OLED.
- Station de mesure de hauteur : Montez le capteur en hauteur et affichez la hauteur calculée d'un objet ou d'une personne se tenant en dessous.
Tutoriel Vidéo
Regardez la vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.
Défiez-vous
Maintenant que vous pouvez afficher des relevés de distance en direct sur l'OLED avec votre ESP32 S3, essayez ces défis progressivement plus difficiles pour approfondir votre compréhension et étendre le projet en quelque chose de plus performant.
- Débutant : Modifiez le croquis pour afficher la distance en centimètres et en pouces sur des lignes séparées de l'OLED.
- Débutant : Ajoutez une seconde ligne à l'OLED qui montre si l'objet détecté est « NEAR » (sous 20 cm) ou « FAR » (au-dessus de 20 cm).
- Intermédiaire : Implémentez un indicateur de proximité à trois niveaux sur l'OLED — « SAFE », « CLOSE », et « DANGER » — avec des couleurs de LED correspondantes en utilisant une LED RGB.
- Intermédiaire : Appliquez une moyenne mobile sur cinq échantillons aux relevés de distance pour lisser le bruit et produire un affichage OLED plus stable.
- Avancé : Ajoutez un bouton poussoir qui permet à l'utilisateur de définir un seuil d'alerte personnalisé, stocké dans la mémoire flash afin qu'il survive à un cycle d'alimentation.
- Avancé : Étendez le projet avec le Wi-Fi afin que l'ESP32 S3 envoie les relevés de distance à un tableau de bord web tout en mettant à jour simultanément l'OLED.