Wetterdaten von Openweather mit der API 3.0 auf einem TFT anzeigen

Lesezeit: 8 Minuten

Seite als PDF

Ziel des Projekts

Mit der API (Appli­ca­tion Pro­gram­ming Inter­face = Pro­gram­mier­schnittstelle) von Openweathermap.org und den damit erhobe­nen Dat­en sollen die Wet­ter­dat­en auf einem TFT-Dis­play und in etwas aus­führlicher­er Form im Seriellen Mon­i­tor angezeigt wer­den.

Darstellung der Daten

TFT-Displays

Pin­bele­gung ver­schieden­er TFT-Dis­plays

Serieller Monitor

Vorbereitung

Zunächst benötigst du einen API-Schlüs­sel von Openweathermap.org:

🔗 https://openweathermap.org/api

Um den Zugang zu nutzen, musst du deine Zahlungs­dat­en hin­ter­legen.

Der API-Schlüs­sel erlaubt 1000 Zugriffe am Tag. Das entspricht einem Zugriff alle 86,4 Sekun­den.
Quelle: 🔗https://openweathermap.org/price#weather

Um sicherzuge­hen kannst du die Anzahl der Zugriffe beschränken:
Quelle: 🔗 https://home.openweathermap.org/subscriptions

Du kannst die Anzahl der Zugriffe fest­stellen:

Quelle: 🔗 https://home.openweathermap.org/statistics/onecall_30

Benötigte Bauteile

  • ESP32-Mikro­con­troller/E­SP8266-Mikro­con­troller
  • TFT
  • Leitungs­drähte

Lei­der wer­den viele Namen für den ⇒SPI-Bus ver­wen­det.

Pinbelegung der Mikrocontroller

ESP32-Wroom

Nano ESP32

Wemos D1

XIAO-ESP32-C3

Board installieren

Benötigte Bibliotheken

Erläuterung zu JSON

JSON (JavaScript Object Nota­tion) dient dem Aus­tausch von Dat­en zwis­chen einem Serv­er und ein­er Weban­wen­dung. JSON-Dat­en sind eine Samm­lung von Schlüs­sel-Wert-Paaren. Die Bib­lio­thek fil­tert aus den Roh­dat­en diese Schlüs­sel-Wert-Paare her­aus.

Die Dat­en für dt (day­time), sun­rise und sun­set wer­den im Unix­for­mat angegeben (Anzahl der Sekun­den seit 1.1.1970 0 Uhr UTC). Zu UTC müssen 3600 bzw. 7200 Sekun­den addiert wer­den (MEZ -> eine Stunde voraus, MESZ -> zwei Stun­den voraus).

Beispiel JSON-Werte beim Aufruf für Ber­gisch Glad­bach, Schlüs­sel und Wert wer­den in eck­ige Klam­mern eingeschlossen.

Abruf der Daten von openweathermap.org

Vorbereitung

Du benötigst die Geoko­or­di­nat­en (Län­gen­grad = lon, Bre­it­en­grad = lat) des gewün­scht­en Orts. Am ein­fach­sten geht das mit 🔗 Open­weath­ermap selb­st.

Aufruf der API

  • lat, lon -> Bre­it­en­grad, Län­gen­grad
  • APPID -> deine APPID
  • units=metric -> metrische Maßangaben, die Tem­per­atur wird als Stan­dard in Kelvin angezeigt
  • exclude=daily,hourly,minutely,alerts -> keine Dat­en der Wet­ter­vorher­sage, keine Warn­mel­dun­gen anzeigen
  • lang=de -> Aus­gabe der Beschrei­bun­gen auf deutsch

Manch­mal wer­den mehrere Ver­suche benötigt um die Zeit zu syn­chro­nisieren und den Open­weath­er-Serv­er zu erre­ichen.

Im Web­brows­er kön­nen noch weit­ere Dat­en abgerufen wer­den:

Wet­ter für his­torische Dat­en (seit 2.1.1979)

Wet­terüberblick als Text (in Englisch)

Das Programm für TFT 160x128

Einbinden der Bibliotheken und Definition der Variablen

Der einzige Unter­schied zwis­chen den Mikro­con­trollern ist die Zuord­nung der SPI-Pins (im Beispiel ESP32-WROOM).
Die benötigten WiFi-Bib­lio­theken wer­den entsprechend (ESP32 oder ESP8266) aus­gewählt.

setup-Teil

Funktion ServerAntwortHolen()

Im loop-Teil wird die Funk­tion Server­Ant­wort­holen() aufgerufen. Sie holt die Wet­ter­dat­en als String, der im loop-Teil in Schlüs­sel-Wert-Paare umge­wan­delt wird.

loop-Teil


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Verwandte Anleitungen:


Letzte Aktualisierung: Nov. 13, 2025 @ 12:31