Waveshare E-Ink Display & NodeMCU (Teil 1)

Was war mein Ziel?

Als ich diese Reise antrat habe ich mir gedacht: “Einfach zusammenstecken und bisschen herumprogrammieren und fertig”. Aber so einfach war es dann doch nicht. Doch was wollte ich? Ich wollte ein Display haben, welches die Temperatur meine Außensensors, die Temperatur eines Innen Sensors und die heutige Wetter Prognose anzeigen soll. Des Weiteren wollte ich das gut lesbar haben und auch Stromsparend. Durch die Entscheidung das ein Sensor für die Temperaturmessung angebracht war, ist es für mich wichtig gewesen, das diese Daten auch ein meine Heimautomatisierung Software gelangen.

Die Hardware

Nachfolgende beschreibe ich die verwendete Hardware, die zum Einsatz kommt.

Die Auswahl des Displays

Zuerst habe ich an ein LCD Display gedacht, die wären bestimmt auch simpler gewesen, aber ich wollte etwas stromsparendes haben. Ich habe lange überlegt, da fiel mir ein, das ein E-Ink Display auch mit wenig bzw. keinen Strom auskommen kann. Also habe ich mich auf die Suche gemacht habe, ist mir der Hersteller Waveshare aufgefallen. Diese haben eine große Palette an E-Ink Displays vorhanden. Da mein Display auch von größerer Entfernung lesbar sein soll habe ich dort ein 7,5 ” Bildschirm bestellt. Durch Zufall habe ich dann auch gesehen das mittlerweile 3-Farbige Displays existieren. Ich habe mich dann schnell für ein 3-Farbiges Display entschieden. So kann ich die Warnungen in rot anzeigen. Durch das viele Nachlesen habe ich auch herausgefunden, das ich das Display HAT mit bestellen muss, damit ich auch die Anschlüsse an die NodeMCU einfacher vornehmen kann.

Das Herzstück

Das Display alleine kann nicht funktionieren, damit ich Daten und Bilder auf diesem erscheinen lassen kann, brauche ich auch einen kleinen Mikroprozessor, da der Raspberry PI und Ardunino mir viel zu viel Strom einforderten, habe ich die NodeMCU verwendet. Im Bild sieht man noch das Development Board. Dies habe ich verwendet, weil ich nicht so viel Lust auf das Löten habe und somit auch mal fix, etwas anderes Anschließen kann. In der Produktion später muss ich dann aber, um den Verbrauch etwas einzuschränken einige Teile herauslöten. Doch dazu später mehr. Der vorteil diese NodeMCU ist, das diese auch sehr günstig ist. Bei Banggood.com habe ich dort eine für knapp 2 Euro erworben. Jedoch war dort eine längere Lieferzeit zu berücksichtigen.

 

Der Temperatur Sensor für den Innenraum

Da ich noch einige Steckplätze nach dem Belegen des Displays frei hatte, habe ich mir gedacht, das ich den Innenraum Temperatur Sensor ebenfalls an die NodeMCU anschließen kann. Ich habe mich für den DHT22 Sensor Entschieden und kann bei Ebay günstig geschnappt werden. Dieser Sensor misst nicht nur die Temperatur, sondern auch den Luftdruck.

 

Infrastruktur

Im folgenden die komplette Infrastruktur für das Projekt.

Iobroker

Dies ist meine aktuelle Heimautomatisierung und sorgt dafür, das die Daten, welche das Display benötigt auch bereitgestellt werden. So ist es auch verantwortlich dafür, das es einmal in der Stunde die aktuellen Wetterdaten abruft, das entsprechend anzuzeigende Icon extrahiert. Des Weiteren nimmt es die Daten des Außentemperatur Sensors meiner Heimautomatisierung und legt Sie in den Ausgangskanal des Message Bus ab genau dort, wo sich auch die Temperatur angaben befindet.

Message Bus (MQTT)

Damit die Daten auch in meiner Heimautomatisierung auftauchen, benötige ich einen Message Bus, ich habe mich dabei auf den Message Bus MQTT entschieden, dieser wird auch in iobroker als Adaper angeboten. Somit entfällt eine größere Installation dessen.

Wetterdienst

Ich benötigte einen Wetterdienst, der mir die Daten des heutigen Tages mitteilt. Hierbei war es mir wichtig, das ich irgendwoher auch ein Bild erhalte, das ich dann im Display anzeigen kann. Somit bin ich auf die Seite https://openweathermap.org gelangt. Dies ist ein freier Dienst der eine kostenlose API bereitstellt.

Display mit NodeMCU

Diese Einheit ist das, was gebaut wird. Besonderheit ist es, das es Die Daten vom Message Bus abruft und die aktuellen Daten des Innenraum Sensors auf den Messagebus ablegt.

Der Zusammenbau

Ich habe zum Entwickeln des Displays eine gute Opensource implementation gefunden: https://github.com/ZinggJM/GxEPD. Dort befindet sich auch eine Pin Belegung wie das Gerät anzuschließen ist. Hier ein Auszug aus der Readme:

BUSY -> D2, RST -> D4, DC -> D3, CS -> D8, CLK -> D5, DIN -> D7, GND -> GND, 3.3V -> 3.3V

Gesagt getan, so hab ich das angeschlossen und auch mal einen Test gemacht, schon klappt es und die ersten Texte werden angezeigt.

Weiter geht es im nächsten Blogpost.