DIY e-Paper Display mit Raspberry Pi Zero & Waveshare e-Paper HAT

Vor kurzem bin ich in einem Raspberry Pi-Shop auf ein relativ günstiges e-Paper-Display gestoßen. Texte oder Bilder werden hier dauerhaft durch farbige Pigmente angezeigt, ohne dass dafür eine Erhaltungsspannung erforderlich ist. Ihr kennt das vielleicht von E-Book-Readern. Da ich zufällig ein Raspberry Pi Zero übrig hatte, hab ich mich kurzerhand an einem DIY e-Paper Projekt versucht.

Einkaufsliste:

Alternativ kann man auch den 5€ günstigeren Raspberry Pi zero W nehmen und selbst einen Header drauflöten.
Das Display kann man ganz einfach direkt auf die GPIO-Pinleiste des Pi Zeros aufstecken.

Hier ist das waveshare 2.7 inch e-Paper HAT auf einem Raspberry Pi 3 montiert

Software

Auf der Herstellerseite des Displays gibt es eine sporadische Anleitung und einen GitHub-link. Die Code-Beispiele auf GitHub scheinen etwas aktueller zu sein, als die auf der Hersteller-Seite verlinkten. Außerdem hat mir dieser DIY Blog-Artikel geholfen.

Los geht’s mit ein paar „apt-gets“:
sudo apt-get update
sudo apt-get install python3-pip python3-pil python3-numpy
sudo pip3 install RPi.GPIO

Als nächstes laden wir die Display-Treiber und libraries vom Hersteller runter. Es gibt keinen Universaltreiber, jedes Display hat einen dazugehörigen Treiber.
Wir kopieren zunächst einfach die komplette GitHub-Repo:
git clone https://github.com/waveshare/e-Paper

Das sollte ein neues Verzeichnis erstellt haben, in dem die komplette Ordnerstruktur der GitHub-Repo liegt. Wir wechseln in das Verzeichnis, das die Raspberry-Pi-Python3-Beispiele enthält:
cd e-Paper/Raspberry Pi/python3/examples

und führen das zum Display passende Python-Script aus:
python3 epd_2in7_test.py

Nun sollte der Democode laufen und Bilder und Texte auf dem Display darstellen! Cool!
Ihr merkt, dass der Aufbau etwas dauert. Für eine „Uhr“, die jede Minute einen Refresh macht, ist es aber ausreichend.

Als Beispiel

…hier mal mein „Uhr“-Script auf GitHub.

Es ist ein „work-in-progress“, das sind die bisherigen Funktionen:

  • Datum und Uhrzeit anzeigen (wow)
  • Die Temperatur des Raspberry Pis anzeigen
  • Meinen ThingSpeak-channel auslesen (zeigt Temperatur und Luftfeuchtigkeit)
  • meinen Google Calendar auslesen (zeigt Geburtstage von Freunden/Familie an)
  • die Track ID (Interpret & Liedname) des aktuellen Songs auf meinem Volumio Multiroom Audio Player anzeigen