stefankoelle 592a615a5d Phase 5: detail screens (scrollable lists + back button) + main controller
- weather_detail: scrollable hourly forecast (time, temp, description,
  rain probability), data logic ported from old weather_detail_screen.cpp
- calendar_detail: scrollable list of all 10 events (summary + formatted
  date/all_day), ported from old calendar_detail_screen.cpp
- mvg: scrollable departures list (line badge U/S colored, destination,
  time/delay, cancellation), 1-minute refresh timer ported from old
  mvg_screen.cpp
- all three use back_button widget (fixed bottom-left)
- main.cpp: Screen controller, navigates between screens via callbacks,
  5-minute inactivity timeout -> home, per-screen tick() for refresh
2026-08-02 10:38:10 +02:00
2026-08-02 09:52:32 +02:00
2026-08-02 09:52:32 +02:00
2026-08-02 09:52:32 +02:00
2026-08-02 09:52:32 +02:00
2026-08-02 09:52:32 +02:00

M5Stack Core Dashboard

Wetter-, Kalender- und MVG-Abfahrten-Dashboard für den M5Stack Core (ESP32), gesteuert über die 3 eingebauten Buttons (A, B, C).

Details zu Funktionsumfang, API-Formaten und Design-Entscheidungen stehen in SPEC-final.md im Space. Umsetzungsschritte stehen in PLAN.md und TODO.md.

Setup

  1. PlatformIO CLI installieren:

    pip install -U platformio
    
  2. WLAN-Zugangsdaten eintragen:

    cp include/secrets.h.example include/secrets.h
    

    Dann in include/secrets.h WIFI_SSID und WIFI_PASSWORD anpassen. Die drei API-URLs sind bereits vorbefüllt.

  3. Gerät per USB anschließen.

Build & Flash

./scripts/deploy.sh

Falls mehrere serielle Geräte angeschlossen sind und die automatische Port-Erkennung fehlschlägt, kann der Port explizit übergeben werden:

./scripts/deploy.sh /dev/ttyUSB0

Das Skript baut nur und flasht, es öffnet keinen seriellen Monitor.

Falls du den Monitor separat sehen willst:

pio device monitor

Bedienung

Button Funktion
A Wechselt zwischen Wetter-Detail und Kalender-Detail
B Zurück zur Hauptseite
C MVG-Abfahrtsseite

Nach 5 Minuten ohne Tastendruck springt das Gerät automatisch zurück zur Hauptseite. Die Hauptseite aktualisiert sich alle 10 Minuten, die MVG-Seite jede Minute.

Icons

Die Icons (Sonne, Wolke, Regen, U-/S-Bahn-Badges, Kalender, Fehler-Symbol) werden aktuell prozedural mit M5Stack-Grafikprimitiven gezeichnet (src/icons/icons.h), um den Flash-Speicher zu schonen. Für echte Pixel-Art-Bitmaps können die Funktionskörper später durch M5.Lcd.drawBitmap(...)-Aufrufe mit RGB565-Arrays ersetzt werden.

Git

Dieses Projekt ist bewusst noch nicht als Git-Repository initialisiert. Sobald gewünscht:

git init
git add .
git commit -m "Initial M5Stack dashboard"

include/secrets.h ist bereits in .gitignore ausgeschlossen.

S
Description
No description provided
Readme MIT
307 KiB
Languages
C++ 97.6%
Batchfile 1.5%
Shell 0.9%