You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Gerade in Corona-Zeiten sind CO2-Ampeln zur Messung des Kohlenstoffdioxid-Werts der Luft und zur Darstellung der gemessenen Luftqualität in aller Munde. 

Ideal für Räume, in denen sich längere Zeit mehrere Menschen aufhalten (z.B. auch in Schulen / Klassenzimmern), dabei natürlich ausatmen und es so zu einer Kohlendioxid-Belastung der Raumluft kommen kann. 

Der Sensor misst den CO2-Wert überträgt diesen und das Ergebnis wird dann z.B. in einer Ampel angezeigt. Zum Beispiel, dass dringend gelüftet werden muss. 

Auch wir haben uns an den Bau eines ersten Exemplars gewagt...


    


Sensor

Wir verwenden den MHZ-19Beinen Sensor zur Messung des CO2-Gehalts der Luft und der Temperatur.

Die CO2-Messung basiert auf dem sogenannten nichtdispersiven Infrarotprinzip (NDIR), dabei wird ein Infrarotlichtstrahl durch eine mit der zu messenden Luft gefüllten Glasröhre geschickt.
Ein spezieller Infrarotsensor misst am anderen Ende, wie viel Licht vom CO2 absorbiert wurde, indem die Differenz des einfallenden mit dem austretenden Licht gebildet wird.
Quelle

Weitere Infos zum MHZ-19B: Intelligent Infrared CO2 Module - (Model: MH-Z19B) - UserManual (PDF-Datei) beim Hersteller. 

Wir haben uns für diesen Sensor entschieden, da er für seine Art extrem preisgünstig zu beziehen ist und nicht für einen VOC-Sensor (volatile organic compounds), wie z.B. den BME680. 

Das NDIR-Verfahren, welches der MHZ-19B nutzt, scheint uns selektiver für die CO2-Messung zu sein. 



Messung

Die Messung beginnt nach einer Aufheiz-Phase von cirka 3 Minuten und findet dann periodisch alle 2 Minuten statt. 

Der Sensor liefert das Ergebnis sowohl als PWM-Signal, als auch über eine UART-Schnittstelle mit 9.600 Baud. 

Da auch die Temperatur gemessen wird, kann der Sensor intern die gemessenen CO2-Werte kompensieren - Temperaturkompensation (bei unterschiedlichen Temperaturen müssen anscheinend die Roh-Werte des Sensors intern umgerechnet werden). Das Ergebnis ist ein Wert in PPM (parts per million), der sich zwischen 400 und 5.000 bewegen kann. 

Um die 400 ist hier der Normal-Wert im Freien, sozusagen also der Ausgangswert / der "Gut"-Wert. 

Im ersten Prototyp haben wir auch einen kleinen Lüfter ins Sensor-Gehäuse integriert, um gezielt die Luft austauschen zu können. Der Lüfter ist vom IoT-Controller steuerbar. 

Übertragung

Die Übertragung nutzt in unserem ersten Prototypen das MQTT-Protokoll und wird mittels 🦉Heinrich "Hotti" Hottareks  IoT-Controller (ESP8266) realisiert. 

Dazu wurden beide Schnittstellen (UART + PWM) des Sensors an den Controller angeschlossen. Die Messwerte werden dann mit Node-RED und einem entsprechendem flow verarbeitet und an die ebenfalls per MQTT verbundene LED-Ampel weitergegeben. 

Der flow kommuniziert auch via MQTT zurück an den Sensor und kann den dort angeschlossenen kleinen Lüfter aktivieren und steuern. 

Messwert-Analyse

Die Messwert-Analyse geschieht im Node-RED-flow - ein Funktions-Node setzt den ppm-Wert in eine entsprechende Ampelfarbe um und schickt den Befehl über MQTT an die LED-Ampel. 

Grösste Herausforderung war hier Einschätzung, der gelieferten Werte. Wann ist die Luft noch okay, wann muss gelüftet werden und wann sollten alle den Atem anhalten und schnell den Raum verlassen (wink)

Gemäß der Tabelle des Bundesumweltamtes:  Gesundheitliche Bewertung von Kohlendioxid in der Innenraumluft (PDF-Datei)  haben wir uns für folgende Schwellwerte entschieden: 

  • 400 - 700 ppm = grün (tick)
  • 700 - 1.000 ppm = gelb (warning)
  • 1.000 - 2.000 ppm = rot (error) 
  • über 2.000 ppm = rot-blinkend (minus) 


Die ersten Versuche habe gezeigt, dass die Messwerte auch gerne mal um einen Schwellwert herum schwanken und dann zu einem mehrfachen, kurzfristigen Wechsel der Ampel-Anzeige führen.
Daher haben wir eine Hysterese-Funktion implementiert, die dieses Verhalten korrigiert. Meint: ein Wechsel der Anzeige findet nur statt, wenn der Schwellwert in die entsprechende Richtung um mindestens 50 über- bzw. unterschritten wird. So wird ein häufiger Wechsel der Anzeige verhindert. 

Lüfter

Eine weitere Herausforderung war die Frage, wie der Sensor zu neuer Messluft kommt, also wie der zusätzlich eingebaute Lüfter gesteuert werden muss, um vernünftige Werte zu erhalten. 

Erkenntnisse hierbei:
dauerhaftes laufen des Lüfters erzeugt noisy / springende Werte, welche nicht wirklich zu gebrauchen sind. Ein periodisches lüften asynchron zum Messzeitpunkt liefert hier auch keine zuverlässigen Werte - es gibt ab und zu mal Ausreißer. Letztendlich hat eine kurze Lüfteraktivierung für 0,2 Sekunden unmittelbar nach der Messwerterfassung die besten und konstanten Ergebnisse gebracht. Dieser kurze Lüfterlauf reicht für einen Luftaustausch in dem kleinen Gehäuse und ist - erfreulicherweise - auch akustisch nicht wahrnehmbar. 


Gehäuse Sensor



Schnittdatei: 


Gehäuse Ampel



 

 


 


Schnittdatei: 






  • No labels