Softwareentwicklung

Beschreibung der Softwareentwicklung

Der Grundbaustein für die Programmierung des Luftqualitätssensors (CCS811) war ein Testprogramm. Das Testprogramm hat im seriellen Monitor die gemessenen Werte ausgegeben.

Nachdem das Programm zum ersten Mal auf den Sensor gespielt wurde, musste der Sensor zum einbrennen eine halbe Stunde an der frischen Luft sein um Referenzwerte zu bilden.

Ein einfaches anatmen hat schon gezeigt, dass der Sensor funktioniert, denn daraufhin haben sich die CO2 Werte drastisch verändert.
Danach wurde ein MQTT Beispielprogramm genommen und umgeschrieben um die gemessenen Werte an die Topics G05/airsensor/co2 und G05/airsensor/tvoc zu publishen.
Es wurde also der Testcode mit dem MQTT Beispielprogramm vereint und in NodeRED überprüft.
Die Funktion des OLED Shields wurde anhand eines Testprogramms überprüft. Für dieses Testprogramm wurden zwei zusätzliche Bibliotheken gebraucht. Nachdem ein Test erfolgreich war wurden die MQTT Topics vom Luftsensor abonniert und interpretiert. Je nach Luftqualität wird ein Smiley ausgegeben und die passenden Werte.

Da der MQ-135 als Rauchmelder aufgrund fehlerhafter Messwerte und Ausgaben nicht funktioniert, wurde das Programm des Mikrocontrollers für das OLEDShield erweitert. Nun wird bei einem CO2 Wert ab 6000 und einem TVOC Wert ab 500 “FEUER!” an G05/ OLEDShield gepublished. Sobald dieses Schlagwort eingeht wird an einen Discord Server gemeldet, dass die Werte zu hoch sind, sodass nun ein Discord Bot eine Nachricht in den dafür vorgesehen Channel schickt. Somit wird der Nutzer auch etwas davon mitbekommen, falls er nicht zuhause sein sollte.

Das OLED Shield zeigt je nach CO2 Wert einen anderen Smiley an:

Abb. 1: Anzeige in Abhängigkeit des CO2-Wertes

Diese Daten haben wir aus der folgenden Tabelle abgeleitet:

Abb. 2: Raumluftqualität in Abhängigkeit vom CO2 Gehalt, https://www.cik-solutions.com/anwendungen/co2-im-innenraum/

Datenstruktur

Abb. 3: Datenstruktur des Projekts

Die Datenstruktur des Projekts besteht aus dem CCS811 Sensor, welcher über einen MQTT-Service, welcher in diesem Fall aus dem IoT-Server des Informatik-Departments der Uni Oldenburg bestand, Daten published. Der OLED-Shield besitzt eine subscription von diesen Daten und zeigt je nach Datensatz eine entsprechende Meldung auf dem Display an.

Außerdem sendet der Shield ab einem gewissen Wert eine Feuer-Meldung über den Broker an eine Node-Red Instanz, welche in diesem Fall auch über den IoT-Server läuft, damit sie permanent an ist. Diese Feuer-Meldung wird dann mit Hilfe eines Discord Bots in einem dafür angelegten Kanal auf einem Discord Server gesendet.

Bei Git ist der gesamte Quellcode zu finden.