Statusanzeige mit ESP und ePaper-Display
Für wichtige Informationen, die auf den ersten Blick verfügbar sein sollen, habe ich mir eine ESP-basierte Lösung mit ePaper-Displays geschaffen. Die Displays verwende ich in der Größe 1,54 Zoll, so dass diese mit einem dafür gedruckten Rahmen in das Gira System55 passen.
Das fertige Produkt sieht am Ende so aus:
Benötige Komponenten
ESP8266 (z.B. diesen hier)
ggf. tiefe Installationsdose (ich habe diese verwendet)
ein paar Jumperkabel
eine 5VDC Stromquelle
ein 1,54" ePaper-Display (z.B. dieses hier)
Blindabdeckung von Gira (z.B. hier)
Rahmen von Gira in der von dir benötigten Ausführung/Größe (bei mir z.B. dieser hier)
einen gedruckten Rahmen für das Display (s.u.)
Schritt-für-Schritt-Anleitung
Vorbereitungen für das Display
Zunächst bereiten wir den Installationsort für den ESP und das Display vor. Dazu habe ich die oben aufgeführten Installationsdosen verwendet. Hier passt die gesamte Technik ohne großes Fummeln und Quetschen rein.
Ich habe zudem bereits beim Rohbau 2x2,5mm² in die jeweiligen Dosen gezogen, die zentral vom Schaltschrank aus mit 5VDC gespeist werden. Ich habe keine Erfahrungen, wie sich die Hitze bei einem Netzteil in der Dose verhalten würde!
Nachdem die Hohlwanddose installiert wurde, wenden wir uns der Lieferung von Gira zu. Hier entfernen wir die Blindabdeckung und verwahren diese für schlechte Zeiten im Elektroniklager. Für dieses Projekt ist nur der Tragring interessant, den es leider nicht einzeln zu kaufen gibt.
Den Tragring verschrauben wir an der Hohlwanddose, so dass sich die Aussparungen oben und unten befinden.
Anschließend befeuern wir unseren 3D-Drucker oder den eines Bekannten und wenden uns mit der höflichen Bitte an ihn, folgendes Modell zu drucken:
Dieser Druck ist bei mir nicht der Beste geworden, wahrscheinlich habe ich mich dem Drucker gegenüber nicht unterwürfig genug verhalten.
Wenn der Druck fertig ist, kann nun das Display mit einer zaghaften Portion Silikon in den Rahmen geklebt werden.
Display mit dem ESP verbinden
Grundsätzlich gäbe es mehrere Möglichkeiten, das Display am ESP anzuschließen. Bedingt durch die Programmierung im unten gezeigten Sketch verwenden wir hier jedoch folgende Belegung:
Verdrahtung für Displays älter als Revision 2
Display | => | ESP |
---|---|---|
3,3V | Rot | VCC |
GND | Schwarz | GND |
DIN | Blau | D7 (MOSI) |
CLK | Gelb | D5 (SCK) |
CS | Orange | D8 (SS) |
DC | Grün | D3 |
RST | Weiß | D4 |
BUSY | Violett | D2 |
Verdrahtung für Displays ab Revision 2
Display | => | ESP |
---|---|---|
3,3V | Rot | VCC |
GND | Schwarz | GND |
DIN | Blau | D7 (MOSI) |
CLK | Gelb | D5 (SCK) |
CS | Orange | D8 (SS) |
DC | Grün | D2 |
RST | Weiß | D0 |
BUSY | Violett | D1 |
Generelle Logik der Programmierung
Ich möchte kurz beschreiben, wie bei mir die Daten auf das Display kommen. Möglicherweise ist dies nicht immer der eleganteste Weg. Bedingt durch die bereits vorhandene Umgebung habe ich mich jedoch für genau diesen entschieden.
Eine Instanz von Node-Red liest mit dem Loxone-Plugin die benötigten Daten aus und schiebt diese auf einen MQTT-Server
Zusätzlich sendet Node-Red minütlich die aktuelle Uhrzeit in einen MQTT-Thread
Der MQTT-Server postet diese Daten in den bei Node-Red konfigurierten Thread
Die an das Display angeschlossenen ESPs abonnieren die für sie interessanten Threads und aktualisieren bei jeder neuen eingehenden Nachricht das Display
Die ESPs starten einen lokalen Webserver, über welchen veränderte Versionen des Scripts in kompilierter Form hochgeladen werden können. So muss ich nicht bei jeder Änderung die Displays aus der Wand reißen.
Vorab ein großes Danke an die Hinweisgeber, dass dies einfacher via OTA aus der Arduino-IDE heraus gehen würde. Leider trifft das nur auf das selbe Subnetz zu und meine Arbeitsrechner hängen in einem anderen Netz als der Hausautomatisierungs-Kram.
Entwicklungsumgebung vorbereiten
Zur Entwicklung nutze ich hierfür die Arduino IDE, die es kostenfrei zum herunterladen und installieren gibt.
Wie die IDE für einen ESP zu konfigurieren ist, ist in zahlreichen Anleitungen beschrieben. Google wird dir hier zur Seite stehen.
Zusätzlich benötigen wir folgende Bibliotheken:
ESP8266WiFi
GxEPD
PubSubClient
ESP8266WebServer
ESP8266HTTPUpdateServer
Adafruit_GFX
Script/Sketch anpassen
Wir laden das von mir zusammengesuchte Flickwerk herunter, dass in der Arduino-IDE auch Sketch genannt wird:
https://github.com/klenzel/epaperdisplay_hausautomatisierung
Das Script muss natürlich grundlegend auf die eigenen Bedürfnisse angepasst werden. Dazu zählen:
WLAN-Name und Passwort
MQTT-Server
MQTT-Benutzer und Passwort
Sämtliche MQTT-Topics, die abonniert werden sollen
Insg. drei Zeilen im Kopfbereich des Scripts, die je nach Revision des Displays ein- oder auskommentiert werden müssen
Sind die Änderungen eingepflegt, kann der Sketch auf den ESP geladen werden.
Läuft das Kompilieren und das Hochladen fehlerfrei durch, werden nun die abonnierten Informationen nach und nach auf dem Display angezeigt.
Sollte ich jedoch noch einen Zwischenschritt in dieser Anleitung vergessen haben, weißt mich gerne darauf hin und ich werden den Fehler korrigieren.
Display in Rahmen einsetzen
Läuft der ESP mit dem angeschlossenen Display fehlerfrei, können beide nun in den Rahmen gesetzt werden. Zunächst wird der ESP mit der Spannungsversorgung verbunden, die in der Hohlwanddose bereit steht. Nun kann der ESP vorsichtig in die Dose geschoben werden. Das Display führen wir durch den Gira-Abdeckrahmen (diagonal passt das Display durch).
Nun legen wir den Gira-Rahmen auf den Tragring und setzen letztendlich den gedruckten Rahmen mit dem Display so ein, dass die Füße oben und unten in die Aussparung des Tragrings greifen.
Den Rahmen vorsichtig einsetzen, da die Füße sehr empfindlich sind und leicht abbrechen!
Das Ergebnis sieht dann so aus:
Bitte unbedingt darauf achten, dass der "Gira"-Schriftzug des äußeren Rahmens nach unten zeigt. Der Fehler, der im Bild zu sehen ist, bereitet mir ebenso schlaflose Nächte wie eine mit dem Blatt nach hinten eingesetzte Toilettenpapierrolle.
Vielen Dank an Michael an dieser Stelle, der mir die entscheidenden Hinweise für die Nutzung der Displays ab Revision 2 gegeben hat.
Verwandte Artikel