Zunächst wurde sich ein Überblick über die Funktionalitäten der Bibliothek Adafruit_Neopixel mithilfe der in der Bibliothek enthaltenen Beispielcodes verschafft. 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.
Da es sich bei der LED um eine RGB LED handelt, sind die Farben Rot, Grün und Blau wichtige Parameter, die kombiniert, sämtliche andere Farben abbilden können. Um diese Anzusteuern wurde der Topic ‚led‘ mit vier Untertopics ‚red‘, ‚green‘, ‚blue‘ erstellt. Die Topics sollen dazu dienen, an die LED Einstellungen zu schicken, die im Node Red Dashboard in Form von kodierten ‚Messages‘ zu schicken. An die Topics ‚led/red‘, ‚led/green‘ und ‚led/blue‘ werden einfache Int-Werte zwischen 0 und 255 verschickt, die über einen Schieberegler im Dashboard eingestellt werden können (Abb. 1). Zusätzlich dazu sollte es die Möglichkeit geben eine Farbe direkt mithilfe des Color-Pickers auszusuchen. Dazu wurde zusätzlich der Topic ‚led/farbauswahl‘ erstellt. Der im Color-Picker ausgewählte Farbwert wird im Hex-Format kodiert und an das Topic gesendet. Um den Wert im Code weiterverwenden zu können wird der Hex-Wert mithilfe einer Methode in ein GRB-Format umgewandelt.
Die Umsetzung dieser Funktion mithilfe von Node Red ist in Abbildung 2 zu sehen. Die Schieberegler mit den Bezeichnungen ‚Rot‘, ‚Grün‘ und ‚Blau‘ und der Color-Picker ‚Farbauswahl‘ sind jeweils über den MQTT Broker mit ihren Topics verbunden und können die im Dashboard eingegebenen Daten an den Code senden, indem sie dazu benutzt werden die LED in den eingestellten Farben leuchten zu lassen.
In Abbildung 3 ist die Ansicht des Node Red Dashboards auf dem Handy in der App Remote RED zu sehen.
Kurze Demonstration der Funktionalität
Im Video wird eine kurze Demonstration der Funktionalität des Codes in Verbindung mit der Hardware gezeigt. Es kann beobachtet werden, dass sich die Farbe der LED mithilfe der Einstellungen im Node Red Dashboard ändern lässt.
Der kommentierte Code kann hier eingesehen werden: Zum Code.