Raspberry Pi | Andreas Dumont | 1/2026 | 28. November 2025

Raspberry Pi mit CO2-Sensor

Im Winter ist es wichtig, Wohn- und Arbeitsräume regelmäßig zu lüften. Wer es exakt wissen will, kann mit einer selbst gebastelten Messstation am Raspberry Pi kontrollieren, wann man wieder für Durchzug sorgen sollte.

Raspberry-Zubehör: Der Sensor MH-Z19B misst die Konzentration von CO2. Zur besseren Übersicht sind die Anschlüsse nummeriert.

Ein zuverlässiger Indikator für die Luftqualität in Büros, Klassenzimmern oder im Wohnzimmer ist der CO2-Gehalt. An der frischen Luft liegt die Konzentration von Kohlendioxid bei rund 400 ppm. Das steht für „Parts per million“, in diesem Fall also 400 CO2-Moleküle pro einer Million Luftmoleküle. Das sind zwar nur 0,04 Prozent, hat aber spürbare Auswirkungen. In Innenräumen steigt die Konzentration durch die menschliche Atmung schnell an. Während einer Filmvorführung im Kinosaal sind schnell mehrere Tausend ppm erreicht. Das kann zu Unkonzentriertheit, Müdigkeit und Kopfschmerzen führen. Wann der richtige Zeitpunkt ist, die Fenster zu öffnen, kann eine CO2-Messstation melden. Spätestens ab einem Wert von 1500 ppm ist frische Luft angesagt. Wie so vieles in Deutschland ist auch das genau geregelt. Die Norm DIN EN 13779 und die Nachfolge DIN EN 16798-3 sprechen bei CO2-Konzentrationen von mehr als 1400 ppm von einer „niedrigen Raumluftqualität“.

Die Vorbereitungen treffen

Zunächst benötigen Sie einen Raspberry Pi mit einem halbwegs aktuellen Raspberry-Pi-OS. Welches Raspberry-Modell Sie verwenden, ist egal. Zudem brauchen Sie einen CO2-Sensor. Im Artikel kommt der Sensor MH-Z19B des chinesischen Herstellers Winsen Electronics Technology zum Einsatz. Das Modell MH-Z19C funktioniert analog. Beim Kauf sollte man ein Modell mit Pins wählen, da man andernfalls selbst löten muss. Pins oder Header sind kleine Steckstifte, mit denen Sie den Sensor mit dem Raspberry Pi verbinden. Die Variante mit Headern ist in Shops wie Berrybase (https://b2b.berrybase.de) oder Pimoroni für circa 25 Euro zu haben. 

Schließlich brauchen Sie noch Jumper Wires, zu Deutsch Steckbrückenkabel. Sie benötigen die Variante Female/Female für den Sensor. Ein komplettes Set aus den benötigten Kabeln kostet bei Berrybase 1,60 Euro. Insgesamt bleibt die Investition unter 30 Euro, während professionelle CO2-Messgeräte ein Vielfaches kosten.

Wichtig: Um den Sensor auszulesen, kommuniziert der Raspberry Pi über die serielle Schnittstelle, die standardmäßig deaktiviert ist. Um dies zu ändern, verwenden Sie das Tool raspi-config und dort unter „Interface Options“ den Punkt „Serial Port“.

So funktioniert der Sensor

Der MH-Z19B gehört zu den nicht-dispersiven Infrarotsensoren (NDIR). Diese basieren auf der konzentrationsabhängigen Absorption elektromagnetischer Strahlung im infraroten Wellenlängenbereich. Kohlendioxid absorbiert Infrarotstrahlung auf charakteristische Weise. Die Lichtquelle leitet IR-Strahlung durch die zu messende Luft zum eigentlichen Sensor. An der Vorderseite ist ein Filter angebracht, der die Absorptionswellenlänge des Zielgases durchlässt. Wenn die Konzentration zunimmt, dann erhöht sich die Absorption gemäß dem Lambert-Beerschen Gesetz und das Signal verringert sich entsprechend. Der Sensor ermittelt die resultierende Lichtintensität und rechnet sie in ppm um.

Schaltung aufbauen: Um die Schaltung aufzubauen, fahren Sie den Raspberry Pi zunächst herunter und trennen ihn vom Strom. Dann verbinden Sie die Platine mit dem Sensor. Dazu benötigen Sie vier Jumper Wires Female/Female, also mit Buchsen an beiden Enden. Auf der Unterseite des Sensors sehen Sie, welche Funktion die jeweiligen Anschlüsse haben. Verbinden Sie den Pin 6 des Sensors (mit „VCC“ oder „Vin“ beschriftet) mit Pin 4 auf dem Raspberry Pi. Das ist die Stromversorgung mit fünf Volt. Pin 4 ist auf der rechten Seite der GPIO-Leiste der zweite von oben. Nun verbinden Sie Pin „GND“ (7) auf dem Sensor mit Pin 6 auf der Raspberry-Platine. Das ist der Masseleiter. Er befindet sich direkt unter Pin 4. 

So verbinden Sie den Sensor mit dem Raspberry Pi. Der Sensor ist dabei von der Unterseite zu betrachten.

Die Hälfte ist geschafft, weiter geht es auf der anderen Seite des Sensors, die fünf Anschlüsse hat: Pin „Rx“ (2) auf dem Sensor gilt es mit Pin 8 auf dem Minirechner zu verbinden, direkt unter Pin 6. Schließlich verbinden Sie noch Pin „Tx“ (3) auf dem Sensor mit Pin 10 auf dem Raspberry, direkt unterhalb von Pin 8. Die Abbildung oben zeigt nochmals den kompletten Aufbau. Abschließend starten Sie den Raspberry Pi, indem Sie ihn wieder mit dem Strom verbinden. 

Messwerte auslesen: Der CO2-Sensor ist einsatzbereit. Um den aktuellen CO2-Wert auszulesen, kommt nun ein Python-Script zum Einsatz. Entwickelt hat es ein Japaner – dies nur zur Info, um die Github-Adresse zu erklären. Das Script installieren Sie zusammen mit weiteren Komponenten, indem Sie auf dem Raspberry Pi ein Terminal öffnen und folgenden Befehl eingeben: 

git clone https://github.com/UedaTakeyuki/mh-z19.git

Danach wechseln Sie in den neu entstandenen Ordner „~/mh-z19“ und führen das Installations-Script aus:

./setup.sh

Um den aktuellen CO2-Wert zu ermitteln, verwenden Sie künftig diesen Befehl:

sudo python -m mh_z19

Sie erhalten als Ergebnis etwa „{„co2“: 3128}“. Die Einheit ist ppm. 

Messwerte online: Die Messwerte immer manuell auf dem Raspberry Pi auszulesen, ist lästig und auf Dauer zu mühsam. Besser ist eine Onlinedarstellung der Messwerte über einen bestimmten Zeitraum. Um über den PC oder das Smartphone Zugriff auf den Verlauf der Messwerte zu erhalten, nutzen Sie einen kostenlosen Onlinedienst. Surfen Sie zu der Seite https://monitor3.uedasoft.com und tragen Sie dort eine E-Mail-Adresse und ein Passwort ein, um sich anzumelden. Sie erhalten eine „view_id“, die Sie aber gar nicht benötigen. Klicken Sie auf den Menüpunkt „Elements“. Notieren Sie sich die zweite Buchstabenkombination in der Liste, im Beispiel „prgrvpqg“, und setzen Sie die dazugehörige Option auf „Active“. Ein Klick auf „Save“ schließt die Einrichtung ab. 

Die Messwerte lassen sich automatisch online darstellen und zeigen deutlich den Effekt einer Lüftung.

Nun rufen Sie auf dem Raspberry Pi ein Terminal auf und wechseln wieder in den Ordner „mh-z19“. Dort rufen Sie den Befehl 

./setid.sh [abcdefgh]

auf, wobei Sie die Buchstabenfolge durch die achtstellige Buchstabenkombination ersetzen, die Sie soeben notiert haben. Um zu prüfen, ob alles ordnungsgemäß funktioniert, dient dieser Aufruf:

sudo python -m pondslider

Wenn in der untersten Zeile der Ausgabe das Wort „true“ auftaucht, dann ist alles in Ordnung. Um fortan regelmäßig Messwerte zu erhalten und in die Monitor-App einzutragen, geben Sie abschließend den Befehl

./autostart.sh --on

ein. Im Browser sehen Sie nun, wie das Diagramm auf der Monitor-Seite alle fünf Minuten um einen Messwert anwächst. Die Zahl der dargestellten Messwerte lässt sich direkt darunter über den Button „Settings“ festlegen. Um zehn Stunden abzudecken, benötigen Sie 120 Werte. Mit dem Diagramm sehen Sie auf einen Blick, ob jemand gelüftet hat, während Sie in der Mittagspause oder einkaufen waren. Die Grafik mit den Messwerten lässt sich auch bequem mit dem Smartphone aufrufen und über den Button „Download“ als CSV-Datei herunterladen, um sie in Excel zu analysieren. Nach einem Reboot des Raspberry Pi startet das Script zur Messung automatisch neu. 

Das Konzept lässt sich weiter ausbauen. Mit einer roten LED, einem passenden 330-Ohm-Widerstand und einem leicht modifizierten Python-Script lässt sich eine Schaltung aufbauen, bei der die LED aufleuchtet, sobald der Messwert einen vorgegebenen CO2-Grenzwert überschreitet.