Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

CYD Wetterstation

Moderne, übersichtliche Wetterstation für das Cheap Yellow Display (ESP32-2432S028R, 2,8" 320×240 Touch) – mit kantengeglätteten Schriften, gezeichneten Wettersymbolen, Wischgesten und einem Haufen versteckter Späße.

Jetzt 24 Stunden 5 Tage Sonne & Wind

Die Bilder stammen direkt aus dem Firmware-Code (Host-Simulator, siehe unten).

Funktionen

  • 4 Ansichten: Jetzt · Nächste 24 Stunden · 5-Tage-Vorhersage · Sonne & Wind
  • Einrichtung per Handy: WLAN, Passwort und Stadt – kein Code anfassen
  • Wetterdaten von Open-Meteo – kostenlos, kein API-Schlüssel, Aktualisierung alle 10 Minuten
  • Hintergrund passt sich der Wetterlage und Tageszeit an (Sonne, Wolken, Regen, Gewitter, Schnee, Nebel, Nacht)
  • Uhrzeit per NTP inkl. Sommerzeit, deutsches Datum
  • Nachts automatisch gedimmt (beim Antippen kurz hell)
  • Nach 60 s ohne Berührung zurück zur Hauptansicht
  • Flimmerfreies Zeichnen über einen Streifen-Puffer (nur 38 KB RAM)
  • Umlaute und ° in allen Schriften (Outfit, SIL Open Font License)
Sonnig Regen Gewitter Schnee Nacht

Installation (ohne Programmieren)

1. Firmware herunterladen

Unter Releases → Aktuelle Firmware die passende Datei laden:

  • cyd-wetter-cyd.bin – CYD mit einem Micro-USB-Anschluss
  • cyd-wetter-cyd2usb.bin – CYD mit USB-C und Micro-USB

2. Im Browser flashen (Chrome, Chromium oder Edge)

  1. CYD per USB anschließen (Datenkabel!).
  2. https://espressif.github.io/esptool-js/ öffnen.
  3. Baudrate 921600, auf Connect klicken und den Port wählen (Linux: ttyUSB0, Windows: COM…).
  4. Bei Flash Address 0x0 eintragen, die .bin-Datei auswählen.
  5. Program klicken und warten, bis „Leaving…“ erscheint. Dann die RST-Taste am CYD drücken.

Linux (Ubuntu, Zorin, Mint …) einmalig vorbereiten: sudo apt remove brltty && sudo usermod -aG dialout $USER, danach neu anmelden.

3. WLAN und Stadt einrichten (per Handy)

  1. Das CYD zeigt „Einrichtung“ und öffnet ein eigenes WLAN CYD-Wetter.
  2. Handy mit diesem WLAN verbinden – die Einrichtungsseite öffnet sich (sonst 192.168.4.1 im Browser).
  3. Configure WiFi → dein WLAN wählen, Passwort und Stadt eintragen → Save.
  4. Das CYD verbindet sich, sucht den Ort und zeigt das Wetter.

Passwort und Ort werden nur auf dem Gerät gespeichert. Ändern kannst du sie jederzeit: Stadtnamen oben links 2 Sekunden gedrückt halten.

Selbst kompilieren (optional)

  1. VS Code + Erweiterung PlatformIO IDE installieren und dieses Repository öffnen.
  2. Optional include/config.h anpassen (Zeitzone, Helligkeit, Geburtstag, Ton …).
  3. In PlatformIO die Umgebung cyd oder cyd2usb wählen und Upload klicken – oder im Terminal pio run -e cyd -t upload.

Jeder Push baut die Firmware außerdem automatisch per GitHub Actions und aktualisiert das Release.

Bedienung

Geste Wirkung
Nach links/rechts wischen nächste / vorige Ansicht
Linkes / rechtes Drittel antippen vorige / nächste Ansicht
Punkte unten zeigen, wo du bist
Stadtnamen 2 s gedrückt halten WLAN und Stadt ändern

Easter Eggs

Spoiler! Erst selbst suchen?
Auslöser Was passiert
🐸 Wetterfrosch 5× schnell aufs Wettersymbol tippen Der Frosch klettert die Leiter hoch – je besser das Wetter, desto höher – und gibt eine Bauernregel zum Besten
💧 Tropfenfänger Uhrzeit 2 s gedrückt halten Minispiel: Regentropfen mit dem Eimer fangen (Finger steuert), Sonnen = +5, Blitze kosten ein Leben. Highscore bleibt gespeichert
🟩 Matrix-Wetter Ecken antippen: oben links → oben rechts → unten rechts → unten links Grüner Zeichenregen mit „Wake up, Neo …“
🕜 Leet Time um 13:37 Uhr Die Uhr leuchtet grün und flackert
🍬 Unwetterwarnung am 1. April „Ab 14 Uhr regnet es Gummibärchen.“ … April, April!
🎅 Feiertage 24.–26.12. / 31.10. / Neujahr 0:00 Weihnachtsmütze aufs Wettersymbol, Kürbis neben der Stadt, Feuerwerk
🎂 Geburtstag BIRTHDAY_* in config.h setzen Konfetti, Glückwunsch und „Happy Birthday“ aus dem Lautsprecher
😄 Flachwitz BOOT-Taste kurz drücken Zufälliger (Wetter-)Flachwitz, nochmal drücken = nächster
🪩 Disco-Wetter BOOT-Taste 1 s halten RGB-LED blinkt bunt, das Display pulsiert, der Lautsprecher dudelt
👀 Licht aus Lichtsensor vorne abdecken „Huch! Wer hat das Licht ausgemacht?“
💬 Sprüche immer Unter der Wetterlage steht ein passender Spruch

Fehlersuche

Problem Lösung
Farben falsch / invertiert andere Umgebung (cyd ↔ cyd2usb) probieren oder in platformio.ini -DTFT_INVERSION_ON=1 bzw. OFF tauschen
Bild gespiegelt oder weiß Umgebung cyd2usb testen; bei manchen Boards hilft -DSPI_FREQUENCY=40000000
Tipps landen daneben TOUCH_DEBUG true setzen, Rohwerte im seriellen Monitor ablesen und TOUCH_X/Y_MIN/MAX anpassen; ggf. TOUCH_FLIP_X/Y
Einrichtung meldet „Verbindung fehlgeschlagen“ Passwort prüfen – der ESP32 kann nur 2,4-GHz-WLAN
„Ort nicht gefunden“ Nur den Ortsnamen eingeben, z. B. Leipzig oder Bad Honnef
Board wird beim Flashen nicht gefunden Datenkabel verwenden; Linux: brltty entfernen, Gruppe dialout (siehe oben)
Lautsprecher zu nervig SOUND_ENABLED false
„Licht aus“ löst zu oft / nie aus LDR_DARK_DELTA anpassen oder LDR_EGG_ENABLED false

Projektstruktur

include/config.h      Deine Einstellungen
src/main.cpp          Einrichtung (WLAN + Ort), Zeit, Wetterabruf, Navigation, Dimmen
src/ui.cpp            Die vier Ansichten + Startbildschirm
src/icons.cpp         Gezeichnete Wettersymbole
src/gfx.cpp           Streifen-Rendering, kantengeglättete Formen, Text
src/weather.cpp       Open-Meteo-Parser, WMO-Codes → deutsche Texte, Sprüche
src/eggs.cpp          Alle Easter Eggs
src/input.cpp         Touch-Gesten und BOOT-Taste
src/hw.cpp            RGB-LED, Lautsprecher, Lichtsensor, Speicher
src/fonts/            Erzeugte Schriften (tools/make_fonts.py)
sim/                  Host-Simulator für Screenshots

Schriften neu erzeugen

pip install pillow
python3 tools/make_fonts.py

Größen, Gewichte und Zeichensatz stehen oben im Skript.

Simulator

sim/run.sh kompiliert den Zeichen-Code der Firmware (UI, Symbole, Easter Eggs, JSON-Parser) für den PC gegen eine kleine TFT_eSPI-Nachbildung und schreibt Screenshots nach sim/build/. Voraussetzung: g++, Python mit Pillow und die ArduinoJson-Quellen (Pfad per ARDUINOJSON=.../src).

Lizenz

Code: MIT. Schrift Outfit: SIL Open Font License (tools/Outfit-OFL.txt).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages