ESP32 S3 - Ultraschallsensor - LCD

Der HC-SR04-Ultraschallsensor in Kombination mit einem LCD-I2C-Display macht den ESP32 S3 zu einer eigenständigen Entfernungsmessstation – nach dem Hochladen des Sketches wird kein Laptop mehr benötigt. Dieses Tutorial führt Sie durch die Verdrahtung beider Komponenten mit dem ESP32 S3 und das Schreiben des Arduino-Codes, der Messungen durchführt und sie in Echtzeit auf dem Bildschirm ausgibt.

Was Sie bauen werden:

  1. Eine Schaltung, die einen HC-SR04-Ultraschallsensor und ein LCD-I2C-Display mit dem ESP32 S3 verbindet
  2. Einen Sketch, der den Sensor auslöst, die Entfernung berechnet und das LCD alle 500 Millisekunden aktualisiert
  3. Ein tragbares, eigenständiges Entfernungsmessgerät, das Messwerte ohne Seriellen Monitor anzeigt
  4. Eine Grundlage, die Sie zu Näherungsalarmen, Einparkhilfen oder Füllstandsüberwachungen erweitern können

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×LCD I2C Display 3.3V
1×(Alternativ) LCD I2C 20x4
1×Ultraschallsensor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Die meisten LCD I2C-Displays auf dem Markt sind 5V-Displays. Sie funktionieren möglicherweise mit diesem Board, aber das ist nicht sicher und kann das Board beschädigen. Wir empfehlen dringend, das oben empfohlene 3.3V LCD I2C-Display zu verwenden.

Überblick über Ultrasonic Sensor and LCD

Der HC-SR04-Ultraschallsensor sendet einen hochfrequenten Schallimpuls aus und misst, wie lange das Echo zur Rückkehr braucht, sodass der ESP32 S3 die Entfernung zu jedem Objekt vor dem Sensor ohne physischen Kontakt berechnen kann. In Verbindung mit einem LCD-I2C-Display wird das Ergebnis zu einer ständig aktualisierten Anzeige, die auf einen Blick ablesbar ist – ideal für eigenständige Messgeräte und interaktive Ausstellungsstücke.

Wichtige Spezifikationen

Wir haben eigene Tutorials, die jede Komponente ausführlich behandeln. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zu Hardware-Pinbelegung, Funktionsprinzip, Verdrahtung mit dem ESP32 S3 und Arduino-Code. Mehr dazu erfahren Sie unter den folgenden Links:

Verdrahtungsdiagramm

Schließen Sie den HC-SR04 und das LCD-I2C-Display gemäß dem folgenden Schaltplan an Ihren ESP32 S3 an und überprüfen Sie jede Verbindung, bevor Sie die Platine mit Strom versorgen. Sowohl der Ultraschallsensor als auch das LCD arbeiten mit 5 V, verwenden Sie daher bei Versorgung über USB den 5-V-Pin (VBUS) des ESP32 S3.

ESP32 S3 Ultraschallsensor LCD Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Eine Schraubklemme hält jedes Kabel fest, auch wenn die Platine wackelt. Der ESP32 S3 passt auf ein Schraubklemmen-Board für ESP32 S3, das jeden Pin zu einer Schraubklemme macht. So sieht es mit dem Schraubklemmen-Board aus:

ESP32 S3 Ultraschallsensor LCD Schaltplan (Screw Terminal)

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Oder stecken Sie den ESP32 S3 auf ein GPIO-Breakout-Board für ESP32 S3. Dieselbe Verdrahtung sieht dann so aus:

ESP32 S3 Ultraschallsensor LCD Schaltplan (GPIO Breakout Board)

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Sicherheitshinweise

Verbinden Sie die VCC-Pins des HC-SR04 und des LCD immer mit der 5-V-Schiene statt mit der 3,3-V-Schiene – beide Komponenten benötigen 5 V für einen korrekten Betrieb und liefern bei niedrigeren Spannungen unzuverlässige Ergebnisse. Halten Sie Signalleitungen kurz und fern von Stromleitungen, um Störungen auf der ECHO-Leitung zu minimieren, die zu sprunghaften Entfernungswerten führen könnten.

Komponente Pin ESP32 S3 Pin
Ultraschallsensor VCC 5V
Ultraschallsensor GND GND
Ultraschallsensor TRIG GPIO15
Ultraschallsensor ECHO GPIO7
LCD I2C VCC 5V
LCD I2C GND GND
LCD I2C SCL GPIO9 (I2C-Takt)
LCD I2C SDA GPIO8 (I2C-Daten)

ESP32-S3-Code

Der folgende Code löst den HC-SR04-Ultraschallsensor alle 500 Millisekunden aus, liest die Dauer des Echoimpulses, rechnet sie in Zentimeter um und zeigt das Ergebnis auf dem LCD-I2C-Bildschirm an. Er verwendet die DIYables-LCD-I2C-Bibliothek, um die Anzeigelogik übersichtlich und lesbar zu halten, sodass nur wenige Zeilen zum Initialisieren und Aktualisieren des Bildschirms nötig sind.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

※ Notiz:

Die I2C-Adresse des LCD kann je nach Hersteller unterschiedlich sein. Im Code haben wir die Adresse 0x27 verwendet, die vom Hersteller DIYables angegeben wird. Wenn Ihr LCD nichts anzeigt, versuchen Sie stattdessen die Adresse 0x3F.

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Verdrahten Sie den Ultraschallsensor und das LCD I2C gemäß dem obigen Schaltplan mit dem ESP32 S3.
  3. Verbinden Sie die ESP32-S3-Platine über ein USB-Typ-C-Kabel mit Ihrem PC.
  4. Öffnen Sie die Arduino IDE auf Ihrem PC.
  5. Wählen Sie im Menü Werkzeuge die richtige ESP32-S3-Platine und den COM-Port aus.
  6. Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
  7. Geben Sie "DIYables LCD I2C" in das Suchfeld ein und suchen Sie die Bibliothek DIYables_LCD_I2C von DIYables.
  8. Klicken Sie auf die Schaltfläche Install, um die Bibliothek DIYables_LCD_I2C zu installieren.
  • 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. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  2. Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf Ihren ESP32 S3 hochzuladen.
Arduino IDE Code hochladen
  1. Halten Sie Ihre Hand oder einen Gegenstand in unterschiedlichen Abständen vor den Sensor.
  2. Beobachten Sie, wie sich der Entfernungswert auf dem LCD in Echtzeit aktualisiert.
  3. Profi-Tipp: Wenn das LCD nichts anzeigt, stellen Sie das Kontrast-Potentiometer auf der Rückseite des LCD-Moduls ein und prüfen Sie, ob die I2C-Adresse im Code zu Ihrem Modul passt (versuchen Sie 0x3F, wenn 0x27 nicht funktioniert).

Ausgabe im Seriellen Monitor

Die folgende Ausgabe im Seriellen Monitor zeigt, wie der ESP32 S3 die Entfernung vom HC-SR04-Sensor ausliest und das LCD in regelmäßigen Abständen aktualisiert. Jede Zeile trägt einen Zeitstempel, sodass Sie die Aktualisierungsrate überprüfen und kontrollieren können, ob sich die Werte ändern, wenn Sie ein Objekt näher heran- oder weiter wegbewegen.

∞
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

Anwendungen und Projektideen

Sobald die Entfernungswerte mit Ihrem ESP32 S3 auf dem LCD erscheinen, können Sie dieses Projekt für viele praktische Anwendungen in Hausautomation, Robotik und industrieller Überwachung anpassen.

  1. Einparkhilfe: Montieren Sie den Sensor in einer Garage und zeigen Sie die Entfernung in Echtzeit an, während sich ein Fahrzeug einer Haltelinie nähert.
  2. Füllstandsüberwachung: Richten Sie den Sensor nach unten in einen Tank und zeigen Sie die gemessene Tiefe als Füllstand in Prozent auf dem LCD an.
  3. Näherungsalarm: Lösen Sie einen Summer aus, wenn die angezeigte Entfernung unter einen einstellbaren Schwellenwert fällt.
  4. Roboter mit Hinderniserkennung: Führen Sie die Entfernung vom LCD einer Navigationslogik zu, um ein autonomes Fahrzeug um Hindernisse herumzusteuern.
  5. Personenzähler: Erkennen Sie, wenn jemand einen Türdurchgang passiert, und erhöhen Sie einen auf dem LCD angezeigten Besucherzähler.
  6. Höhenmessstation: Montieren Sie den Sensor über Kopf und zeigen Sie die berechnete Höhe eines darunter befindlichen Objekts oder einer Person an.

Video-Tutorial

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32-S3-Projekt an.

Fordern Sie sich selbst heraus

Da Sie nun Live-Entfernungswerte mit Ihrem ESP32 S3 auf dem LCD anzeigen können, probieren Sie diese zunehmend schwierigeren Aufgaben aus, um Ihr Verständnis zu vertiefen und das Projekt leistungsfähiger zu machen.

  1. Anfänger: Ändern Sie den Sketch so, dass die Entfernung in Zentimetern und Zoll in getrennten Zeilen des LCD angezeigt wird.
  2. Anfänger: Fügen Sie dem LCD eine zweite Zeile hinzu, die anzeigt, ob das erkannte Objekt „NEAR“ (unter 20 cm) oder „FAR“ (über 20 cm) ist.
  3. Fortgeschritten: Setzen Sie auf dem LCD eine dreistufige Näherungsanzeige um – „SAFE“, „CLOSE“ und „DANGER“ – mit passenden Farben über eine RGB-LED.
  4. Fortgeschritten: Wenden Sie auf die Entfernungswerte einen gleitenden Mittelwert über fünf Messungen an, um Rauschen zu glätten und eine ruhigere LCD-Anzeige zu erhalten.
  5. Experte: Fügen Sie einen Taster hinzu, mit dem der Benutzer einen eigenen Alarmschwellenwert festlegen kann, der im Flash-Speicher abgelegt wird und so einen Neustart übersteht.
  6. Experte: Erweitern Sie das Projekt um WLAN, sodass der ESP32 S3 die Entfernungswerte an ein Web-Dashboard sendet und gleichzeitig das LCD aktualisiert.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!