Ich wollte einen E-Ink Kalender mit einem ESP-8266 bauen. Da es noch keinen Code gab, der genau das machte, was ich wollte, habe ich angefangen nach ähnlichen Projekten zu suchen. Link zum Client Code (ESP8266)
Wichtig: Der Server darf nicht hinter einem https Proxy laufen, da sonst der ESP nicht drauf zugreifen kann.
- ESP8266 Waveshare ESP Driver Board Waveshare-Seite
- Waveshare 4,2" ESP Raw Panel Waveshare-Seite
Den Display möchte ich gerne in einem Holzgehäuse auf meinen Schreibtisch stellen. Die Idee besteht schon, ist aber noch nicht umgesetzt. Sobald das der Fall ist, wird das hier nachgetragen.
Als ersten Versuch habe ich den Code von @doctormord angeguckt und einfach den Wetterpart gelöscht. Leider hat das bei mir nicht funktioniert, da der Heap meines ESPs zu klein war, was ihn zum Neustart gezwungen hat.
Da der erste Versuch ja gescheitert ist, kam dann die Überlegung, die Daten selber dem ESP zuzuführen, dadurch benötigt man nicht den Google Redirect Code. So entstand der Code in diesem Repo. Da ich in GO schon öfters gearbeitet habe, habe ich kurzerhand einen Server geschrieben, der mir meine Kalederdaten als String liefert. Ein schöner Nebeneffekt des Selberschreibens ist, dass ich direkt .ics Dateien verarbeiten kann und nicht auf Google Kalender limitiert bin.
Bekommt der Server einen GET Request (URL kann frei gewählt werden, wird auch noch in eine Configuration ausgelagert werden), ruft er die ics Dateien ab und filtert alle vergangenen Ereignisse raus und sortiert den Rest nach dem Start-Zeitpunkt. Aus dieser Liste werden die 5 aktuellsten Einträge in einen String überfühert. Diesem wird noch das aktuelle Datum angefügt und dann als Antwort gesendet.
Der Client verbindet sich mit dem WLAN und ruft dann die voreingestellte Seite auf und bekommt so die Daten. Der String wird aufgesplitte (an den ';') und dann Zeilenweise angezeigt.
- EPD Driver
- Adafruit Fonts
- Key an Route hängen, damit Daten halbwegs sicher sind
- .ics Links aus Datei lesen
- UTF-8 Unterstützung U8g2-Font ist aktuell der Plan