ESP32 - Capteur à ultrasons - OLED

Ce tutoriel vous explique comment utiliser l'ESP32 pour lire la distance à partir d'un capteur ultrasonique et l'afficher sur un OLED.

Capteur ultrasonique ESP32 OLED

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×SSD1306 I2C OLED Display 128x64
1×Ultrasonic Sensor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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.

À propos de l'OLED et du capteur ultrasonique

Nous avons des tutoriels spécifiques sur l'OLED et le capteur ultrasonique. 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, le code ESP32... En savoir plus sur eux aux liens suivants :

Diagramme de câblage

  • Le schéma de câblage avec alimentation par câble USB.
Diagramme de câblage du capteur ultrasonique ESP32 OLED

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

  • Le schéma de câblage avec alimentation provenant d'un adaptateur 5v
Schéma de câblage OLED de capteur ultrasonique ESP32 à 5V

This image is created using Fritzing. Click to enlarge image

Code ESP32 - Capteur ultrasonique - OLED

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32-ultrasonic-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define TRIG_PIN 14 // ESP32 pin GPIO14 connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 27 // ESP32 pin GPIO27 connected to Ultrasonic Sensor's ECHO pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C String tempString; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display tempString.reserve(10); // to avoid fragmenting memory when using String } 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 long duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance float distance_cm = 0.017 * duration_us; // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); tempString = String(distance_cm, 2); // two decimal places tempString += " cm"; Serial.println(tempString); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(tempString); // display temperature on OLED } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Étapes rapides

  • Ouvrez l'IDE Arduino.
  • Cliquez sur l'icône Libraries dans la barre gauche de l'IDE Arduino.
  • Recherchez "SSD1306", puis trouvez la bibliothèque SSD1306 de Adafruit
  • Cliquez sur le bouton Install pour installer la bibliothèque.
Bibliothèque OLED ESP32
  • Vous devrez installer certaines autres dépendances de bibliothèques
  • Cliquez sur le bouton Install All pour installer toutes les dépendances des bibliothèques.
Bibliothèque de capteurs ESP32 Adafruit GFX
  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload de l'IDE Arduino
  • Déplacez votre main devant le capteur
  • Observez le résultat sur l'OLED et le moniteur série

※ NOTE THAT:

Le code ci-dessus permet de centrer automatiquement le texte horizontalement et verticalement sur l'affichage OLED. Consultez Comment centrer verticalement/horizontalement sur OLED pour plus de détails.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!