mirror of
https://github.com/skoelle/m5stack-dashboard.git
synced 2026-09-18 00:50:24 +00:00
improve ui
This commit is contained in:
@@ -3,50 +3,45 @@
|
||||
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.md` im Space. Umsetzungsschritte stehen in `PLAN.md` und `TODO.md`.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## 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. PlatformIO CLI installieren:
|
||||
```
|
||||
pip install -U platformio
|
||||
```
|
||||
|
||||
2. WLAN-Zugangsdaten eintragen:
|
||||
1. 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.
|
||||
Dann `WIFI_SSID` und `WIFI_PASSWORD` anpassen. Die drei API-URLs sind
|
||||
bereits vorbefüllt. Diese Datei ist über `.gitignore` geschützt.
|
||||
|
||||
3. Gerät per USB anschließen.
|
||||
2. Beim ersten Aufruf eines Skripts wird automatisch ein lokales venv unter
|
||||
`.venv-platformio/` angelegt.
|
||||
|
||||
## Build & Flash
|
||||
## Nur bauen (Test ohne Gerät)
|
||||
|
||||
```
|
||||
./scripts/deploy.sh
|
||||
```
|
||||
Linux/macOS: `./scripts/build.sh`
|
||||
Windows: `scripts\build.cmd`
|
||||
|
||||
Falls mehrere serielle Geräte angeschlossen sind und die automatische
|
||||
Port-Erkennung fehlschlägt, kann der Port explizit übergeben werden:
|
||||
## Bauen + Flashen
|
||||
|
||||
```
|
||||
./scripts/deploy.sh /dev/ttyUSB0
|
||||
```
|
||||
Linux/macOS: `./scripts/deploy.sh [/dev/ttyUSB0]`
|
||||
Windows: `scripts\deploy.cmd [COM4]`
|
||||
|
||||
Das Skript baut nur und flasht, es öffnet keinen seriellen Monitor.
|
||||
|
||||
Falls du den Monitor separat sehen willst:
|
||||
|
||||
```
|
||||
pio device monitor
|
||||
```
|
||||
**Wichtig**: Vor dem Flashen sicherstellen, dass keine andere Anwendung
|
||||
(z.B. Arduino IDE mit offenem Monitor) den COM-Port belegt.
|
||||
|
||||
## Bedienung
|
||||
|
||||
@@ -57,13 +52,35 @@ pio device monitor
|
||||
| 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.
|
||||
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
|
||||
|
||||
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.
|
||||
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`.
|
||||
|
||||
Reference in New Issue
Block a user