Dieses Repository beinhaltet eine alternative Firmware für die Watterott CO2 Ampel Plus, welche die Messwerte der CO2 Ampel über WiFi mit Hilfe von MQTT an ein zentrales Monitoring versenden kann. Außerdem verfügt die Firmware über ein kleines Webinterface, welches die gemessenen Daten in Form von Text und einer kleinen Ampel Grafik anzeigt.
Die Ampel bietet zu Zeit drei unterschiedliche Möglichkeiten der Daten Bereitstellung.
- MQTT
- Web (HTML)
- Web (JSON)
Die Daten können an einen MQTT Server versendet werden. Siehe "MQTT Einrichten".
Nach der Einrichtung der WiFi Verbindung kann über die IP Adresse das Benutzer Interface der Ampel aufgerufen werden. Siehe "WiFi Einrichten"
Die Daten der Ampel können zusätzlich zu den beiden bereits genannten Methoden über eine JSON Route abgerufen werden.
http://[ampel_IP]/status.json
Das zurückgelieferte JSON Objekt ist recht simpel und sieht wie folgt aus:
{
"co2": "967",
"temp":" 12.98 ",
"hum":"73.25",
"lux":"1024",
"mqtt": "1",
"firmware":"v3.0.0"
}
Die Ampel verfügt über zwei Tasten. Die von der USB Buchse aus links gelegene Taste ist der Reset Taster, die rechte die Mode Taste. Die weiteren Funktionen sind im folgenden näher beschrieben.
Prinzipiell gibt es folgende Tastenkombinationen:
- Reset 1x drücken: Reboot
- Reset 2x drücken: Boot into USB-Storage flash mode
- Reset drücken während Mode gehalten wird: Factory Reset
- Mode lange halten: AP Konfigurationsmodus starten
- Mode 1x drücken: Buzzer toggeln
- Mode 2x drücken: Self-Calibration ausschalten
- Mode 3x drücken: Self-Calibration einschalten
- Mode 4x drücken: Force-Re-Calibration ermöglichen
Nachdem Einschalten leuchtet die Ampel zunächst weiß. Zu diesem Zeitpunkt wird unter anderem der CO2 Sensor initialisiert. Sobald die LEDs von weiß auf Grün, Gelb, Rot oder Rot blinken wechseln, befindet sich die Ampel im Normalbetrieb und zeigt den aktuellen CO2 Status an.
Diverse LED Muster zeigen Fehlermeldungen an. Hierzu näheres im Abschnitt LED Fehlercodes.
Um die Ampel an das WLAN anzubinden, muss die Ampel zunächst dafür konfiguriert werden. Dies erreicht man, indem man die Ampel in den AP (Access Point) Modus versetzt. Dazu startet man die Ampel. Sobald die Ampel im Normalbetrieb ist, drückt man den Mode Taster für mind. 3 Sekunden. Die Ampel wechselt in den AP Modus. Dies wird durch ein dauerhaftes blaues Leuchten quittiert.
Anschließend öffnet die Ampel einen Access Point. Unter den vom Rechner gefundenen WLAN Netzen erscheint ein Netz mit dem Namen "CO2 Ampel xx:yy". Wobei xx:yy für jede Ampel unterschiedlich sein kann.
Mit diesem Netz verbindet man den Rechner. Bei der Passwort-Abfrage gibt man als Passwort co2admin
ein (sofern das Passwort nicht bereits geändert wurde).
Wenn der Rechner mit dem Netz der Ampel verbunden ist, kann man mit dem Browser über die Adresse http://192.168.1.1
die Einstellungen der Ampel erreichen.
Hier genügt es, die SSID und das Passwort für das eigene WLAN einzutragen und anschließend zu speichern. Die Ampel startet dann neu und wird mit dem Heimnetz verbunden. Die IP Adresse der Ampel kann man zum Beispiel über den Router herausfinden, oder über einen IP Scanner wie z.B. https://www.advanced-ip-scanner.com/de/ (Mac Benutzer können LanScan verwenden.)
Die so gefundene IP kann verwendet werden, um den Status der Ampel auch über einen Webbrowser einsehen zu können. Hierzu gibt man in der Adressleiste des Browsers die Adresse http://<ip_der_ampel>
ein. Anschließend erscheint das Webinterface der Ampel.
Die Einstellungen können jederzeit wieder verändert werden, indem man die Ampel wieder in den AP Modus versetzt.
Möchte man ein erweitertes Monitoring, so kann man dies erreichen, indem man das CO2 Monitoring Projekt für die Ampel einrichtet.
In der Ampel muss dazu jedoch eine MQTT Broker Verbindung eingerichtet werden. Hierzu trägt man im AP Mode die MQTT Broker IP ein. Die IP Adresse muss die gleiche, sein unter welcher das oben verlinkte Projekt eingerichtet wurde. Nachdem man die Ampel neu startet, verbindet sich die Ampel zusätzlich über das WLAN Netz mit dem MQTT Broker und beginnt, Status Daten an diesen zu übermitteln.
Diese Daten können dann bequem über das oben stehende Projekt mittels Grafana ausgewertet werden.
Die Ampel kann auf die Standard Werte zurückgesetzt werden, indem man den Mode Taster gedrückt hält, während man über den Reset Taster einmal kurz betätigt. (Alternativ kann man auch die Spannungsversorgung vom Gerät trennen und bei gedrücktem Mode Taster wieder einstecken). Ein kurzes rotes Aufblinken vor dem Normalbetrieb zeigt an, dass die Ampel erfolgreich zurückgesetzt wurde.
Mit einem einfachen Druck des Mode-Taster wird der Buzzer ein bzw ausgeschalten. Nach dem Druck ertönt kurz der Buzzer, dann wechselt die eizeln gelb leuchtende LED zur Bestätigung auf violett.
Ist der Buzzer danach aus, ertönt noch einmal der Buzzer (insgesammt also 2x).
Ist de Buzzer danach ein, ertönt noch zweimal der Buzzer (insgesammt also 3x).
- Warten bis die Temperaturmessung des CO2-Sensor stabil konvergiert. Zumindest 15 Minuten seit dem Anstecken vergehen lassen.
- Die aktuelle Raumtemperatur mit einem vertrauenswürdigen Thermometer messen.
- Die aktuelle Raumtermperatur mittels MQTT an den Sensor senden.
Im Beispiel ist die Raumtemperatur mit 23.5°C gemessen worden.
MQTT Command: {"temperature_calibrate_set_current_roomtemp": 23.5}
an topic e.g. sensors/CO2Ampel/set
Sollte so gut wie nie nötig sein. Im Zweifelsfall unterlassen da der Sensor vorkalibriert ausgeliefert wird. Der Sensor ist jedoch stoßempfindlich, was manchmal trotzallem eine Nachkalibration nötig macht.
Es gibt zwei Möglichkeiten:
- ASC - Auto-Self-Calibration einschalten.
- FRC - Force ReCalibration verwenden, wenn der aktuelle CO2 Wert bekannt ist. (z.b. durch ein genaues CO2-Referenz-messgerät)
Die Empfehlung ist, erst ASC auszuprobieren, bevor FRC genutzt wird, da ASC auf der genaueren Fabrikskalibration aufbaut, während FRC diese überschreibt.
Für ASC muss der Sensor über einen Zeitraum von mindestens 7 Tagen regelmäßig für eine gewisse Zeit mit Frischluft in Kontakt kommen. Empfohlen ist 1 Stunde pro Tag für mindestens 7 Tage.
Wird in dieser Zeit die Stromversorgung unterbrochen, startet die Kalbrierung von vorne und es werden erneut mindestens 7 Tage benötigt.
Bis eine ASC Kalibrierung abgeschlossen ist, werden die Kalibrierungswerte der letzten ASC verwendet.
Um ASC Einzuschalten, drücke den MODE-Taster 3x bis die dritte LED Gelb leuchtet. Als Bestätigung für den gewählten Modus schalten die LEDs auf Violett und blinken dann Hellgrün.
Um ASC Auszuschalten, drücke den MODE-Taster 2x bis die zweite LED Gelb leuchtet. Zur Bestätigung für den gewählten Modus schalten die LEDs auf Violett und blinken dann Dunkelgrün.
ASC kann auch via MQTT ein- bzw ausgeschalten werden:
Via MQTT senden: {"asc_enabled": true}
bzw {"asc_enabled": false}
an topic e.g. sensors/CO2Ampel/set
- Das CO2-Referenzgerät (notfalls einen zweiten SC30) neben den Sensor stellen.
- Warten bis die CO2 Werte für zumindest 3 Minuten stabil sind. Atmen und Bewegung im Raum sind nicht hilfreich. Ein abgeschlossener Behälter für beide Geräte schon.
- MODE-Taster 4x drücken, bis die vierte LED Gelb leuchtet. Zur Bestätigung für den gewählten Modus schalten die LEDs auf Violett und blinken dann Gelb.
- CO2-Wert des Referenzgerätes ablesen. Gesetzt werden können nur Referenzwerte zwischen 400 und 2000 ppm.
- Innerhalb von 2 Minuten, den aktuellen CO2-Wert via MQTT setzten:
{"force_recalibrate_co2": <integer-ppm-wert>}
. Achtung: überschreibt Fabrikskalibration. - Der Sensor prüft nun für 2 Minuten ob der aktuelle CO2-Wert stabil bleibt. Dann wird die neue Messreferenz im Sensor fix abgespeichert.
Die wirklich Verzweifelten, welche auf Messgenauigkeit keinen so hohen Wert legen, können den Sensor für 2min mit Akkupack an die frische Luft in WLAN Nähe legen, und dann den Sensor auf 400ppm (Frischluft) zwangskalibrieren.
Um eine neue Ampel Firmware zu installieren, muss die Ampel in den Massenspeicher Modus versetzt werden. Dies kann man erreichen, indem man den Reset Taster (linker Taster) zweimal kurz hintereinander drückt. Die Ampel meldet sich ähnlich wie ein USB Stick als neues Laufwerk am Rechner an.
Um die neue Firmware zu installieren, kopiert man einfach die entsprechende entsprechende Firmware Datei auf dieses Laufwerk. Die Ampel installiert dann vollautomatisch die neue Firmware und startet neu.
Achtung: bei der Installation einer neuen Firmware gehen die vorgenommenen Einstellungen (wie z.B. WiFi SSID und Passwort) verloren und müssen neu gesetzt werden.
Die Firmware Releases findet man hier.
Um die Ampel mit der Arduino IDE kompilieren zu können, empfiehlt es sich, das passende Board Support Package für die Ampel zu installieren. Hierzu fügt man einfach über Datei -> Einstellungen (bei MacOS: Arduino -> Einstellungen) die folgende Zeile
https://github.com/watterott/CO2-Ampel/raw/master/package_co2ampel_index.json
hinzu.
Anschließend kann das CO2 Ampel Board über den Arduino Board Manager installiert werden (Werkzeuge -> Board -> Boardverwalter).
Als Board wählt man dann "CO2 Ampel" aus. Wenn die im nächsten Abschnitt aufgelisteten Bibliotheken installiert sind, lässt sich der Quellcode kompilieren.
Die "Arduino SAMD Boards" müssen ebenfalls installiert sein.
Die folgenden zusätzlichen Bibliotheken werden zum Kompilieren des Projekts benötigt:
welche über den Bibliotheksmanager (Werkzeuge -> Bibliotheken verwalten) installiert werden können.
Die meisten Einstellungen wie Schwellwerte für die Ampel sowie Standard-Einstellungen finden sich in der Datei Config.h
wieder.
Mode-Knopf wurde ein, zwei, drei oder viermal gedrückt um die entsprechende Funktion zu selektieren.
Bestätigung dass die mittels Mode-Knopf selektierte Funktion ausgewählt wurde.
Access-Point Konfigurations Modus aktiv.
CO2 Sensor noch nicht initialisiert.
Ein Fehler beim Aufbau des Access Points im AP Modus ist aufgetreten. In der Regel hilft ein einfaches Neustarten der Ampel. Anschließend kann man erneut versuchen, den Access Point Modus zu starten.
Es kann jedoch auch bedeuten, dass die Ampel die WLAN Verbindung verloren hat. In diesem Fall laufen die Messungen auf der Ampel weiter, jedoch taucht zwischendurch immer wieder blaues Blinken auf. In diesem Fall sollte die WLAN Verbindung überprüft werden.
Der CO2 Sensor wurde nicht erkannt oder konnte nicht initialisiert werden. Hier kann ein Neustart durch Reset helfen. Sollte der Fehler nicht verschwinden, so kann es sich auch um einen Defekt am CO2 Sensor handeln.