WAVESHARE E-INK DISPLAY & NODEMCU (TEIL 2)

In meinem letzten Post habe ich dort aufgehört, bei dem ich beschrieben habe, wie das Display am NodeMCU angeschlossen wird.

DHT 22

Nun geht es daran den DHT 22 noch anzuschließen und … naja das ganze zusammen zu verbinden. Nun will ich aber nicht lange um den heißen Brei reden und direkt zur Sache gehen.

Also Schematisch sieht das ganze wie folgt aus.

Generell benötigt der DHT22 nur etwas strom, Masse und der Mittlerwe Pin wird auf ein GPIO gelegt, denn darüber wird mitgeteilt, welche Temperatur und Luftfeuchte gemessen wurde.

Der Code

Entwickelt wurde das ganze als Arduino Projekt. Verwendet habe ich dafür VS Code. Da dies mein erstes App Projekt ist, scheint der Code nicht komplett sauber zu sein. Aber er läuft ganz gut :).

Jedes Arduino Projekt besteht aus mindestens zwei Methoden

  • setup
  • loop

Die Setup Routine ist, wie der Name schon sagt, dafür da, alles zu Initialisieren. Die loop Methode wird anschließend immer wieder aufgerufen und sorgt für die eigentliche Arbeit.

Meine Setup Methode sieht wie folgt aus:

 

Zuerst Initialisiere ich das Debugger Terminal und anschließend richte ich den Temperatursensor ein. Dort konfiguriere ich, auf welchen GPIO der Sensor angeschlossen ist. Direkt darauf konfiguriere ich die Verbindung zu meinen W-Lan router und richte die Verbindung zu meinem MQTT Dienst ein. Der Code dazu sieht wie folgt aus:

Ich baue hier lediglich die Verbindung zum MQTT Server auf und “lausche” auf Nachrichten auf dem Thema “clients/nodemcu” und “icon” dort lege ich die Temperatur von draußen ab und in “icon” der Wert des anzuzeigenden Wettersymbols. Ab jetzt ist das Gerät auch in MQTT als verbunden angezeigt.

Anschließend hole ich die aktuelle Zeit von einem Zeitserver, so dass ich immer Synchron mit der Serverzeit bin (ist wichtig für die Message Queue, da es sonst zu Zeitdifferenzen kommen könnte beim versenden und abholen / verarbeiten der Nachricht).

Zu guter letzt, wird das E-Ink Display initialisiert, hierbei wird lediglich die Methode der eingebundenen Bibliothek aufgerufen.

Das Setup ist somit fertiggestellt.

Hauptmethode

Der Quelltext in der loop Methode sieht wie folgt aus:

Ich habe erkannt, das die Verbindung zum Broker manchmal abreißt, daher habe ich zuerst, noch mal die Verbindung, falls nicht mehr vorhanden, zum MWTT aufgebaut. Danach hole ich zwei Nachrichten ab. In der Regel ist das bei mir einmal die Temperatur und das anzuzeigende Wetter Symbol.

Habe ich die Daten ermittelt, dann zeichne ich das Dashboard auf dem Bildschirm mit den empfangenen Daten. An dieser Stelle verzichte ich darauf, das ich auf die ShowDashboard Methode eingehe, denn der Komplette Quelltext ist auf Github ebenfalls vorhanden.

Nachdem die Zeichnung abgeschlossen ist, gehe ich für eine Minute schlafen. Dadurch das ich die Uhrzeit anzeige, muss somit jede Minute das Display aktualisieren.

Ich hoffe das ich einigen etwas helfen konnte, dann mir war aufgefallen bei der Realisierung, das die Quellen im Internet teilweise etwas unbrauchbar oder nicht vollständig waren. Hier habe ich nun ein vollständiged Projekt durchgeführt und es läuft mittlerweile fast 3 Monate durch ohne das ich ein Problem damit hatte. Zumindest ist mit keiner Aufgefallen 🙂