Möchten Sie mit Ihrem Raspberry Pi einen CO₂-Sensor und Luftqualitätsmesser selbst bauen, um die Raumluft einfach und zuverlässig zu überwachen?

Die Luftqualität in Innenräumen gewinnt zunehmend an Bedeutung. Schadstoffe wie Kohlendioxid (CO₂), Feinstaub und flüchtige organische Verbindungen können die Gesundheit beeinträchtigen, die Konzentration verringern und das allgemeine Wohlbefinden mindern.
Eine kostengünstige und flexible Lösung zur Überwachung der Luftqualität bietet der Eigenbau eines CO₂-Sensors und Luftqualitätsmessers auf Basis eines Raspberry Pi. In diesem Artikel erfahren Sie Schritt für Schritt, wie Sie ein solches System aufbauen, welche Komponenten Sie benötigen und wie Sie die Software konfigurieren.
Warum Luftqualität messen?
Die Messung von Luftqualität ist besonders in geschlossenen Räumen wichtig. Hohe CO₂-Konzentrationen führen zu Müdigkeit, Kopfschmerzen und Konzentrationsschwäche. Zusätzlich können andere Schadstoffe wie Feinstaub (PM2,5 und PM10) und flüchtige organische Verbindungen (VOC) die Gesundheit beeinträchtigen. Ein selbst gebauter Luftqualitätsmesser erlaubt es Ihnen, diese Werte in Echtzeit zu überwachen und gegebenenfalls Maßnahmen wie Lüften einzuleiten.
Benötigte Komponenten
Um einen CO₂-Sensor und Luftqualitätsmesser auf einem Raspberry Pi zu realisieren, benötigen Sie folgende Hardware:
- Raspberry Pi: Modell 3B+, 4 oder Zero 2 W
- CO₂-Sensor: MH-Z19 oder SCD30 (beide arbeiten per UART oder I²C)
- Feinstaubsensor: PMS5003 oder SDS011
- Temperatur- und Luftfeuchtigkeitssensor: DHT22 oder BME280
- Verbindungsdrähte: Jumper Kabel (weiblich-männlich)
- Breadboard: Für den Testaufbau
- Gehäuse: Optional für ein fertiges Design
- Micro-SD-Karte: Mindestens 16 GB für das Betriebssystem und Software
Aufbau der Hardware
Schritt 1: Raspberry Pi vorbereiten
- Installieren Sie das aktuelle Raspberry Pi OS auf der Micro-SD-Karte.
- Verbinden Sie den Raspberry Pi mit einem Monitor, einer Tastatur und dem Internet.
- Führen Sie ein Update durch:
sudo apt update
sudo apt upgrade -y
Schritt 2: CO₂-Sensor anschließen
Für den MH-Z19 CO₂-Sensor:
- VCC → 5V am Raspberry Pi
- GND → GND
- TX → GPIO 15 (UART RX)
- RX → GPIO 14 (UART TX)
Bei Nutzung des SCD30 Sensors verbinden Sie ihn über I²C:
- VCC → 3,3V
- GND → GND
- SDA → GPIO 2
- SCL → GPIO 3
Schritt 3: Feinstaubsensor anschließen
Beim PMS5003 oder SDS011:
- VCC → 5V
- GND → GND
- TX → GPIO-Pin nach Wahl (UART RX)
- RX → GPIO-Pin nach Wahl (UART TX)
Schritt 4: Temperatur- und Luftfeuchtigkeitssensor
Für den DHT22:
- VCC → 3,3V oder 5V
- GND → GND
- Datenpin → GPIO 4 (Standard)
BME280:
- VCC → 3,3V
- GND → GND
- SDA → GPIO 2
- SCL → GPIO 3
Schritt 5: Verbindung prüfen
Stellen Sie sicher, dass alle Verbindungen korrekt und fest sind. Lockere Verbindungen führen zu unzuverlässigen Messwerten.
Softwareinstallation
Python vorbereiten
Für die Auswertung der Sensoren verwenden wir Python 3. Installieren Sie die notwendigen Pakete:
sudo apt install python3-pip python3-serial python3-smbus i2c-tools -y
pip3 install adafruit-circuitpython-bme280 adafruit-circuitpython-dht
I²C aktivieren
Wenn Sie einen I²C-Sensor wie BME280 oder SCD30 verwenden:
sudo raspi-config
# Interfacing Options → I2C → Enable
sudo reboot
UART aktivieren
Für MH-Z19 oder PMS5003:
sudo raspi-config
# Interfacing Options → Serial → Disable login shell, Enable hardware serial
sudo reboot
Sensoren testen
MH-Z19 CO₂-Sensor
import serial
ser = serial.Serial("/dev/serial0", baudrate=9600, timeout=1)
ser.write(b"\xFF\x01\x86\x00\x00\x00\x00\x00\x79")
response = ser.read(9)
co2 = response*256 + response
print("CO₂-Konzentration:", co2, "ppm")
BME280
import board
import busio
import adafruit_bme280
i2c = busio.I2C(board.SCL, board.SDA)
sensor = adafruit_bme280.Adafruit_BME280_I2C(i2c)
print("Temperatur:", sensor.temperature, "°C")
print("Luftfeuchtigkeit:", sensor.humidity, "%")
print("Luftdruck:", sensor.pressure, "hPa")
PMS5003
import serial
import struct
ser = serial.Serial("/dev/serial0", baudrate=9600)
data = ser.read(32)
pm25 = struct.unpack(">HHHHHHHHHHHHHH", data)
pm10 = struct.unpack(">HHHHHHHHHHHHHH", data)
print("PM2.5:", pm25, "µg/m³")
print("PM10:", pm10, "µg/m³")
Daten visualisieren
Es ist sinnvoll, die Messdaten zu speichern und darzustellen. Dazu können Sie Matplotlib oder Grafana verwenden.
Matplotlib Beispiel
import matplotlib.pyplot as plt
import time
co2_values =
timestamps =
for _ in range(10):
co2_values.append(get_co2) # Funktion muss MH-Z19 auslesen
timestamps.append(time.strftime("%H:%M:%S"))
time.sleep(60)
plt.plot(timestamps, co2_values, marker="o")
plt.xlabel("Zeit")
plt.ylabel("CO₂ ppm")
plt.title("CO₂-Werte über 10 Minuten")
plt.show
Grafana und InfluxDB
Für langfristige Überwachung:
- Installieren Sie InfluxDB auf dem Raspberry Pi
- Speichern Sie die Sensordaten in der Datenbank
- Visualisieren Sie die Daten in Grafana über Dashboards
Dies ermöglicht eine Echtzeitüberwachung und das Erkennen von Trends.
Automatische Benachrichtigungen
Eine sinnvolle Erweiterung ist das Einrichten von Benachrichtigungen, wenn Grenzwerte überschritten werden:
- CO₂ > 1000 ppm: Lüftung einleiten
- PM2.5 > 25 µg/m³: Luftfilter aktivieren
Dies lässt sich über ein Python-Skript realisieren, das bei Überschreiten der Grenzwerte eine E-Mail oder Push-Nachricht versendet.
import smtplib
from email.message import EmailMessage
def send_alert(value):
msg = EmailMessage
msg.set_content(f"Achtung! CO₂-Wert {value} ppm")
msg = "Luftqualitätswarnung"
msg = "sensor@example.com"
msg = "user@example.com"
with smtplib.SMTP("smtp.example.com", 587) as server:
server.starttls
server.login("sensor@example.com", "password")
server.send_message(msg)
Gehäuse und Montage
Für eine langlebige Nutzung empfiehlt sich ein Gehäuse:
- Achten Sie auf Belüftungsschlitze für genaue Messungen
- Positionieren Sie den Sensor in Augenhöhe oder auf Schreibtischhöhe
- Vermeiden Sie direkte Nähe zu Heizungen oder Klimaanlagen
Tipps für präzise Messungen
- Sensoren vor der ersten Nutzung kalibrieren
- CO₂-Sensoren benötigen oft eine automatische Nullpunktkalibrierung
- Feinstaubsensoren sollten regelmäßig gereinigt werden
- Lange Leitungen können Signalstörungen verursachen – möglichst kurze Kabel verwenden
Erweiterungsmöglichkeiten
- Mehrere Sensoren vernetzen: Raspberry Pi kann Daten von mehreren Räumen sammeln
- Integration in Smart-Home-Systeme: z. B. Home Assistant
- Datenanalyse: Langfristige Trends erkennen und Luftfilter effizient steuern
- Web-Interface: Dashboard mit Echtzeitwerten über Flask oder Node-RED
Fazit
Ein selbst gebauter CO₂-Sensor und Luftqualitätsmesser auf Basis eines Raspberry Pi ist eine kostengünstige, flexible und lehrreiche Lösung, um die Luftqualität in Innenräumen zu überwachen. Mit den richtigen Sensoren, einer sorgfältigen Kalibrierung und der passenden Software lassen sich CO₂, Feinstaub und Luftfeuchtigkeit präzise messen.
Durch Visualisierung und Benachrichtigungen können Sie rechtzeitig Maßnahmen ergreifen, die Gesundheit schützen und das Raumklima verbessern.
Ein solches Projekt bietet nicht nur praktische Vorteile, sondern vermittelt auch tiefere Einblicke in Sensorik, Datenverarbeitung und Automatisierung – ideal für Technikinteressierte und alle, die ihre Umgebung aktiv überwachen möchten.
