🌡️ DS18B20 Temperatursensor mit TFT-Display, Web-Interface und CraftBeerPi4-Integration.
- Temperaturanzeige: DS18B20 Sensor mit TFT-Display
- CraftBeerPi4-Integration: Sendet Daten per WiFi an HTTPSensor
- Web-Konfiguration: Alle Einstellungen über Browser änderbar
- Power-Save-Modus: Messintervalle 1-120 Min für längere Akkulaufzeit
- NTP-Zeitstempel: Echte Zeitangaben statt Uptime
- Persistente Konfiguration: Einstellungen bleiben nach Neustart erhalten
- Min/Max-Tracking: Mit Reset-Button
- mDNS: Erreichbar unter http://thermometer.local
| Komponente | Details |
|---|---|
| Board | LILYGO T-Display S3 (ESP32-S3 + ST7789 1.9" 170x320 IPS) |
| Sensor | DS18B20 Temperatursensor (wasserdicht oder TO-92) |
| Widerstand | 4.7 kΩ Pull-Up (zwischen DATA und VCC) |
DS18B20 T-Display S3
───────── ──────────────
VCC (rot) ──→ 3V (Pin oben rechts)
GND (schwarz)──→ GND
DATA (gelb) ──→ GPIO21
┌──── 4.7 kΩ ────┐
│ │
DATA (GPIO21) 3V
┌─────────────────────────┐
3V ──┤ 3V GND ├── GND
│ GND │
GPIO01 ┤ 1 43 ├ GPIO43
GPIO02 ┤ 2 44 ├ GPIO44
GPIO03 ┤ 3 18 ├ GPIO18
GPIO10 ┤ 10 17 ├ GPIO17
GPIO11 ┤ 11 ┌──────┐ 21 ├ GPIO21 ← DS18B20 DATA
GPIO12 ┤ 12 │ TFT │ │
GPIO13 ┤ 13 │170x │ NC │
NC ┤ │320 │ NC │
NC ┤ │ │ GND ├── GND
GND ──┤ GND └──────┘ GND ├── GND
5V ──┤ 5V 3V ├── 3V
│ │
Boot○ │ [IO14] USB-C [Boot]│ ○IO14
└─────────────────────────┘
Wichtig: Der 4.7 kΩ Widerstand zwischen DATA (GPIO21) und 3V ist zwingend erforderlich für eine stabile Kommunikation mit dem DS18B20!
┌───┐
│ │
1 2 3
│ │ │
GND DATA VCC
Wichtig: WLAN-Credentials werden NICHT ins Repository übertragen!
# Kopiere die Beispiel-Datei
cp ESP32_Thermometer/credentials.h.example ESP32_Thermometer/credentials.h
# Bearbeite credentials.h und trage deine WLAN-Daten einIn ESP32_Thermometer/credentials.h:
const char* ssid = "DEIN_WLAN_NAME";
const char* password = "DEIN_WLAN_PASSWORT";Im Web-Interface des ESP32:
- CraftBeerPi Host:
192.168.x.x(IP deines Raspberry Pi) - CraftBeerPi Port:
8000 - Sensor Key:
ds18b20(muss mit CraftBeerPi übereinstimmen) - CraftBeerPi aktiviert: ✓
In CraftBeerPi4:
- Hardware → Sensoren → "+" (Neuer Sensor)
- Name:
ESP32 - Typ:
HTTPSensor - Key:
ds18b20(muss übereinstimmen!) - Timeout: Empfohlen 360s bei 5-Min-Intervall
- Messintervall: 1-120 Minuten wählbar
- Display Auto-Off: Nach 30s Inaktivität
- WiFi Light Sleep: Automatisch zwischen Messungen
Geschätzte Akkulaufzeit (1800mAh LiPo):
- Normal (1 Min): 10-15h
- 15 Min: 3-5 Tage
- 60 Min: 1-2 Wochen
Installation Arduino CLI:
# Windows (mit Chocolatey)
choco install arduino-cli
# Oder manuell von: https://arduino.github.io/arduino-cli/latest/installation/ESP32 Support installieren:
# ESP32 Board Support hinzufügen
arduino-cli config init
arduino-cli config add board_manager.additional_urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
arduino-cli core update-index
arduino-cli core install esp32:esp32
# Bibliotheken installieren
arduino-cli lib install "OneWire"
arduino-cli lib install "DallasTemperature"
arduino-cli lib install "TFT_eSPI"TFT_eSPI Konfiguration:
Die TFT_eSPI Bibliothek muss für das T-Display S3 konfiguriert werden. Die Konfiguration ist bereits im Code eingebaut (siehe .ino Datei), alternativ kann User_Setup.h in der Bibliothek angepasst werden.
Kompilieren & Flashen:
# Board auswählen (FQBN für ESP32-S3)
arduino-cli compile --fqbn esp32:esp32:esp32s3 ESP32_Thermometer/
# Auf Board flashen (COM-Port anpassen!)
arduino-cli upload -p COM5 --fqbn esp32:esp32:esp32s3 ESP32_Thermometer/
# Serial Monitor (115200 Baud)
arduino-cli monitor -p COM5 -c baudrate=115200# Verwendet build_and_flash.ps1
.\build_and_flash.ps1- Sketch → Upload (Strg+U)
- Werkzeuge → Board → ESP32 Arduino → "ESP32S3 Dev Module"
- USB CDC On Boot: Enabled
- Große Temperaturanzeige mit farblicher Kodierung (blau → grün → rot)
- Min/Max Werte
- IP-Adresse am unteren Rand
- IO14-Button: Min/Max zurücksetzen
- Boot-Button (GPIO0): Display-Helligkeit umschalten (4 Stufen)
- Erreichbar unter
http://<IP-Adresse>oderhttp://thermometer.local - Responsive Design für Smartphone
- Live-Aktualisierung alle 5 Sekunden
- Temperaturverlauf-Graph (letzte 5 Minuten)
- Min/Max Reset-Button
| Endpunkt | Beschreibung |
|---|---|
GET / |
Webseite mit Live-Daten |
GET /config |
Web-Konfigurationsseite |
GET /api/data |
JSON mit Temperatur, Min, Max, Uptime, RSSI |
GET /api/reset |
Min/Max Werte zurücksetzen |
GET /api/config |
Aktuelle Konfiguration als JSON |
POST /save-config |
Konfiguration speichern (JSON) |
| Problem | Lösung |
|---|---|
| Sensor nicht gefunden | 4.7kΩ Pull-Up prüfen, Verkabelung kontrollieren |
| Display bleibt schwarz | LCD_Power_On (GPIO15) prüfen, Board-Typ in platformio.ini prüfen |
| WiFi verbindet nicht | SSID/Passwort prüfen, 2.4 GHz Netz verwenden |
| Falsche Temperatur (-127°C) | Kurzschluss/Wackelkontakt am Sensor |
| CraftBeerPi empfängt keine Daten | Key prüfen, Timeout erhöhen, Firewall prüfen |
MIT License
Pull Requests sind willkommen! Für größere Änderungen bitte zuerst ein Issue öffnen.
Erstellt: 2026 | Status: ✅ Produktiv im Einsatz