SYSTEM
π¦οΈ TTN Wetterstation β ESP32 & 7,5″ E-Paper
Eine zentrale Wetter- und Statusanzeige auf Basis eines ESP32, die Messwerte mehrerer LoRaWAN-Sensoren ΓΌber The Things Network (TTN) empfΓ€ngt und auf einem 7,5″-E-Paper-Display darstellt.
ZusΓ€tzlich wird ΓΌber die OpenWeatherMap API eine 3-Tage-Wettervorhersage abgerufen und auf dem Display angezeigt.
π· Projekt

Die Wetterstation verbindet LoRaWAN, The Things Network, MQTT, WLAN und ein groΓes E-Paper-Display zu einer zentralen Informationsanzeige.
ποΈ Systemarchitektur
LoRaWAN 868 MHz
β
βββββββββββββ΄ββββββββββββ
β β
ββββββββΌβββββββ ββββββββΌβββββββ
β Sensor β β Sensor β
β 15-01 β β 15-02 β
β β β β
β Temperatur β β Temperatur β
β Feuchte β β Distanz β
β AuΓen β β β
ββββββββ¬βββββββ ββββββββ¬βββββββ
β β
βββββββββββββ¬ββββββββββββ
β
βΌ
βββββββββββββββββββ
β LoRaWAN Gateway β
β β
β 868 MHz β
ββββββββββ¬βββββββββ
β
Internet
β
βΌ
βββββββββββββββββββ
β TTN β
β β
β The Things β
β Network β
ββββββββββ¬βββββββββ
β
MQTT / TLS
Port 8883
β
βΌ
βββββββββββββββββββ
β ESP32 β
β β
β MQTT Client β
β JSON Verarbeitungβ
β Datenaufbereitungβ
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β 7,5" E-Paper β
β β
β Wetterdaten β
β Status β
β Forecast β
βββββββββββββββββββ
βοΈ Wettervorhersage
Die Wettervorhersage verwendet einen separaten Datenweg:
ββββββββββββββββ
β ESP32 β
ββββββββ¬ββββββββ
β
β HTTP
βΌ
ββββββββββββββββββββ
β OpenWeatherMap β
β β
β Halle / Wetter β
ββββββββββ¬ββββββββββ
β
β JSON
βΌ
ββββββββββββββββββββ
β ESP32 β
β β
β Auswertung β
β + Wettersymbole β
ββββββββββ¬ββββββββββ
β
βΌ
E-Paper Display
Die Wettervorhersage wird alle 30 Minuten aktualisiert.
π‘ LoRaWAN-Sensoren
Sensor 15-01
Der Sensor 15-01 ΓΌbertrΓ€gt:
| Daten | Bedeutung |
|---|---|
TempC_SHT | Temperatur |
Hum_SHT | Luftfeuchtigkeit |
TempC_DS | AuΓentemperatur |
Die Werte werden im ESP32 folgenden Variablen zugeordnet:
TempC_SHT β temp_raum1
Hum_SHT β hum_raum1
TempC_DS β temp_aussen
Sensor 15-02
Der Sensor 15-02 ΓΌbertrΓ€gt:
| Daten | Bedeutung |
|---|---|
temperature | Temperatur |
distance_m | Distanz |
Die Temperatur wird im ESP32 um 4 Β°C korrigiert.
temperature
β
βΌ
- 4 Β°C
β
βΌ
temp_raum2
Die Distanz wird zusΓ€tzlich zur Ermittlung des Status verwendet.
π‘ DatenΓΌbertragung
Die Sensoren ΓΌbertragen ihre Daten per LoRaWAN an das Gateway.
Sensor
β
β LoRaWAN
βΌ
Gateway
β
β Internet
βΌ
TTN
β
β MQTT
βΌ
ESP32
Der ESP32 verwendet die TTN-MQTT-Schnittstelle:
MQTT Server:
eu1.cloud.thethings.network
Port:
8883
Die Kommunikation erfolgt ΓΌber MQTT/TLS.
π¬ MQTT
Der ESP32 abonniert das Topic:
v3/015@ttn/devices/+/up
Das + ist ein MQTT-Wildcard.
Dadurch kΓΆnnen Uplink-Nachrichten mehrerer GerΓ€te empfangen werden.
π¦ TTN JSON-Daten
Die eingehenden MQTT-Nachrichten werden mit ArduinoJson verarbeitet.
Der relevante Bereich der TTN-Nachricht ist:
uplink_message
βββ decoded_payload
Die Device-ID wird aus
end_device_ids
βββ device_id
ausgelesen.
Damit entscheidet der ESP32, welchem Sensor die empfangenen Daten zugeordnet werden.
π Datenverarbeitung im ESP32
Der Ablauf einer eingehenden Nachricht:
MQTT Nachricht
β
βΌ
callback()
β
βΌ
JSON dekodieren
β
βΌ
Device-ID ermitteln
β
βββββββββββββββββ
β β
15-01 15-02
β β
βΌ βΌ
Temperatur Temperatur
Feuchte Distanz
AuΓen -4 Β°C
β β
βββββββββ¬ββββββββ
β
βΌ
updateNeeded = true
β
βΌ
Display aktualisieren
π₯οΈ Display
Das Projekt verwendet ein 7,5″-E-Paper-Display.
Die Anzeige ist in zwei Bereiche aufgeteilt.
Linker Bereich β Sensordaten
βββββββββββββββββββββββββββββββββββ
β TTN WETTERSTATION β
βββββββββββββββββββββββββββββββββββ
β β
β Aussen : xx.x C β
β β
β Schlafzimmer : xx.x C β
β β
β Innen : xx.x C β
β β
β Feuchte : xx % β
β β
β Distanz : x.xx m β
β β
β Letzter Upload 15-01 : xx:xx:xx β
β Letzter Upload 15-02 : xx:xx:xx β
β β
β STATUS : FREI β
β β
β WLAN OK MQTT OK β
βββββββββββββββββββββββββββββββββββ
π¦ Statusanzeige
Der Distanzwert des Sensors 15-02 wird fΓΌr eine Belegt-/Frei-Anzeige verwendet.
Die Schaltschwelle betrΓ€gt:
1,3 m
Logik:
distance < 1,3 m
β
βββ JA β BESETZT
β
βββ NEIN β FREI
Damit kann beispielsweise ein Stellplatz, Bereich oder Abstand ΓΌberwacht werden.
π€οΈ 3-Tage-Wettervorhersage
Auf der rechten Seite des Displays werden drei Tage dargestellt.
FΓΌr jeden Tag werden angezeigt:
- Datum
- minimale Temperatur
- maximale Temperatur
- Wetterbeschreibung
- Wettersymbol
Die Wettercodes werden in eigene Symbole umgesetzt:
| OpenWeatherMap Code | Anzeige |
|---|---|
01 | β Sonne |
02 | β teilweise bewΓΆlkt |
03, 04 | β Wolken |
09, 10 | π§ Regen |
11 | β Gewitter |
13 | β Schnee |
π Programmablauf
Nach dem Einschalten:
START
β
βΌ
Serial 115200
β
βΌ
E-Paper initialisieren
β
βΌ
Display lΓΆschen
β
βΌ
Display-Speicher reservieren
β
βΌ
WLAN verbinden
β
βΌ
MQTT konfigurieren
β
βΌ
Forecast abrufen
β
βΌ
Display anzeigen
β
βΌ
Hauptschleife
π Hauptschleife
Der ESP32 prΓΌft kontinuierlich:
- Ist MQTT verbunden?
- Sind neue Sensordaten eingetroffen?
- Muss das Display aktualisiert werden?
- Sind 30 Minuten seit dem letzten Forecast vergangen?
ββββββββββββββββ
β LOOP β
ββββββββ¬ββββββββ
β
βΌ
MQTT verbunden?
/ \
NEIN JA
β β
βΌ βΌ
reconnect client.loop()
β
βΌ
updateNeeded?
/ \
NEIN JA
β β
β βΌ
β Display
β Update
β
ββββββββ¬ββββ
β
βΌ
30 Minuten vorbei?
/ \
NEIN JA
β β
β βΌ
β Forecast
β abrufen
β
ββββββββ¬ββββ
β
βΌ
LOOP
π§° Verwendete Software
Arduino Libraries
WiFi.h
WiFiClientSecure.h
PubSubClient.h
ArduinoJson.h
HTTPClient.h
time.h
ZusΓ€tzlich werden die Bibliotheken fΓΌr das verwendete E-Paper-Display verwendet:
DEV_Config
EPD
GUI_Paint
fonts
π§ Hardware
Die genaue Hardwarekonfiguration kann projektspezifisch ergΓ€nzt werden.
Grundkomponenten:
- ESP32
- 7,5″-E-Paper-Display
- LoRaWAN-Sensor 15-01
- LoRaWAN-Sensor 15-02
- LoRaWAN-Gateway
- WLAN
- Netzwerk-/Internetverbindung
π Installation
1. Repository herunterladen
Projekt in die Arduino-IDE bzw. Entwicklungsumgebung ΓΌbernehmen.
2. Bibliotheken installieren
BenΓΆtigte Arduino-Bibliotheken installieren:
- PubSubClient
- ArduinoJson
- WiFi
- HTTPClient
sowie die zum E-Paper-Display gehΓΆrenden Bibliotheken.
3. ESP32 flashen
Das Programm auf den ESP32 ΓΌbertragen.
4. Betrieb
Nach dem Start:
ESP32
β
βββ WLAN verbinden
β
βββ TTN MQTT verbinden
β
βββ Forecast abrufen
β
βββ Display initialisieren
Danach lΓ€uft die Station autonom.
π Technische Eckdaten
| Parameter | Wert |
|---|---|
| Controller | ESP32 |
| Funknetz Sensoren | LoRaWAN |
| Frequenz | 868 MHz |
| Netzwerk | The Things Network |
| MQTT | MQTT/TLS |
| MQTT-Port | 8883 |
| Sensoren | 15-01 / 15-02 |
| Display | 7,5″ E-Paper |
| Wetterdienst | OpenWeatherMap |
| Forecast | 3 Tage |
| Forecast-Update | 30 Minuten |
| Belegt-Schwelle | 1,3 m |
| Serial Monitor | 115200 Baud |
π― Projektziel
Das Projekt zeigt, wie sich ein LoRaWAN-Sensornetz mit TTN und einer lokalen ESP32-Anzeige kombinieren lΓ€sst.
Die Architektur trennt dabei klar die einzelnen Ebenen:
ββββββββββββββββββββββββββββββββ
β SENSOR-EBENE β
β LoRaWAN-Sensoren β
βββββββββββββββββ¬βββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββ
β NETZWERK-EBENE β
β Gateway + LoRaWAN + TTN β
βββββββββββββββββ¬βββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββ
β DATEN-EBENE β
β MQTT + JSON β
βββββββββββββββββ¬βββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββ
β ANWENDUNG β
β ESP32 β
βββββββββββββββββ¬βββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββ
β VISUALISIERUNG β
β 7,5" E-Paper β
ββββββββββββββββββββββββββββββββ
github
| Quellcode | Wetterstation.ino |
| Dateien | readme.md |
| Repository | https://github.com/joachim-reuter/TTN-Wetterstationrrrr |