Zunächst wurde sich mit den technischen Möglichkeiten des RTC-Shields mithilfe von den unten unter Ressourcen aufgeführten Links vertraut gemacht. Für die Ansteuerung des Shields braucht es die Bibliothek ‚RTClib‘. Um die Internetverbindung herzustellen wurde die Bibliothek ‚ESP8266WiFi‘ eingebunden. Die Verbindung über den MQTT Broker zu Node Red kann mithilfe der Bibliothek ‚PubSubClient‘ hergestellt werden. Zur Ausgabe der Daten auf dem Display wurden die Bibliotheken ‘Adafruit_GFX.h’ und ‘Adafruit_SSD1306.h’ verwendet. Zur Schnittstellenkommunikation kamen zudem die Bibliotheken ‘Wire.h’ und ‘SPI.h’ zum Einsatz.
Beim Kompilieren werden die aktuelle Uhrzeit und das Datum, die vom Computer ampfangen werden, auf das RTC-Shield übertragen. Damit die Werte zum Beispiel nach einer Unterbrechung der Stromzufuhr weiterhin korrekt angezeigt werden, ist es notwendig das RTC-Shield mit einer Knopfzellenbatterie auszustatten. Dies ermöglicht es dem Shield die Werte auch ohne Stromzufuhr ‚weiterzurechen‘. Ohne der Batterie würde das RTC-Shield die Werte vom Zeitpunkt des letzten Kompilierens übernehmen, was zu nicht aktuellen Angaben führen würde.
Damit das aktuelle Datum und die Uhrzeit auch im Node Red Dashboard eingesehen werden können, wurden zwei Topics angelegt, deren Werte an das Dashboard übermittelt werden. In Abbildung 1 ist das Flowchart in Node Red zu sehen.
In Abbildung 2 ist der Mikrocontroller mit dem RTC-Shield hinter dem OLED-Display zu sehen. Das OLED-Display zeigt, wie gewollt, das aktuelle Datum, die Uhrzeit, sowie den Wochentag an.
Die Werte werden auch in das Node Red Dashboard übertragen, wie in Abbildung 3 gezeigt ist. Das Dashboar lässt sich dank der verwendeten Node Red Instanz der Uni Oldenburg ganz flexibel sowohl auf dem Computer als auch auf einem mobilen Endgerät abrufen.
Der kommentierte Code ist hier zu finden: Zum Code.
Ressourcen
Die Beiträge unter den folgenden Links wurden als Inspirations- und Informationsquellen genutzt.
https://learn.adafruit.com/adafruit-data-logger-shield/using-the-real-time-clock
https://forum.arduino.cc/t/wemos-d1-mini-pro-mit-sd-shield-und-rtc/541071
Arduino real time clock with temperature monitor using DS3231 and SSD1306