Hallo,
ich habe mir zum Testen mit Blockly eine Programm zusammengebastelt, dass die einzelnen Werte des Sensors ausließt. Temperatur, Druck und Luftfeuchtigkeit schwanken und erscheinen realistisch. Aber die Werte von IAQ, CO2 und VOC sind auch über Tage hinweg immer konstant. IAQ bei 25, CO2 immer 500 und VOC bei 0,5.
Hat jemand eine Idee, woran das liegen könnte?
Hi @Philipp2p,
das sollte eigentlich nur am Anfang so sein. Der IAQ, eCO2 und VOC Wert werden über die Bosch Bsec Library (https://github.com/BoschSensortec/BSEC-Arduino-library) berechnet. Um die korrekte Berechnung durchzuführen muss zuerst über einen längeren Zeitraum das Messgerät in einer konstanten Umgebung laufen.
Der Kalibrierungswert, den man auch über Blockly auslesen kann, gibt Infos darüber in welchem Status sich der Sensor gerade befindet. Hier ein Ausschnitt zur Erklärung aus dem IAQ Projekt (https://sensebox.de/projects/de/2020-04-05-innenraumluftqualitaet-station#kalibrierungswert):
Kalibrierungswert
Um zuverlässige Messwerte zu liefern kalibriert sich der Sensor anhand der Umgebungsluft selbst. Der Status wird jeweils über den Kalibrierungswert angezeigt. Daher ist es sinnvoll diesen auch auf dem Display anzeigen zulassen, sodass man sehen kann ob die Kalibrierung abgeschlossen ist und die Messwerte verwendet werden können. Wenn der Sensor nicht kalibriert ist oder sich gerade kalibriert werden Messwerte ausgegeben, die allerdings nicht verwendet werden sollten. Folgende Werte für den Kalibrierungswert gibt es:
- 0: Der Sensor ist gerade gestartet und befindet sich in der Warm Up Phase
- 1: Die bisheringen Messwerte zeigen zu wenig Unterschiede und können nicht zum Kalibrieren verwendet werden.
- 2: Der Sensor wird kalibriert
- 3: Die Kalibrierung des Sensor ist abgeschlossen
Der Kalibrierungsvorgang kann unter Umständen lange dauern (>12h) und zeigt dann den Wert 1 an. Sollte nach dieser Zeit die Kalibrierung nicht starten oder abgeschlossen sein, kann es hilfreich sein, die Umgebungsparameter zu verändert z.B. durch stoßartiges Lüften im Raum oder den Sensor für eine gewissen Zeit in der Hand halten.
Mehr Informationen zur Funktionsweise des Sensor findest du auch hier
Lässt du dir die Messwerte nur auf dem Display anzeigen oder überträgst du diese auch noch an die openSenseMap oder ähnliches?
Viele Grüße
Mario
Hallo @Mario,
ich hatte auch erwartet, dass sich der Sensor im Laufe der Zeit kalibriert. Aber auch über 90 Stunden hat sich nichts an den Werten geändert. Die Werte hatte ich minütlich auf einer SD gespeichert. Leider habe ich den Kalibrierungswert nicht mit gespeichert, weil ich nicht an die Notwendigkeit der Fehleranalyse gedacht hatte.
Versuchsweise hatte ich das Programm, das Jan hier (BME680 falsche Werte bei Temperatur und Druck) gepostet hat, mal laufen lassen. Dabei wurden durchaus unterschiedliche Werte für den Sensorwiderstand angezeigt. Aus diesem berechnen sich doch IAQ, eCO2 und VOC, oder? Schon komisch, dass sie mit dem Blockly Programm dann immer gleich sind, kalibrierung hin oder her. Oder ist Blockly so eingestellt, dass es einfach 500 ppm für CO2 ausgibt, solange die Kalibrierung noch nicht abgeschlossen ist
Viele Grüße
Philipp
Hi @Philipp2p,
der Kalibrierungswert sollte immer mit ausgelesen und gespeichert werden. Kannst du mal das Programm aus dem IAQ Projekt versuchen?
Wenn der Sensor über einen längeren Zeitraum den Kalibrierungswert 1 anzeigt hilft es den Sensor einmal ans Fenster zu legen und dieses zu öffnen oder alternativ den Sensor in der Hand zu halten. Der Kalibrierungswert sollte dann kurze Zeit auf 2 umspringen und anschließend auf 3 stehen. Erst wenn der Kalibrierungswert auf 3 ist sind die Messwerte für IAQ, VOC und eCO2 zu gebrauchen.
Den Code, den Jan dort verwendet hatte, verwendet die Adafruit BME680 Library. Die ist leider quasi für nix zu gebrauchen, da nur der reine Widerstandswert ausgelesen werden kann.
In Blockly wird ausschließlich die Bosch BSEC Library verwendet und wenn der Sensor nicht kalibriert ist wird dort halt 25 bzw 500 ausgegeben.
Beste Grüße
Mario
Hallo @mario,
mit dem Programm aus dem IAQ-Projekt hat er schon nach einer Minute angefangen andere Werte für IAQ, eCO2 und VOC anzuzeigen. Der relevante Unterschied war, dass ich meinen Sensor nur alle 10 Sekunden abgefragt habe, wenn auch die Werte auf dem Display aktualisiert wurden. In dem Projekt wurde der Sensor jedoch unabhängig von der Anzeige laufend im Hintergrund abgefragt. Nachdem ich mein Programm entsprechend geändert habe, wurden auch dort bald andere Werte angezeigt. Offensichtlich hatte ich in 90 Stunden noch nicht genug Abfragen am Sensor, um den Zustand der Kalibrierung von 0 auf 1 zu ändern
Danke!
Viele Grüße
Philipp