Wetterdaten von Openweather mit der API 4.0 auf einem TFT anzeigen




Ziel des Projekts

Mit der API (Appli­ca­ti­on Pro­gramming Inter­face = Pro­gram­mier­schnitt­stel­le) von Openweathermap.org und den damit erho­be­nen Daten sol­len die Wet­ter­da­ten auf einem TFT-Dis­play mit 320×240 Pixeln und einem ESP32 2,8 Zoll TFT (CYD) ange­zeigt wer­den. Die Schrift­ar­ten wer­den von der Biblio­thel u8g2 zur Ver­fü­gung gestellt.

Darstellung der Daten

TFT 320×240 Pixel
ESP32 2,8 Zoll TFT (CYD) 320×240 Pixel
ESP32 2,8 Zoll TFT (CYD) 320×240 Pixel Kurz­ver­si­on

Vorbereitung

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

https://openweathermap.org/api/one-call-4?collection=one_call_api#concept

Ach­tung
Um den Zugang zu nut­zen, musst du dei­ne Zah­lungs­da­ten hin­ter­le­gen.

Der API-Schlüs­sel erlaubt 1000 kos­ten­lo­se Zugrif­fe am Tag. Das ent­spricht einem Zugriff alle 86,4 Sekun­den.
Quel­le: ⤷https://openweathermap.org/full-price

Um sicher­zu­ge­hen kannst du die Anzahl der Zugrif­fe beschrän­ken:
Quel­le: ⤷ https://home.openweathermap.org/subscriptions

Du kannst die Anzahl der Zugrif­fe fest­stel­len:

Quel­le: ⤷ https://home.openweathermap.org/statistics/onecall_40

Benötigte Bauteile

  • ESP32-Mikro­con­trol­ler/E­SP8266-Mikro­con­trol­ler
  • TFT
  • Lei­tungs­dräh­te

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

Pinbelegung der Mikrocontroller (Beispiele)

ESP32-Wroom

Nano ESP32

Wemos D1

XIAO-ESP32-C3

Board installieren

Benötigte Bibliotheken

Bibliothek TimeLib
Schrif­ten der Biblio­thek u8g2
TFT 320×240 Pixel/ESP32 CYD 320×240 Pixel
ESP32 CYD 320×240 Pixel Adafruit ST7789

Erläuterung zu JSON

JSON (Java­Script Object Nota­ti­on) dient dem Aus­tausch von Daten zwi­schen einem Ser­ver und einer Web­an­wen­dung. JSON-Daten sind eine Samm­lung von Schlüs­sel-Wert-Paa­ren. Die Biblio­thek fil­tert aus den Roh­da­ten die­se Schlüs­sel-Wert-Paa­re her­aus.

Die Daten für dt, sun­ri­se und sun­set wer­den im Unix­for­mat ange­ge­ben (Anzahl der Sekun­den seit 1.1.1970 0 Uhr UTC). Zu UTC müs­sen 3600 bzw. 7200 Sekun­den addiert wer­den (MEZ -> eine Stun­de vor­aus, MESZ -> zwei Stun­den vor­aus).

Abruf der Daten von openweathermap.org

Vorbereitung

Du benö­tigst die Geo­ko­or­di­na­ten (Län­gen­grad = lon, Brei­ten­grad = lat) des gewünsch­ten Orts. Am ein­fachs­ten geht das mit ⤷Open­wea­ther­map selbst.

Aufruf der API

  • lat, lon -> Brei­ten­grad, Län­gen­grad
  • APPID -> dei­ne APPID
  • units=metric -> metri­sche Maß­an­ga­ben, die Tem­pe­ra­tur wird als Stan­dard in Kel­vin ange­zeigt
  • lang=de -> Aus­ga­be der Beschrei­bun­gen auf deutsch

Das Programm für TFT 320 ✕ 240

Einbinden der Bibliotheken und Definition der Variablen

Der ein­zi­ge Unter­schied zwi­schen den Mikro­con­trol­lern ist die Zuord­nung der SPI-Pins ab Zei­le 21.
Die benö­tig­ten WiFi-Biblio­the­ken wer­den ent­spre­chend (ESP32 oder ESP8266) aus­ge­wählt.

Der setup-Teil

Der loop-Teil

ESP32 2,8 Zoll TFT (CYD) 320×240 Pixel

Kurzversion in größerer Schrift

Quellen


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ähnliche Projekte


Letzte Aktualisierung: Sep. 23, 2026 @ 12:46