ESP32 S3 - Ultraschallsensor - OLED

Der HC-SR04-Ultraschallsensor in Kombination mit einem OLED-Display macht den ESP32 S3 zu einer kompakten, eigenständigen Abstandsmessstation — nach dem Hochladen des Sketches ist kein Laptop mehr nötig. 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 OLED-Bildschirm darstellt.

Was Sie bauen werden:

  1. Eine Schaltung, die einen HC-SR04-Ultraschallsensor und ein SSD1306-OLED-Display mit dem ESP32 S3 verbindet
  2. Einen Sketch, der den Sensor auslöst, den Abstand berechnet und das OLED alle 500 Millisekunden aktualisiert
  3. Ein tragbares, eigenständiges Abstandsmessgerät, das die Werte ohne Seriellen Monitor anzeigt
  4. Eine Grundlage, die Sie zu Näherungsalarmen, Einparkhilfen oder Füllstandsanzeigen 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×SSD1306 I2C OLED-Display 128x64
1×SSD1306 I2C OLED-Display 128x32
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: Wenn Sie ein größeres OLED-Display möchten, verwenden Sie das 2.42 inch OLED Display 128x64.

Überblick über Ultrasonic Sensor and OLED

Der HC-SR04-Ultraschallsensor sendet einen hochfrequenten Schallimpuls aus und misst, wie lange das Echo für die Rückkehr braucht. So kann der ESP32 S3 den Abstand zu jedem Objekt vor dem Sensor berechnen, ohne es zu berühren. In Kombination mit einem SSD1306-OLED-Display wird das Ergebnis zu einer klaren, kontrastreichen Anzeige, die sich auf einen Blick ablesen lässt — ideal für eigenständige Messgeräte und interaktive Projekte.

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 Pinbelegung, Funktionsprinzip, Verdrahtung mit dem ESP32 S3 und Arduino-Code. Mehr erfahren Sie unter den folgenden Links:

Verdrahtungsdiagramm

Verbinden Sie den HC-SR04 und das SSD1306-OLED-Display gemäß dem folgenden Schaltplan mit Ihrem ESP32 S3 und prüfen Sie jede Verbindung, bevor Sie das Board mit Strom versorgen. Der Ultraschallsensor arbeitet mit 5V, verwenden Sie daher bei USB-Versorgung den 5V-Pin (VBUS) des ESP32 S3. Das OLED kann je nach Modul mit 3,3V oder 5V betrieben werden.

ESP32 S3 Ultraschallsensor OLED Schaltplan

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

Für ein dauerhaftes Projekt halten Schraubklemmen die Kabel besser als Jumperkabel. Ein Schraubklemmen-Board für ESP32 S3 löst dieses Problem. Stecken Sie den ESP32 S3 darauf und schrauben Sie die Kabel fest. Die Pins ändern sich nicht. Schließen Sie jedes Kabel einfach an die passende Schraubklemme an:

ESP32 S3 Ultraschallsensor OLED Schaltplan (Screw Terminal)

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

Lieber Stiftleisten statt Schrauben? Stecken Sie den ESP32 S3 auf ein GPIO-Breakout-Board für ESP32 S3:

ESP32 S3 Ultraschallsensor OLED Schaltplan (GPIO Breakout Board)

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

Sicherheitshinweise

Verbinden Sie den VCC-Pin des HC-SR04 immer mit der 5V-Schiene und nicht mit der 3,3V-Schiene — der Sensor benötigt 5V für einen korrekten Betrieb und erzeugt bei niedrigeren Spannungen unzuverlässige Echoimpulse. Halten Sie die Signalleitungen kurz und fern von Stromleitungen, um Störungen auf der ECHO-Leitung zu minimieren, die zu sprunghaften Abstandswerten führen könnten.

Komponente Pin ESP32 S3 Pin
Ultraschallsensor VCC 5V
Ultraschallsensor GND GND
Ultraschallsensor TRIG GPIO15
Ultraschallsensor ECHO GPIO7
OLED-Display VCC 3.3V
OLED-Display GND GND
OLED-Display SCL GPIO9 (I2C-Takt)
OLED-Display 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 zentriert auf dem SSD1306-OLED-Bildschirm an. Er verwendet die Adafruit-SSD1306-Bibliothek, damit die Anzeigelogik übersichtlich und gut lesbar bleibt, und zentriert den Abstandswert automatisch horizontal und vertikal auf dem Bildschirm.

/* * 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-oled */ /* * 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-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 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 // OLED is on the default I2C pins of ESP32-S3: SDA = GPIO8, SCL = GPIO9 Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C String tempString; void setup() { Serial.begin(9600); pinMode(TRIG_PIN, OUTPUT); // set ESP32-S3 pin to output mode pinMode(ECHO_PIN, INPUT); // set ESP32-S3 pin to input mode // 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"; oledDisplayCenter(tempString); // display distance 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(); }

※ Notiz:

Der obige Code richtet den Text auf dem OLED-Display automatisch horizontal und vertikal mittig aus. Weitere Details finden Sie unter Wie man Text auf dem OLED vertikal/horizontal zentriert.

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 OLED-Display gemäß dem obigen Schaltplan mit dem ESP32 S3.
  3. Verbinden Sie das ESP32-S3-Board über ein USB-Typ-C-Kabel mit Ihrem PC.
  4. Öffnen Sie die Arduino IDE auf Ihrem PC.
  5. Wählen Sie im Menü Tools das richtige ESP32-S3-Board und den COM-Port aus.
  6. Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
  7. Geben Sie "SSD1306" in das Suchfeld ein und suchen Sie die SSD1306-Bibliothek von Adafruit.
  8. Klicken Sie auf die Schaltfläche Install, um die Bibliothek zu installieren.
  • Search for Adafruit SSD1306 created by Adafruit 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
Adafruit SSD1306 by Adafruit
SSD1306 oled driver library for monochrome 128x64 and 128x32 displays More info
2.5.9
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Sie werden aufgefordert, einige weitere abhängige Bibliotheken zu installieren.
  2. Klicken Sie auf die Schaltfläche Install All, um alle abhängigen Bibliotheken zu installieren.
  3. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  4. 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 ein Objekt in verschiedenen Abständen vor den Sensor.
  2. Beobachten Sie, wie sich der Abstandswert auf dem OLED-Display in Echtzeit aktualisiert.
  3. Profi-Tipp: Wenn auf dem OLED nichts erscheint, prüfen Sie, ob die I2C-Adresse im Code zu Ihrem Modul passt (versuchen Sie 0x3F, wenn 0x3D oder 0x3C nicht funktioniert), und stellen Sie sicher, dass die SDA/SCL-Leitungen nicht vertauscht sind.

Ausgabe im Seriellen Monitor

Die folgende Ausgabe im Seriellen Monitor zeigt, wie der ESP32 S3 den Abstand vom HC-SR04-Sensor liest und das OLED in regelmäßigen Abständen aktualisiert. Jede Zeile hat einen Zeitstempel, sodass Sie die Aktualisierungsrate prüfen und kontrollieren können, ob sich die Werte ändern, wenn Sie ein Objekt näher heran oder weiter weg bewegen.

∞
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:22:01] Distance: 31.4 cm [2026-06-16 09:22:01] Distance: 27.8 cm [2026-06-16 09:22:02] Distance: 19.2 cm [2026-06-16 09:22:02] Distance: 11.6 cm
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungen und Projektideen

Sobald die Abstandswerte mit Ihrem ESP32 S3 auf dem OLED angezeigt werden, 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 auf dem OLED den Abstand 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 OLED an.
  3. Näherungsalarm: Lösen Sie einen Summer aus, wenn der angezeigte Abstand unter einen einstellbaren Schwellenwert fällt.
  4. Roboter mit Hinderniserkennung: Verwenden Sie den Abstandswert in einer Navigationslogik, um ein autonomes Fahrzeug um Hindernisse herumzusteuern.
  5. Personenzähler: Erkennen Sie, wenn jemand eine Tür passiert, und erhöhen Sie einen Besucherzähler auf dem OLED.
  6. Station zur Höhenmessung: Montieren Sie den Sensor oben und zeigen Sie die berechnete Höhe eines darunter stehenden Objekts oder einer Person an.

Video-Tutorial

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

Fordern Sie sich selbst heraus

Da Sie nun mit Ihrem ESP32 S3 aktuelle Abstandswerte auf dem OLED 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 der Abstand in Zentimetern und Zoll in getrennten Zeilen auf dem OLED angezeigt wird.
  2. Anfänger: Fügen Sie dem OLED eine zweite Zeile hinzu, die anzeigt, ob das erkannte Objekt "NEAR" (unter 20 cm) oder "FAR" (über 20 cm) ist.
  3. Fortgeschritten: Setzen Sie eine dreistufige Näherungsanzeige auf dem OLED um — "SAFE", "CLOSE" und "DANGER" — mit passenden Farben über eine RGB-LED.
  4. Fortgeschritten: Wenden Sie einen gleitenden Mittelwert über fünf Messungen an, um Störungen zu glätten und eine ruhigere OLED-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 ein Aus- und Einschalten übersteht.
  6. Experte: Erweitern Sie das Projekt um Wi-Fi, sodass der ESP32 S3 die Abstandswerte an ein Web-Dashboard sendet und gleichzeitig das OLED 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!