friendica.testitfor.me

Sensor CCS811 am Raspberry Pi

Habe mir letztens beim Kauf von 2 Stück MH-Z19B CO2 Sensoren auch einen CCS811 zugelegt. Ich wollte einfach etwas zum Herumprobieren haben, weil die MH-Z19B Sensoren über die serielle Schnittstelle angeschlossen werden und somit keine echte Herausforderung (für die Objective-C / Objective-S Programmierung) waren. Im Gegensatz zum CCS811, welcher über den I2C Bus angeschlossen wird.

Heute habe ich mich dann etwas eingehender mit dem CCS811 beschäftigt und dabei gelernt, dass er "clock stretching" verwendet, welches der Raspberry nicht unterstützt. Man kann zwar versuchen die I2C Bus Geschwindigkeit auf 10k Bit zu drosseln, aber auch dann gibt es noch keine Garantie, dass es ordentlich funktioniert. Okay, das hätte ich möglicherweise auch bereits beim - oder vor dem - Kauf herausfinden können. Aber wer denkt schon beim Stichwort I2C an clock stretching?

Nun denn, wohl an. Also mittels "bit banging" einen Software I2C Bus emulieren. https://www.ic2-bus.org/ habe ich schon entdeckt. Ich denke, es wird noch sehr spassig werden.

Mal schnell eben ein paar Temperaturen anzeigen

Von #Node-RED bin ich ein weiteres Mal positiv überrascht worden. Als Software-Entwickler mit Java, Typescript und Javascript habe ich eher mit Quelltext zu tun. Node-RED schafft es aber tatsächlich, mit einer guten Kombination aus UI (aka Elemente durch klicken auswählen und mittels Klick miteinander zu verknüpfen) und gezielt eingesetzten Javascript Quelltext (beim speziellen Zusammenstellen der Nachrichten) in recht kurzer Zeit brauchbare Ergebnisse zu liefern.

Die heutige Herausforderung war in aller Kürze, ein paar Temperatursensoren die kurzfristig von der Bewässerungsanlage abgezogen wurden, zu visualisieren. Die Temperatursensoren hängen am #Raspberry "A", der sich draussen am Balkon befindet. Dieser schickt die Messwerte mittels #HTTP Post an meinen lokalen Server, der die Werte in einer lokalen #MongoDB abspeichert und sie an den ebenfalls dort laufenden #MQTT Server weiter gibt. Auf Raspberry "B" hab ich nun Node-RED installiert und den Flow definiert. Für die Visualisierung hab ich dann noch zusätzlich das Node-RED Plugin #node-red-dashboard installiert. Warum das "so kompliziert" ist, werde ich in einem späteren Post beschreiben.

Der Flow ist eigentlich ganz simpel. Mittels MQTT werden die Messwerte geliefert. Die Temperatursensoren werden herausgefiltert und dann für das Dashboard aufbereitet. Die vier Sensoren sollten in einem Diagramm ihre Werte darstellen. Dazu muss das "Chart" (Diagramm-Knoten) mit den Einzelwerten gefüllt werden und zwar so, dass jeder Temperaturwert immer beim gleichen Sensor angezeigt wird.

Ein Flow sieht ungefähr so aus:


Den kann man sicher noch optimieren, im Sinne von besser strukturieren, aber fürs Erste hat es heute mal gereicht.

Ein paar Stunden später sah das dann im Webbrowser so aus:
Later posts Earlier posts