Raspberry Pi: CO₂-Sensor & Luftqualitätsmesser selbst bauen

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

Raspberry Pi CO₂-Sensor & Luftqualitätsmesser selbst bauen

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

  1. Installieren Sie das aktuelle Raspberry Pi OS auf der Micro-SD-Karte.
  2. Verbinden Sie den Raspberry Pi mit einem Monitor, einer Tastatur und dem Internet.
  3. 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:

  1. Installieren Sie InfluxDB auf dem Raspberry Pi
  2. Speichern Sie die Sensordaten in der Datenbank
  3. 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

  1. Sensoren vor der ersten Nutzung kalibrieren
  2. CO₂-Sensoren benötigen oft eine automatische Nullpunktkalibrierung
  3. Feinstaubsensoren sollten regelmäßig gereinigt werden
  4. 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.