Überwachung der Kohlendioxid-Konzentration

Beim Atmen wandeln Menschen und Tiere eingeatmeten Sauerstoff und im Körper gespeicherten Kohlenstoff in Kohlendioxid um. Daher hat die ausgeatmete Luft eine höhere CO2-Konzentration als die eingeatmete. Das ist ein ganz normaler biologischer Prozess. Im Freien ist das völlig unkritisch, da Pflanzen genau das Gegenteil tun und die CO2-Konzentration damit stabil bleibt (wir vergessen hier mal die Erhöhung der CO2-Konzentration durch das Verbrennen fossiler Brennstoffe).
In geschlossenen Räumen kann sich die CO2-Konzentration allerdings schon deutlich erhöhen. Gerade modernere Gebäude ohne Lüftungssystem sind da recht problematisch. Daher ist es hier keine schlechte Idee, die CO2-Konzentration zu messen um ggf. stärker zu lüften.

Im Freien liegt die CO2-Konzentration in der Regel zwischen 250 und 350 ppm (parts per million – CO2 Anteil pro 1 Million), in Innenräumen kann die Konzentration recht schnell auf mehrere tausend PPM steigen (1000 ppm entsprechen dann 0.1% CO2 Anteil). In diesem englischsprachigen Dokument kann man gut sehen, dass CO2-Konzentrationen über 1000ppm zu Müdigkeit, schlechter Konzentration, erhöhtem Puls und anderen unerwünschten Nebenwirkungen führen kann.

Eine einfache Methode zur Messung von CO2 sind sogenannte An easy method to monitor CO2 levels are nichtdispersive Infrarotsensoren. Um diese an einem PC or Raspberry Pi zu nutzen, ist es am einfachsten, einen Sensor mit einer seriellen Schnittstelle zu wählen. Der MH-Z19 ist dafür eine gute Wahl. Er ist recht günstig, bietet eine serielle Schnittstelle und läuft mit einer Betriebsspannung von 3.3V. Damit kann er direkt an einen Raspberry Pi angeschlossen werden bzw. mit einem einfachen Konverter auch an PC oder Mac.

Schaut man von unten auf den Sensor, so sieht man die folgenden Anschlüsse:

hmz19-pinout

Der Pinabstand beträgt 2.54mm, damit kann man ganz einfach entsprechende Header anlöten:

co2sensor_pins

Nun lässt sich der Sensor einfach mit Kabeln mit z.B. an einen Raspberry Pi anstecken::

co2sensor_cables

Verbinden mit dem Raspberry Pi

Der Sensor kann direkt an einige Pins des 40-poligen GPIO-Anschlusses angesteckt werden:

Funktion Pin MH-Z19 Pin RPI
VCC 6 1
GND 7 6
RX 2 8
TX 3 10

Anschluss an PC und Mac

Um den Sensor an PC oder Mac anzuschliessen, wird zusätzlich ein kleiner USB/seriell Adapter benötigt:

usbser1

Für diese Konverter gibt es keine standardisierten Anschlüsse. Daher muss man hier schauen, wie der Konverter belegt ist. Dann verbindet man den Sensor wie folgt: VCC auf 3.3V, TX auf RX, RX auf TX und GND auf GND.

Software

Der Sensor ist recht einfach mit einem eigenen Programm auszulesen. Allerdings geht es auch komplett ohne Programmierung. Am einfachsten geht das mit Home Assistant, denn hierfür haben wir bereits ein Modul entwickelt. Dieses muss nur in der Konfiguration aktiviert werden:

sensor 3:
  platform: mhz19
  serial_device: /dev/serial0

Wer selst etwas programmieren will, kann z.B unsere pmsensor Bibliothek nutzen, die diesen Sensor auch direkt unterstützt.

12 thoughts on “Überwachung der Kohlendioxid-Konzentration”

    1. Unfortunately I can’t say this as I don’t have a calibrated device to compare. However, approximately 400ppm CO2 outside levels seems to be quite accurate.

  1. i want to monitor CO2 levels on homeassistant, all i need is type the characters below in configration.yaml ?
    sensor 3:
    platform: mhz19
    serial_device: /dev/serial0
    but it does not works~
    is there any help ? ~thanks~

  2. I just realised that your wiring is wrong. The input voltage should be 5V according to the datasheet of the MH-Z19 (section 7.2)
    http://www.winsen-sensor.com/d/files/PDF/Infrared%20Gas%20Sensor/NDIR%20CO2%20SENSOR/MH-Z19%20CO2%20Ver1.0.pdf
    Therefore it should be connected to pin 2 or 4 on the Raspberry Pi
    I got way too high readings on 3.3V which makes sense as the LED inside is less bright at lower voltage and the sensor thinks all the light got absorbed by CO2.

  3. I have installed hass.io on my raspberry 3 and enabled the sensor as described above, however I am getting this error:

    Could not open serial connection to /dev/serial0 ([Errno 2] could not open port /dev/serial0: [Errno 2] No such file or directory: ‘/dev/serial0’)
    23:50 components/sensor/mhz19.py (ERROR)

    Any idea how to fix this?

  4. I tried to set this up and I cannot get it to work. Not sure why and could not find anyone else with this issue. Where would I go to get help?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.