ESP32 S3 - Temperatursensor - OLED

Lernen Sie, wie Sie einen DS18B20-1-Wire-Temperatursensor an einen ESP32 S3 anschließen und Live-Temperaturwerte auf einem SSD1306-OLED-Bildschirm anzeigen. Dieses Tutorial führt Sie durch jeden Schritt – von der Verdrahtung der Hardware bis zum Hochladen des fertigen Codes –, sodass Sie in wenigen Minuten echte Temperaturdaten auf einem gestochen scharfen OLED-Display sehen.

Was Sie bauen werden:

  1. Eine Schaltung, die den DS18B20-Sensor und das SSD1306-OLED mit dem ESP32 S3 verbindet
  2. Firmware, die die Temperatur in Celsius und Fahrenheit vom DS18B20-1-Wire-Sensor ausliest
  3. Ein OLED-Display, das sich in Echtzeit aktualisiert und die Temperatur zentriert auf dem Bildschirm anzeigt
  4. Eine Grundlage, die Sie zu Wetterstationen, Datenloggern und Smart-Home-Anzeigen erweitern können
ESP32 S3 Temperatursensor OLED

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×DS18B20 Temperatursensor (mit Adapter)
1×DS18B20 Temperatursensor (ohne Adapter)
1×Breadboard
1×Verbindungskabel
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: Viele DS18B20-Sensoren auf dem Markt sind von geringer Qualität. Wir empfehlen dringend den Kauf des Sensors von der Marke DIYables über den obigen Link. Wir haben ihn getestet und er funktionierte gut.

Kaufhinweis: Wenn Sie ein größeres OLED-Display möchten, verwenden Sie das 2.42 inch OLED Display 128x64.

Überblick über OLED and DS18B20 Temperature Sensor

Das SSD1306-OLED und der DS18B20-1-Wire-Temperatursensor gehören zu den am häufigsten verwendeten Komponenten in ESP32-S3-Projekten, da beide günstig, leicht zu verdrahten und durch ausgereifte Arduino-Bibliotheken gut unterstützt sind. Das OLED kommuniziert über I2C mit nur zwei Signalleitungen, während der DS18B20 eine einzige Datenleitung mit Pull-up-Widerstand nutzt und das Auslesen mehrerer Sensoren an derselben Leitung unterstützt. Wenn Sie eine der beiden Komponenten vorher genauer verstehen möchten, behandeln die folgenden Tutorials Pinbelegung, Funktionsprinzipien und eigenständige Codebeispiele ausführlich.

Wichtige Referenzen

Verdrahtungsdiagramm

Für die Verbindung des ESP32 S3 mit dem DS18B20-Sensor und dem OLED-Display sind nur wenige Jumperkabel nötig, da das OLED I2C und der Sensor eine einzige Datenleitung verwendet. Ein DS18B20-Modul mit integrierter Adapterplatine wird dringend empfohlen, da der Widerstand auf dem Adapter einen separaten 4,7-kΩ-Pull-up-Widerstand auf dem Steckbrett überflüssig macht.

Sicherheitshinweise

Versorgen Sie das SSD1306-OLED immer über die 3,3-V-Schiene des ESP32 S3 – 5 V direkt an einem reinen 3,3-V-Display beschädigen es dauerhaft. Der DS18B20 verträgt sowohl 3,3 V als auch 5 V, doch mit 3,3 V bleibt alles an einer einzigen Versorgungsschiene und Sie vermeiden Probleme mit Pegelwandlung. Wenn Sie den nackten DS18B20-Sensor ohne Adapter verwenden, setzen Sie einen 4,7-kΩ-Widerstand zwischen den DATA-Pin und VCC; ohne ihn funktioniert der 1-Wire-Bus nicht zuverlässig.

  • So verbinden Sie den ESP32 S3 mit Temperatursensor und OLED über ein Steckbrett
ESP32 S3 Temperatursensor OLED Schaltplan

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

Modulkabel und dicke Kabel sitzen oft nicht gut in den Buchsenleisten. Setzen Sie den ESP32 S3 auf ein Schraubklemmen-Board für ESP32 S3 und ziehen Sie jedes Kabel unter einer Schraube fest. Das Diagramm unten zeigt die Version mit Schraubklemmen.

ESP32 S3 Temperatursensor OLED Schaltplan (Screw Terminal)

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

Hier ist dieselbe Schaltung mit einem GPIO-Breakout-Board für ESP32 S3, das jeden GPIO auf Stiftleisten herausführt:

ESP32 S3 Temperatursensor OLED Schaltplan (GPIO Breakout Board)

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

So verbinden Sie den ESP32 S3 mit Temperatursensor und OLED

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

DS18B20-Sensor-Pin ESP32 S3 Pin
VCC 3.3V
GND GND
DATA GPIO1 (oder ein beliebiger digitaler Pin)

Wir empfehlen, einen DS18B20-Sensor mit Verdrahtungsadapter für einen einfachen Anschluss zu kaufen. Der Adapter hat einen integrierten Widerstand, sodass kein separater Widerstand in der Verdrahtung nötig ist.

ESP32-S3-Code - Temperatur vom DS18B20 auf dem OLED anzeigen

Der folgende Code initialisiert sowohl das SSD1306-OLED über I2C als auch den DS18B20-Sensor an seinem 1-Wire-Datenpin und läuft dann in einer Schleife, die alle zwei Sekunden die aktuelle Temperatur ausliest und zentriert auf dem OLED-Bildschirm ausgibt. Es werden sowohl Celsius- als auch Fahrenheit-Werte berechnet, sodass Sie mit einer einfachen Änderung im Quellcode wählen können, welche Einheit angezeigt wird.

/* * 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-temperature-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-temperature-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN 1 // The ESP32-S3 pin GPIO1 connected to DS18B20 sensor's data pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library String temperature; 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 DS18B20.begin(); // initialize the sensor temperature.reserve(10); // to avoid fragmenting memory when using String } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float tempCelsius = DS18B20.getTempCByIndex(0); // read temperature in Celsius temperature = String(tempCelsius, 2); // two decimal places temperature += char(247) + String("C"); Serial.println(temperature); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(temperature); } 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(); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Verdrahtung vorbereiten: Schließen Sie den DS18B20-Sensor und das SSD1306-OLED gemäß dem obigen Schaltplan an Ihren ESP32 S3 an.
  3. Mit dem Computer verbinden: Verbinden Sie den ESP32 S3 über ein USB-Typ-C-Kabel mit Ihrem Computer.
  4. Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
  5. Platine auswählen: Wählen Sie in der Platinenauswahl den ESP32 S3 und den richtigen COM-Port aus.
  6. OLED-Bibliothek installieren: Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
  7. Nach SSD1306 suchen: Geben Sie "SSD1306" in das Suchfeld ein und suchen Sie die SSD1306-Bibliothek von Adafruit.
  8. Bibliothek installieren: 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. Abhängigkeiten installieren: Klicken Sie bei der entsprechenden Aufforderung auf Install All, um alle erforderlichen Bibliotheksabhängigkeiten einschließlich Adafruit GFX zu installieren.
  2. DallasTemperature installieren: Geben Sie "DallasTemperature" in das Suchfeld ein und suchen Sie die Bibliothek DallasTemperature von Miles Burton.
  3. Installieren: Klicken Sie auf die Schaltfläche Install, um die Bibliothek DallasTemperature zu installieren.
  • Search for DallasTemperature created by Miles Burton , Tim Newsome , Guil Barros , Rob Tillaart 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
DallasTemperature by Miles Burton , Tim Newsome , Guil Barros , Rob Tillaart
Supports DS18B20, DS18S20, DS1822, DS1820 More info
3.9.0
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. OneWire installieren: Wenn Sie aufgefordert werden, die Abhängigkeit zu installieren, klicken Sie auf Install All, um die Bibliothek OneWire zu installieren.
  2. Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie auf die Schaltfläche Upload.
  3. Sensor testen: Legen Sie den Sensor in heißes oder kaltes Wasser oder nehmen Sie ihn in die Hand, um seine Temperatur zu verändern.
  4. Ergebnis ansehen: Beobachten Sie, wie sich die Temperatur live auf dem OLED-Display aktualisiert.
ESP32 S3 zeigt Temperatur auf dem OLED an

※ Notiz:

Der Code zentriert den Temperaturtext auf dem OLED-Display automatisch sowohl horizontal als auch vertikal.

Ausgabe im Seriellen Monitor

Öffnen Sie den Seriellen Monitor mit 115200 Baud, um die Rohwerte der Temperatur zu sehen, wie sie vom DS18B20-Sensor ausgelesen werden – nützlich zur Fehlersuche, bevor das OLED-Display angeschlossen ist.

∞
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:01:02] Temperature: 24.12°C ~ 75.42°F [2026-06-16 09:01:04] Temperature: 24.25°C ~ 75.65°F [2026-06-16 09:01:06] Temperature: 35.50°C ~ 95.90°F [2026-06-16 09:01:08] Temperature: 36.10°C ~ 97.00°F
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungen und Projektideen

Der ESP32 S3 bildet zusammen mit einem DS18B20-Sensor und einem SSD1306-OLED ein eigenständiges Temperaturanzeigemodul, das sich in viele praktische Projekte einfügt. Hier sind praktische Einsatzmöglichkeiten für diese Schaltung:

  1. Eigenständiges Thermometer: Bauen Sie ein tragbares, batteriebetriebenes Thermometer, das die Temperatur ohne serielle Verbindung auf dem OLED anzeigt.
  2. Aquarium-Temperaturüberwachung: Tauchen Sie die wasserdichte DS18B20-Sonde ein, um die Wassertemperatur zu verfolgen und bei Abweichungen zu warnen.
  3. Heimwetterstation: Platzieren Sie Sensoren in mehreren Räumen und protokollieren Sie die Messwerte über WLAN in einem Dashboard oder einer Cloud-Datenbank.
  4. Lebensmittelsonde: Verwenden Sie die wasserdichte Version des DS18B20, um Koch- oder Gärtemperaturen mit einer klaren OLED-Anzeige zu überwachen.
  5. Serverraum-Wächter: Überwachen Sie kontinuierlich die Rack-Temperatur und lösen Sie ein Alarmrelais aus, wenn ein sicherer Schwellenwert überschritten wird.
  6. Gewächshaussteuerung: Lesen Sie Boden- oder Lufttemperatur aus und steuern Sie Lüftungs- oder Heizgeräte automatisch.
  7. DIY-Thermostat: Kombinieren Sie die Schaltung mit einem Relaismodul, um einen intelligenten Temperaturregler für beliebige Heiz- oder Kühlsysteme zu bauen.

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 Ihr ESP32 S3 nun die Temperatur vom DS18B20 ausliest und auf einem OLED anzeigt, entwickeln Sie das Projekt mit diesen zunehmend schwierigeren Aufgaben weiter:

  1. Anfänger: Fügen Sie dem OLED eine zweite Zeile hinzu, die unter dem Celsius-Wert die Temperatur in Fahrenheit anzeigt.
  2. Anfänger: Fügen Sie eine LED-Anzeige hinzu, die als einfache Übertemperaturwarnung leuchtet, wenn die Temperatur über 30 °C steigt.
  3. Fortgeschritten: Schließen Sie zwei DS18B20-Sensoren an dieselbe Datenleitung an und zeigen Sie beide Werte gleichzeitig auf dem OLED an, indem Sie die 1-Wire-Adressierung für mehrere Sensoren nutzen.
  4. Fortgeschritten: Protokollieren Sie Temperaturwerte mit Zeitstempel auf einer microSD-Karte, um historische Daten über Stunden oder Tage auszuwerten.
  5. Experte: Bauen Sie auf dem ESP32 S3 einen Webserver, der im Browser ein Live-Temperaturdiagramm bereitstellt und die Daten vom DS18B20 alle fünf Sekunden per AJAX-Aufruf abruft.
  6. Experte: Fügen Sie MQTT-Veröffentlichung über WLAN hinzu, damit die Temperatur in einem Home-Assistant-Dashboard erscheint und bei Überschreiten von Schwellenwerten Automatisierungen auslöst.

※ 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!