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:
- Eine Schaltung, die den DS18B20-Sensor und das SSD1306-OLED mit dem ESP32 S3 verbindet
- Firmware, die die Temperatur in Celsius und Fahrenheit vom DS18B20-1-Wire-Sensor ausliest
- Ein OLED-Display, das sich in Echtzeit aktualisiert und die Temperatur zentriert auf dem Bildschirm anzeigt
- Eine Grundlage, die Sie zu Wetterstationen, Datenloggern und Smart-Home-Anzeigen erweitern können

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
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

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.

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:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- So verbinden Sie den ESP32 S3 mit Temperatursensor und OLED über eine Schraubklemmen-Breakout-Platine

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.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Verdrahtung vorbereiten: Schließen Sie den DS18B20-Sensor und das SSD1306-OLED gemäß dem obigen Schaltplan an Ihren ESP32 S3 an.
- Mit dem Computer verbinden: Verbinden Sie den ESP32 S3 über ein USB-Typ-C-Kabel mit Ihrem Computer.
- Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
- Platine auswählen: Wählen Sie in der Platinenauswahl den ESP32 S3 und den richtigen COM-Port aus.
- OLED-Bibliothek installieren: Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
- Nach SSD1306 suchen: Geben Sie "SSD1306" in das Suchfeld ein und suchen Sie die SSD1306-Bibliothek von Adafruit.
- 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.
- Abhängigkeiten installieren: Klicken Sie bei der entsprechenden Aufforderung auf Install All, um alle erforderlichen Bibliotheksabhängigkeiten einschließlich Adafruit GFX zu installieren.
- DallasTemperature installieren: Geben Sie "DallasTemperature" in das Suchfeld ein und suchen Sie die Bibliothek DallasTemperature von Miles Burton.
- 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.
- OneWire installieren: Wenn Sie aufgefordert werden, die Abhängigkeit zu installieren, klicken Sie auf Install All, um die Bibliothek OneWire zu installieren.
- Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie auf die Schaltfläche Upload.
- 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.
- Ergebnis ansehen: Beobachten Sie, wie sich die Temperatur live auf dem OLED-Display aktualisiert.

※ 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.
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:
- Eigenständiges Thermometer: Bauen Sie ein tragbares, batteriebetriebenes Thermometer, das die Temperatur ohne serielle Verbindung auf dem OLED anzeigt.
- Aquarium-Temperaturüberwachung: Tauchen Sie die wasserdichte DS18B20-Sonde ein, um die Wassertemperatur zu verfolgen und bei Abweichungen zu warnen.
- Heimwetterstation: Platzieren Sie Sensoren in mehreren Räumen und protokollieren Sie die Messwerte über WLAN in einem Dashboard oder einer Cloud-Datenbank.
- Lebensmittelsonde: Verwenden Sie die wasserdichte Version des DS18B20, um Koch- oder Gärtemperaturen mit einer klaren OLED-Anzeige zu überwachen.
- Serverraum-Wächter: Überwachen Sie kontinuierlich die Rack-Temperatur und lösen Sie ein Alarmrelais aus, wenn ein sicherer Schwellenwert überschritten wird.
- Gewächshaussteuerung: Lesen Sie Boden- oder Lufttemperatur aus und steuern Sie Lüftungs- oder Heizgeräte automatisch.
- 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:
- Anfänger: Fügen Sie dem OLED eine zweite Zeile hinzu, die unter dem Celsius-Wert die Temperatur in Fahrenheit anzeigt.
- Anfänger: Fügen Sie eine LED-Anzeige hinzu, die als einfache Übertemperaturwarnung leuchtet, wenn die Temperatur über 30 °C steigt.
- 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.
- Fortgeschritten: Protokollieren Sie Temperaturwerte mit Zeitstempel auf einer microSD-Karte, um historische Daten über Stunden oder Tage auszuwerten.
- 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.
- 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.