K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
Komponenten
| Bauteil | Anzahl | Hinweise |
|---|---|---|
| Arduino UNO | 1 | |
| K30 CO₂-Sensor (NDIR, digital, autokalibrierend) | 1 | z. B. aus SenseAir K30-Modul |
| LCD1602 (I²C oder parallel) | 1 | Optional zur Anzeige |
| 5–7 V Netzteil / USB | 1 | Für Arduino |
| Steckbrücken (Male/Female) | 1 Set | |
| Steckbrett (Breadboard) | 1 |
Projektbeschreibung
Der K30 ist ein NDIR-CO₂-Sensor (nicht-dispersive Infrarot-Absorption), der werkseitig kalibriert ist und über eine automatische Hintergrundkalibrierung (ABC) verfügt. Er kommuniziert per I²C (oder seriell) und liefert direkte ppm-Werte – ideal für Innenraumluftqualitätsmonitoring (Büro, Gewächshaus, Wohnraum).
Der Autor hat eine Arduino-Bibliothek (K30_CO2_I2C_Arduino) auf GitHub veröffentlicht, die die I²C-Kommunikation kapselt und ein Beispiel-Sketch für die Anzeige auf einem LCD1602 enthält.
Aufbau & Inbetriebnahme
- Verdrahtung gemäß Schaltplan: K30 SDA → A4, SCL → A5 (Arduino UNO I²C-Pins), VCC → 5 V, GND → GND. LCD1602 parallel oder per I²C-Expander anschließen.
- Bibliothek herunterladen (ZIP) und in Arduino IDE installieren (Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen).
- Beispiel-Sketch
k30_LCD_I2C_lib_testöffnen. - Kompilieren & auf Arduino hochladen.
Anschlussschema (I²C)

Code-Beispiel (aus der Bibliothek)
#include <Wire.h>
#include <K30_CO2_I2C.h>
#include <LiquidCrystal_I2C.h> // falls I²C-LCD
K30_CO2_I2C k30(0x68); // Standard-I²C-Adresse des K30
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse ggf. anpassen
void setup() {
Serial.begin(9600);
Wire.begin();
k30.begin();
lcd.init();
lcd.backlight();
lcd.print("CO2: --- ppm");
}
void loop() {
int co2 = k30.readCO2();
if (co2 > 0) {
Serial.print("CO2: "); Serial.print(co2); Serial.println(" ppm");
lcd.setCursor(0, 0);
lcd.print("CO2: ");
lcd.print(co2);
lcd.print(" ppm ");
} else {
Serial.println("Fehler beim Lesen");
}
delay(2000); // K30 misst ca. alle 2 s
}
Weiterführende Links
- GitHub Repository (Bibliothek & Beispiele): https://github.com/FirstCypress/K30_CO2_I2C_Arduino
- K30 Datenblatt (SenseAir)
Hinweise
- Der K30 benötigt ca. 1–2 Minuten Aufwärmzeit nach dem Einschalten für stabile Werte.
- Die automatische Kalibrierung (ABC) funktioniert am besten, wenn der Sensor regelmäßig Frischluft (ca. 400 ppm) „sieht“ (z. B. tägliches Lüften).
- Für batteriebetriebene Anwendungen: K30 Stromaufnahme ~30 mA (Spitzen bis 200 mA bei Messung) – nicht ultra-low-power.
Herstellungsprozess
- Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
- DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial
- DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
- Sensorturm mit Arduino Cloud: Temperatur, Bewegung & Gase überwachen
- Echtzeit-Waldbrand-Überwachungssystem mit SMS-Alarm
- MAX30100 Puls-Sensor mit Arduino integrieren: Schritt-für-Schritt-Anleitung
- Schritt-für-Schritt: YL-39/YL-69 Bodenfeuchtesensor an Arduino UNO anschließen