Getting Started
Diese Anleitung führt dich durch den kompletten Aufbau des E-Paper Weather Displays.
Einleitung
Dieses Wetter-Display setzt auf eine bewusst einfache und minimalistische Schaltung. Dadurch gibt es keinen Verpolungs- oder Überspannungsschutz, was etwas Sorgfalt beim Aufbau erfordert, den Aufbau aber sehr kompakt hält.
Die gezeigte Kombination aus E-Paper Display und Lolin32 (ESP32) eignet sich nicht nur für ein Wetter-Display, sondern kann leicht als Grundlage für viele andere stromsparende Anzeige-Projekte verwendet werden.
Voraussetzungen
Hardware
| Komponente | Link |
|---|---|
| Lolin32 ESP32 Board | Amazon |
| Waveshare 7.5" E-Paper HAT V2 | Amazon |
| 18650 Batterie-Holder | Amazon |
| IKEA RÖDALM Rahmen 13×18 cm | IKEA |
| JST-PH 2.0mm Kabel* | Amazon |
| M3 Schrauben Set* | Amazon |
Hinweis: *Diese Komponenten entsprechen nicht den exakt verwendeten Bauteilen im Projekt, da ich vorhandene Kabel und Schrauben verwendet habe. Die verlinkten Produkte sind ähnliche Alternativen.
Software
- Arduino IDE
- USB-Kabel für ESP32
- OpenWeatherMap API Key (kostenlos)
Installation
1. Arduino IDE einrichten
ESP32 Board Support installieren
Bibliotheken installieren
Über den Bibliotheksverwalter (Werkzeuge → Bibliotheken verwalten) installieren:
- GxEPD2 (von Jean-Marc Zingg)
- ArduinoJson (Version 7.x)
Die folgenden Bibliotheken sind bereits im ESP32 Board Package enthalten:
- WiFi
- HTTPClient
- Time
2. OpenWeatherMap API Key erhalten
- Auf openweathermap.org registrieren
- Im Account-Bereich → API Keys
- Neuen API Key erstellen (kostenlos für 1000 Anfragen/Tag)
- API Key kopieren (wird später benötigt)
3. Projekt herunterladen
4. Konfiguration erstellen
-
Im Ordner
weather-station/die Dateiconfig.sample.hkopieren oder zuconfig.humbenennen: -
config.hmit einem Texteditor öffnen und anpassen:
// WiFi Zugangsdaten
const char* WIFI_SSID = "Dein_WiFi_Name";
const char* WIFI_PASSWORD = "Dein_WiFi_Passwort";
// OpenWeatherMap API
const char* OWM_API_KEY = "dein_api_key_hier";
const char* OWM_CITY = "Berlin";
const char* OWM_COUNTRY_CODE = "DE";
// Weckzeiten anpassen (optional)
const WakeTime WAKE_SCHEDULE[] = {
{6, 0}, // 6:00 Uhr
{12, 0}, // 12:00 Uhr
{18, 0}, // 18:00 Uhr
{22, 0} // 22:00 Uhr
};
Weitere Informationen zu den Einstellungen findest duhier
Die Datei
config.henthält deine privaten Zugangsdaten. Niemals ins Repository committen oder mit anderen teilen!
5. Upload auf ESP32
- ESP32 via USB verbinden
- Arduino IDE öffnen →
weather-station.ino -
Board einstellen:
Werkzeuge→Board→ESP32 Arduino→ESP32 Dev ModuleWerkzeuge→Port→ Richtigen Port auswählenWerkzeuge→Upload Speed→115200
-
Hochladen:
- Upload-Button klicken (→)
- Warten bis "Connecting..." erscheint
- Falls nötig: BOOT-Taste am ESP32 drücken
-
Serielle Konsole öffnen (
Werkzeuge→Serieller Monitor, 115200 baud):======================================== Weather Display aufgewacht! WiFi verbunden! IP: 192.168.1.123 NTP Zeit wird synchronisiert... Zeit synchronisiert! Hole aktuelle Wetterdaten... Aktuelle Wetterdaten aktualisiert Temperatur: 2.0°C Hole Vorhersage... Vorhersage aktualisiert _PowerOn : 133001 _Update_Full : 3655001 _PowerOff : 40001 Display aktualisiert Aktuelle Zeit: 22:33 Naechste Weckzeit morgen: 05:30 Sleep-Dauer: 417 Minuten (25020 Sekunden) ======================================== Gehe in Deep Sleep... ========================================
6. Hardware verbinden

Tipp: vor dem ersten Zusammenbau und Verlöten, dass Display und die Schaltung auf einem Breadboard aufbauen und testen.
Fehlerbehebung
Display bleibt weiß
- Verkabelung überprüfen (besonders BUSY-Pin)
- PWR und VCC mussen auf 3.3V und GND verbunden sein
- Display-Reset durchführen (ESP32 neu starten)
- In der Konsole auf Fehlermeldungen achten
WiFi verbindet nicht
- SSID und Passwort in
config.hüberprüfen - 2.4 GHz WiFi verwenden (ESP32 unterstützt kein 5 GHz)
- Router-Einstellungen prüfen (SSID sichtbar, MAC-Filter)
Keine Wetterdaten
- API Key überprüfen
- Stadt und Ländercode korrekt? (z.B. "Berlin", "DE")
- OpenWeatherMap API-Limit überprüft? (1000 Anfragen/Tag im Free-Plan)
- Internetverbindung testen
- Teste deine Anfrage manuell im Browser:
- Template
http://api.openweathermap.org/data/2.5/weather?q=[CITY],[LÄNDER_KÜRZEL]&appid=[API_KEY]&units=metric&lang=de - Beispiel:
http://api.openweathermap.org/data/2.5/weather?q=Berlin,DE&appid=dein_api_key_hier&units=metric&lang=de
Display aktualisiert nicht automatisch
- Deep Sleep funktioniert nur mit funktionierender Zeit-Synchronisation
- NTP-Server erreichbar?
- Zeitzonen-String korrekt für deine Region?