mirror of
https://github.com/skoelle/m5stack-dashboard.git
synced 2026-09-17 16:50:23 +00:00
86 lines
2.8 KiB
Markdown
86 lines
2.8 KiB
Markdown
# 🌤️ M5Stack Core Dashboard
|
|
|
|
Wetter-, Kalender- und MVG-Abfahrten-Dashboard für den M5Stack Core (ESP32),
|
|
gesteuert über die 3 eingebauten Buttons (A, B, C).
|
|
|
|

|
|

|
|

|
|

|
|
|
|
## ⚙️ 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.
|
|
|
|
---
|
|
|
|
Licensed under the [MIT License](LICENSE) - Copyright (c) 2026 Stefan Koelle (https://stefankoelle.de)
|