Projekt ePaper Kalender

Mein papierloser Kalender 🙂!

Dokumentation eines stromsparenden ePaper-Kalenders

Dokumentation eines stromsparenden ePaper-Kalenders

Ein papierloser Kalender mit ESP32-C3, 7,5-Zoll-ePaper, Wetterdaten, Kalender-Synchronisation und Batteriebetrieb.

Projektziel

Ziel des Projekts war die Entwicklung eines papierlosen, stromsparenden Kalendersystems auf Basis eines ePaper-Displays. Der Kalender sollte öffentliche Outlook- und Apple-Kalender synchronisieren und zusätzlich manuelle Termine unterstützen.

Hardware

Als Hardware wurde ein 7,5-Zoll-ePaper-Panel mit einem XIAO ESP32-C3 Mikrocontroller verwendet. Der ESP32-C3 bietet WLAN-Unterstützung und einen stromsparenden Deep-Sleep-Modus, wodurch sich das System gut für einen dauerhaften Batteriebetrieb eignet.

Mikrocontroller XIAO ESP32-C3
Display 7,5-Zoll ePaper, Schwarz-Weiß
Arduino-Board XIAO_ESP32C3
Serieller Port unter Ubuntu /dev/ttyACM0

Layout des Kalenders

Das Display wurde im Querformat gestaltet.

  • Links wird das aktuelle Datum groß dargestellt.
  • Darunter erscheinen die Termine des aktuellen Tages.
  • Oben werden Monat, Wetterdaten und Batteriestand angezeigt.
  • Rechts befindet sich eine Liste der nachfolgenden Termine.

Da das ePaper-Display ausschließlich Schwarz-Weiß-Darstellung unterstützt, wurde für dunkle Listenhintergründe ein Linienmuster verwendet. Dadurch entsteht optisch eine schattierte Fläche.

Schattierung der Terminliste

Da das ePaper-Display nur Schwarz und Weiß darstellen kann, wurde die Schattierung der rechten Terminliste nicht mit Graustufen umgesetzt. Stattdessen werden sehr dicht gesetzte horizontale schwarze Linien gezeichnet. Dadurch entsteht optisch ein dunkler Hintergrund.

Für diese dunklen Bereiche wird die Schriftfarbe auf Weiß gesetzt. Bei normalen Bereichen bleibt die Schrift schwarz. So entsteht eine gut lesbare, abwechselnd strukturierte Terminliste.

Kalender-Synchronisation

Die Kalenderdaten werden über öffentliche ICS-Kalender eingebunden. Unterstützt werden Outlook- sowie Apple-/iCloud-Kalender. Ein PHP-Skript lädt die ICS-Dateien automatisch herunter, verarbeitet die Kalendereinträge und erzeugt daraus eine termine.json-Datei.

Das PHP-Skript wird über einen Cronjob alle zehn Minuten ausgeführt. Die erzeugte JSON-Datei wird anschließend vom ESP32 über WLAN geladen.

Manuelle Termine werden getrennt gespeichert und anschließend mit den automatisch synchronisierten Kalenderdaten zusammengeführt.

JSON-Format

Die Termine werden in einem kompakten JSON-Format gespeichert. Jeder Eintrag besteht aus Datum, vollständigem Text und einer Kurzfassung für die Listenansicht.

  • date: Datum im Format JJJJ-MM-TT
  • text: vollständiger Termintext
  • short: gekürzter Text für die rechte Terminliste

Beispiel:

date: 2026-05-11
text: Restmuell
short: Restmuell

date: 2026-05-12
text: Abfahrt 16:45 Uhr
short: Abfahrt 16:45 Uhr

Das Feld text enthält den vollständigen Termintext. Das Feld short wird für die kompakte Terminliste auf der rechten Displayseite verwendet.

Batteriestandsanzeige

Die Messung des Batteriestands erwies sich als anspruchsvoll, da der ADC-Eingang des verwendeten Boards zunächst aktiviert werden muss.

  • Batterie-ADC: GPIO1
  • ADC-Aktivierung: GPIO6

Die Batteriespannung wird gemessen, in eine reale Akkuspannung umgerechnet und anschließend prozentual dargestellt.

Stromsparmodus

Nach jedem Aktualisierungsvorgang führt das Gerät folgende Schritte aus:

  1. WLAN-Verbindung herstellen
  2. Wetter- und Kalenderdaten laden
  3. ePaper-Display aktualisieren
  4. in den Deep-Sleep-Modus wechseln

Das System wacht derzeit alle 30 Minuten automatisch auf und aktualisiert die Anzeige. Dadurch wird eine lange Batterielaufzeit erreicht, da ePaper-Displays nur beim Aktualisieren Energie benötigen.

ePaper Kalender Projekt · ESP32-C3 · ICS · JSON · Deep Sleep

Chrislys • Live • Webcams
Webcam Vorschau