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:

  1. Eine Schaltung, die den DS18B20-Temperatursensor und das LCD I2C mit dem ESP32 S3 verbindet
  2. Arduino-Code, der die Temperatur ausliest und in Echtzeit auf das LCD schreibt
  3. Eine Anzeige, die Celsius- und Fahrenheit-Werte in getrennten Zeilen darstellt
  4. Eine Grundlage, die Sie zu intelligenten Thermostaten, Datenloggern oder Umweltmonitoren erweitern können
ESP32 S3 - Temperatursensor - LCD

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×DS18B20 Temperatursensor (mit Adapter)
1×DS18B20 Temperatursensor (ohne Adapter)
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: 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:

ESP32 S3 Temperatursensor LCD 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:

ESP32 S3 Temperatursensor LCD Schaltplan (Screw Terminal)

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:

ESP32 S3 Temperatursensor LCD Schaltplan (GPIO Breakout Board)

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.

/* * 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-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-temperature-sensor-lcd */ #include <OneWire.h> #include <DallasTemperature.h> #include <DIYables_LCD_I2C.h> #define SENSOR_PIN 1 // ESP32-S3 pin GPIO1 connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows float tempC; // temperature in Celsius float tempF; // temperature in Fahrenheit void setup() { DS18B20.begin(); // initialize the sensor lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures tempC = DS18B20.getTempCByIndex(0); // read temperature in Celsius tempF = tempC * 9 / 5 + 32; // convert Celsius to Fahrenheit lcd.clear(); lcd.setCursor(0, 0); // display position lcd.print(tempC); // display the temperature in Celsius lcd.print((char)223); // display ° character lcd.print("C"); lcd.setCursor(0, 1); // display position lcd.print(tempF); // display the temperature in Fahrenheit lcd.print((char)223); // display ° character lcd.print("F"); 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. Bibliotheksverwalter öffnen: Klicken Sie auf das Symbol Libraries in der linken Seitenleiste der Arduino IDE.
  3. 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.
∞
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. Abhängigkeit installieren: Klicken Sie bei der entsprechenden Aufforderung auf Install All, um auch die benötigte Bibliothek OneWire zu installieren.
ESP32 S3 OneWire-Bibliothek
  1. 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.
∞
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. Komponenten verdrahten: Folgen Sie dem obigen Schaltplan, um den DS18B20-Sensor und das LCD I2C mit Ihrem ESP32 S3 zu verbinden.
  2. Platine anschließen: Verbinden Sie den ESP32 S3 über ein USB-Typ-C-Kabel mit Ihrem Computer.
  3. Platine auswählen: Wählen Sie in der Arduino IDE die ESP32-S3-Platine und den richtigen COM-Port aus.
  4. Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie auf die Schaltfläche Upload.
  5. 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.
  6. 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.
  7. 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.

∞
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-03-10 14:22:01] Temperature: 23.12°C / 73.62°F [2026-03-10 14:22:02] Temperature: 23.18°C / 73.72°F [2026-03-10 14:22:03] Temperature: 23.31°C / 73.96°F [2026-03-10 14:22:04] Temperature: 23.44°C / 74.19°F
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungen und Projektideen

Die Kombination aus Temperatursensor und LCD-Display mit dem ESP32 S3 eröffnet eine Vielzahl praktischer und lehrreicher Projekte.

  1. Zimmerthermometer: Zeigen Sie die Innentemperatur auf dem LCD an, damit Sie jederzeit einen schnellen Messwert haben, ohne eine Handy-App zu öffnen.
  2. Aquarium-Monitor: Platzieren Sie eine wasserdichte DS18B20-Sonde im Aquarium und zeigen Sie die Wassertemperatur auf einem außen montierten LCD an.
  3. 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.
  4. 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.
  5. Serverraum-Monitor: Montieren Sie Sensor und Display in einem Rack, um die Umgebungstemperatur auf einen Blick zu sehen, ohne ein Netzwerk-Dashboard aufzurufen.
  6. 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.

  1. Anfänger: Fügen Sie einen zweiten DS18B20-Sensor hinzu und zeigen Sie beide Werte gleichzeitig an – einen in jeder Zeile des LCD.
  2. Anfänger: Zeigen Sie auf dem LCD eine Warnmeldung an, wenn die Temperatur über einen im Code festgelegten Schwellenwert steigt.
  3. Fortgeschritten: Fügen Sie einen Taster hinzu, der die LCD-Anzeige beim Drücken zwischen den Modi „nur Celsius“ und „nur Fahrenheit“ umschaltet.
  4. Fortgeschritten: Protokollieren Sie jede Minute Temperaturwerte mit Zeitstempel im Seriellen Monitor, während das LCD jede Sekunde einen Live-Wert anzeigt.
  5. 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.
  6. 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.

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