Bereiche
XML to graphic
Muss flexibel sein, d.h. es sollen jeweils Rechtecke definiert werden können, wo der Inhalt automatisch eingepasst wird.
ESP32
- WiFi-Verbindung aufbauen.
- MAC-Adresse und WiFi-SSID anzeigen, wenn Verbindung fehlschlägt. Nach 1,2,4,8,16 min wieder probieren (deep sleep)
- Verbindung zum Server aufnehmen.
- MAC-Adresse und Fehlermeldung anzeigen, wenn Verbindung fehlschlägt. Nach 1,2,4,8,16 min wieder probieren (deep sleep)
- Alle nötige Information mitsenden. Mögliche URL: /anzeige?mac=123456789012&volt=3.97
- MAC-Adresse, Batterie-Zustand, aktuelle Firmware-Version
- Server-Antwort auswerten:
- OTA? (Over the air update) (mit URL, z.B. /static/image-xy.bin)
- Neues Bild? (als URL, z.B. /static/h21/data.bin)
- Schlafenszeit in Sekunden.
- Wenn OTA, neues image laden
- Wenn neues Bild, Bild laden (von URL) und anzeigen
- Schlafen (deep sleep).
Server
- Minimale Flask-App für μC, siehe auch https://flask.palletsprojects.com/en/3.0.x/tutorial/
- Routes /anzeige, static
Datenbank
Mit SQLite. Nötige Daten (nicht ablschliessend):
- MAC-Adressen
- Räume mit Zusatzinformationen:
- Name, Verantwortliche Lehrpersonen, Wann Schliessen, Aufstuhlen.
- Log der Batteriespannungen, inkl. Datetime
- Custom-Grafiken: Was und wie lange
Web-GUI
Flask-App ausbauen für
- Zuordnung MAC-Zimmer
- Zusatzinfo pro Zimmer
- Log Batterien (und welche Zimmer einen Batteriewechsel benötigen)
- Upload einer eigenen Grafik, evtl. Zusatzgrafiken (dafür nur 3 Tage anzeigen)
GitHub Workflow
Unser Repo
git clone git@github.com:techlabksbg/epaper-zimmerinfo.git