ESP32 S3 - Temperatursensor - LCD
Dieses Tutorial zeigt Ihnen, wie Sie mit dem ESP32 S3 Temperaturdaten von einem DS18B20-Sensor auslesen und live auf einem LCD-I2C-16x2-Display anzeigen. Durch die Kombination zweier beliebter Peripheriegeräte auf einer einzigen Platine bauen Sie eine eigenständige Temperaturüberwachung, die nach der Programmierung keinen Computer mehr benötigt.
Was Sie bauen werden:
- Eine Schaltung, die den DS18B20-Temperatursensor und das LCD I2C mit dem ESP32 S3 verbindet
- Arduino-Code, der die Temperatur ausliest und in Echtzeit auf das LCD schreibt
- Eine Anzeige, die Celsius- und Fahrenheit-Werte in getrennten Zeilen darstellt
- Eine Grundlage, die Sie zu intelligenten Thermostaten, Datenloggern oder Umweltmonitoren 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: 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 Temperature Sensor and LCD
Der DS18B20-Temperatursensor und das LCD I2C 16x2 gehören zu den beliebtesten Peripheriegeräten für den ESP32 S3. Der DS18B20 kommuniziert über einen Eindraht-1-Wire-Bus und liefert genaue digitale Temperaturwerte, während das LCD I2C nur zwei I2C-Leitungen benötigt, um Zeichen auf einem Bildschirm mit 16 Spalten und 2 Zeilen darzustellen. Zusammen ergeben sie eine eigenständige Temperaturüberwachung, die kompakt und leicht zu verdrahten ist.
Wir haben eigene Tutorials, die jede Komponente einzeln mit ausführlichen Informationen zur Pinbelegung, Schaltplänen und eigenständigen Codebeispielen behandeln. Sehen Sie sie sich vor Beginn dieses Projekts an, falls Sie mit einem der beiden Peripheriegeräte noch nicht vertraut sind:
Wichtige Spezifikationen
Der DS18B20 arbeitet mit 3,0 V bis 5,5 V und ist vollständig kompatibel mit den 3,3-V-GPIO-Pins des ESP32 S3. Er misst Temperaturen von -55°C bis +125°C mit einer Genauigkeit von ±0,5°C zwischen -10°C und +85°C und kommuniziert über eine einzige Datenleitung, die mehrere Sensoren parallel unterstützt. Das LCD I2C 16x2 arbeitet mit 5 V und kommuniziert über die Standard-I2C-Adresse 0x27 oder 0x3F; es bietet eine Anzeige mit 16 Spalten und 2 Zeilen, einstellbaren Kontrast und eine integrierte Hintergrundbeleuchtung für gute Lesbarkeit bei wenig Licht.
Verdrahtungsdiagramm
Schließen Sie den DS18B20-Temperatursensor und das LCD-I2C-Display gemäß den folgenden Schaltplänen an Ihren ESP32 S3 an. Beide Komponenten teilen sich dieselben Versorgungs- und Masseschienen, daher gelingt der Aufbau mit einem Steckbrett unkompliziert. Verwenden Sie ein DS18B20-Adaptermodul mit integriertem Pull-up-Widerstand, um die Verdrahtung zu vereinfachen und einen separaten 4,7-kΩ-Widerstand zu vermeiden.
Sicherheitshinweise
Versorgen Sie den DS18B20 über den 3,3-V-Pin des ESP32 S3 und das LCD I2C über den VBUS-Pin (5V) – vertauschen Sie diese nicht, da 5 V am DS18B20-Datenpin ohne Pegelwandlung Schäden verursachen können. Stellen Sie immer sicher, dass die Masseleitungen beider Komponenten mit demselben GND des ESP32 S3 verbunden sind, um schwebende Bezugspotenziale zu vermeiden. Wenn Sie das nackte TO-92-Gehäuse des DS18B20 ohne Adapter verwenden, lassen Sie niemals den 4,7-kΩ-Pull-up-Widerstand zwischen DATA und VCC weg, da das 1-Wire-Protokoll ihn benötigt.
Schaltplan:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Möchten Sie einen saubereren und sichereren Aufbau? Verwenden Sie in diesem Fall ein Schraubklemmen-Board für ESP32 S3. Der ESP32 S3 wird darauf gesteckt, und jeder Pin bekommt eine Schraubklemme. Die Pins ändern sich nicht. Schließen Sie jedes Kabel einfach an die passende Schraubklemme an:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Eine andere Möglichkeit ist ein GPIO-Breakout-Board für ESP32 S3. Jeder GPIO hat einen Signal-Pin mit einem 3,3V- und einem GND-Pin daneben, wie unten gezeigt:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Anschlüsse des DS18B20-Temperatursensors:
| DS18B20-Pin | ESP32 S3 Pin |
|---|---|
| GND | GND |
| VCC | 3.3V |
| DATA | GPIO1 (oder ein beliebiger digitaler Pin) |
Anschlüsse des LCD I2C:
| LCD-I2C-Pin | ESP32 S3 Pin |
|---|---|
| VCC | VBUS (5V) |
| GND | GND |
| SCL | GPIO9 (I2C-Takt) |
| SDA | GPIO8 (I2C-Daten) |
ESP32-S3-Code
Der folgende Code liest mit der Bibliothek DallasTemperature die Temperatur vom DS18B20-Sensor aus und zeigt Celsius- und Fahrenheit-Werte auf dem LCD-I2C-16x2-Display an, wobei die Anzeige einmal pro Sekunde aktualisiert wird. Er initialisiert den 1-Wire-Bus am konfigurierten Datenpin, fordert beim Sensor eine Umwandlung an und schreibt die formatierten Temperaturtexte anschließend mit der DIYables-LCD-I2C-Bibliothek in die Zeilen des LCD. Die Bibliothek DallasTemperature übernimmt die gesamte 1-Wire-Kommunikation, sodass Ihr Sketch lesbar und leicht änderbar bleibt.
※ 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
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Bibliotheksverwalter öffnen: Klicken Sie auf das Symbol Libraries in der linken Seitenleiste der Arduino IDE.
- DallasTemperature installieren: Geben Sie "DallasTemperature" in das Suchfeld ein, suchen Sie die Bibliothek von Miles Burton und klicken Sie auf Install.
- Search for DallasTemperature created by Miles Burton
, Tim Newsome , Guil Barros , Rob Tillaart and click the Install button.
- Abhängigkeit installieren: Klicken Sie bei der entsprechenden Aufforderung auf Install All, um auch die benötigte Bibliothek OneWire zu installieren.

- DIYables-LCD-I2C-Bibliothek installieren: Geben Sie "DIYables LCD I2C" in das Suchfeld ein, suchen Sie die Bibliothek DIYables_LCD_I2C von DIYables und klicken Sie auf Install.
- Search for DIYables LCD I2C created by DIYables.io and click the Install button.
- Komponenten verdrahten: Folgen Sie dem obigen Schaltplan, um den DS18B20-Sensor und das LCD I2C mit Ihrem ESP32 S3 zu verbinden.
- Platine anschließen: Verbinden Sie den ESP32 S3 über ein USB-Typ-C-Kabel mit Ihrem Computer.
- Platine auswählen: Wählen Sie in der Arduino IDE die ESP32-S3-Platine und den richtigen COM-Port aus.
- Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie auf die Schaltfläche Upload.
- LCD ansehen: Das Display zeigt die aktuelle Temperatur in der oberen Zeile in Celsius und in der unteren Zeile in Fahrenheit an und aktualisiert sich jede Sekunde.
- Sensor testen: Halten Sie die DS18B20-Sonde in der Hand oder legen Sie sie in warmes oder kaltes Wasser, um zu sehen, wie sich die Werte auf dem LCD ändern.
- Profi-Tipp: Wenn das LCD überhaupt nichts anzeigt, stellen Sie das kleine Kontrast-Potentiometer auf der Rückseite des LCD-Moduls ein – oft genügt eine leichte Drehung, um den Text sichtbar zu machen.
Ausgabe im Seriellen Monitor
Sobald Sie den Code hochgeladen und den Seriellen Monitor mit 115200 Baud geöffnet haben, sehen Sie jede Sekunde Temperaturwerte, passend zur Anzeige auf dem LCD. Die folgende Ausgabe zeigt eine typische Sitzung, während sich der Sensor ausgehend von Raumtemperatur erwärmt.
Anwendungen und Projektideen
Die Kombination aus Temperatursensor und LCD-Display mit dem ESP32 S3 eröffnet eine Vielzahl praktischer und lehrreicher Projekte.
- Zimmerthermometer: Zeigen Sie die Innentemperatur auf dem LCD an, damit Sie jederzeit einen schnellen Messwert haben, ohne eine Handy-App zu öffnen.
- Aquarium-Monitor: Platzieren Sie eine wasserdichte DS18B20-Sonde im Aquarium und zeigen Sie die Wassertemperatur auf einem außen montierten LCD an.
- Intelligentes Thermostat: Lesen Sie die Temperatur auf dem LCD ab und lösen Sie ein Relais aus, das je nach Sollwert eine Heizung oder einen Ventilator ein- und ausschaltet.
- Gewächshaussteuerung: Überwachen Sie die Temperatur im Anbaubereich und zeigen Sie auf dem LCD Warnungen an, wenn die Werte den sicheren Bereich für Ihre Pflanzen verlassen.
- Serverraum-Monitor: Montieren Sie Sensor und Display in einem Rack, um die Umgebungstemperatur auf einen Blick zu sehen, ohne ein Netzwerk-Dashboard aufzurufen.
- Lebensmittellager-Überwachung: Behalten Sie Kühlschrank- oder Gefrierschranktemperaturen mit einer gut sichtbaren LCD-Anzeige und einem akustischen Summeralarm bei unsicheren Werten im Blick.
Video-Tutorial
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32-S3-Projekt an.
Fordern Sie sich selbst heraus
Sobald Temperatursensor und LCD zusammen funktionieren, bringen Sie diese Aufgaben mit zunehmend komplexeren Anforderungen in Ihren ESP32-S3-Kenntnissen weiter.
- Anfänger: Fügen Sie einen zweiten DS18B20-Sensor hinzu und zeigen Sie beide Werte gleichzeitig an – einen in jeder Zeile des LCD.
- Anfänger: Zeigen Sie auf dem LCD eine Warnmeldung an, wenn die Temperatur über einen im Code festgelegten Schwellenwert steigt.
- Fortgeschritten: Fügen Sie einen Taster hinzu, der die LCD-Anzeige beim Drücken zwischen den Modi „nur Celsius“ und „nur Fahrenheit“ umschaltet.
- Fortgeschritten: Protokollieren Sie jede Minute Temperaturwerte mit Zeitstempel im Seriellen Monitor, während das LCD jede Sekunde einen Live-Wert anzeigt.
- Experte: Bauen Sie auf dem ESP32 S3 einen Webserver, der ein Echtzeit-Temperaturdiagramm bereitstellt, das von jedem Browser in Ihrem lokalen Netzwerk erreichbar ist, während das LCD den aktuellen Wert vor Ort anzeigt.
- Experte: Fügen Sie ein RTC-Modul hinzu, damit das LCD sowohl die aktuelle Uhrzeit als auch die Temperatur anzeigt, und protokollieren Sie die Daten mit Zeitstempel auf einer SD-Karte zur Langzeitanalyse.