Skip to content

Repository files navigation

M5Stack Core Dashboard

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

Hauptbildschirm Abfahrten Wetter Termine

Voraussetzungen

  • Python 3 (für das lokale venv, in dem PlatformIO installiert wird)
  • Kein globales pip install platformio nötig, alle Skripte legen sich ihr eigenes isoliertes venv im Projektordner an (.venv-platformio/)

Windows-Hinweis: Falls mehrere Python-Versionen installiert sind, nutzen die Windows-Skripte automatisch den py-Launcher (py -3), der zuverlässig Python 3 findet. Prüfen mit: py -3 --version

Setup

  1. WLAN-Zugangsdaten eintragen:

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

    Dann WIFI_SSID und WIFI_PASSWORD anpassen. Die drei API-URLs sind bereits vorbefüllt. Diese Datei ist über .gitignore geschützt.

  2. Beim ersten Aufruf eines Skripts wird automatisch ein lokales venv unter .venv-platformio/ angelegt.

Nur bauen (Test ohne Gerät)

Linux/macOS: ./scripts/build.sh Windows: scripts\build.cmd

Bauen + Flashen

Linux/macOS: ./scripts/deploy.sh [/dev/ttyUSB0] Windows: scripts\deploy.cmd [COM4]

Wichtig: Vor dem Flashen sicherstellen, dass keine andere Anwendung (z.B. Arduino IDE mit offenem Monitor) den COM-Port belegt.

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. Hauptseite: Refresh alle 10 Minuten. MVG: jede Minute.

Textdarstellung (Umlaute)

include/text_utils.h wandelt UTF-8-Umlaute automatisch in ASCII um (ö -> oe, ä -> ae, ü -> ue, ß -> ss), da der Standardfont sie nicht korrekt darstellt.

Datumsformat im Kalender

Kurzformat Wochentag Tag.Monat. Stunde:Minute, z.B. Mo 3.8. 14:00. Ganztägige Termine ohne Uhrzeit, z.B. Mo 3.8.. Der Wochentag wird rein rechnerisch ermittelt (include/date_utils.h), keine NTP-Sync nötig.

Icons

Alle Icons werden prozedural gezeichnet (src/icons/icons.h), um Flash zu sparen. "Gewitter" wird durch Wolke+Blitz optisch von reiner Bewölkung unterschieden. Das Kalender-Icon ist ein echtes Kalenderblatt-Symbol statt einer Checkbox.

GitHub Actions Build-Check

.github/workflows/build.yml kompiliert das Projekt bei jedem Push, ohne echte Zugangsdaten zu benötigen. Es wird dort automatisch eine Wegwerf-secrets.h aus secrets.h.example erzeugt, die nie ins Repo gelangt.

Git

Noch nicht initialisiert. Bei Bedarf: git init && git add . && git commit -m "Initial". include/secrets.h und .venv-platformio/ sind bereits in .gitignore.


Licensed under the MIT License - Copyright (c) 2026 Stefan Koelle (https://stefankoelle.de)

About

M5Stack Core dashboard (ESP32) showing live weather, calendar events, and MVG (Munich transit) departures. Navigate with 3 physical buttons, dark iOS-style UI with colorful procedural icons, built with PlatformIO.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages