Arduino-basiertes Luftqualitäts- und Komfort-Sensorkit
Komponenten und Zubehör
| Arduino Nano R3 | × | 1 |
| DHT11 Temperatur- & Feuchtigkeitssensor (3 Pins) | × | 1 |
| Luftqualitätssensor (MQ135) | × | 1 |
| 0,96″ I2C OLED-Display | × | 1 |
Benötigte Werkzeuge und Maschinen
- Lötkolben (generisch)
- 3D-Drucker (generisch) – optional
Apps und Onlinedienste
- Arduino IDE
Über dieses Projekt
Oft fühlt man sich morgens nach dem Aufwachen schlapp, obwohl man gut geschlafen hat. Ursache kann eine schlechte Luftqualität im geschlossenen Schlafzimmer sein.

Dieses kostengünstige Luftqualitäts-Messgerät überwacht die Raumluft mit dem MQ135-Sensor, misst Temperatur und Luftfeuchtigkeit per DHT11 und zeigt die Werte auf einem OLED-Display an. Ein unterhaltsames und nützliches Projekt.
Verkabelung




Anschlüsse:
- Arduino D2 → DHT11 Out
- Arduino A0 → MQ135 AO
- Arduino A5 → OLED SCL
- Arduino A4 → OLED SDA
Programmierung
Für den Code müssen folgende Bibliotheken installiert werden:
- Adafruit_SSD1306.h
- Adafruit_GFX.h
- DHT.h
Der Code enthält zwei Hauptfunktionen: sendSensor() und air_sensor().
air_sensor()liest den analogen Wert des Luftqualitätssensors (gasLevel = analogRead(sensor);) und ordnet ihn einer Qualitätsstufe zu.sendSensor()liest Temperatur und Luftfeuchtigkeit über die DHT-Bibliothek und zeigt sie auf dem OLED an.


In air_sensor() müssen Sie die gasLevel-Grenzwerte möglicherweise an Ihren Sensor anpassen. Dazu versorgen Sie den MQ135 24 Stunden lang mit 5 V in sauberer Umgebung („Einbrennen“), da der Sensor bei Lieferung verunreinigt ist. Danach justieren Sie die Schwellenwerte an Ihrem Aufstellort.
Code
Arduino Luftqualitäts-Monitor
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSans9pt7b.h>
#include <Fonts/FreeMonoOblique9pt7b.h>
#include <DHT.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define sensor A0
#define DHTPIN 2
#define DHTTYPE DHT11
int gasLevel = 0;
String quality = "";
DHT dht(DHTPIN, DHTTYPE);
void sendSensor() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
display.setTextColor(WHITE);
display.setTextSize(1);
display.setFont();
display.setCursor(0, 43);
display.println("Temp :");
display.setCursor(80, 43);
display.println(t);
display.setCursor(114, 43);
display.println("C");
display.setCursor(0, 56);
display.println("RH :");
display.setCursor(80, 56);
display.println(h);
display.setCursor(114, 56);
display.println("%");
}
void air_sensor() {
gasLevel = analogRead(sensor);
if (gasLevel < 181) {
quality = " GOOD!";
} else if (gasLevel > 181 && gasLevel < 225) {
quality = " Poor!";
} else if (gasLevel > 225 && gasLevel < 300) {
quality = "Very bad!";
} else if (gasLevel > 300 && gasLevel < 350) {
quality = "ur dead!";
} else {
quality = " Toxic";
}
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(1, 5);
display.setFont();
display.println("Air Quality:");
display.setTextSize(1);
display.setCursor(20, 23);
display.setFont(&FreeMonoOblique9pt7b);
display.println(quality);
}
void setup() {
Serial.begin(9600);
pinMode(sensor, INPUT);
dht.begin();
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)) {
Serial.println(F("SSD1306 allocation failed"));
}
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(50, 0);
display.println("Air");
display.setTextSize(1);
display.setCursor(23, 20);
display.println("Quality monitor");
display.display();
delay(1200);
display.clearDisplay();
display.setTextSize(2);
display.setCursor(20, 20);
display.println("BY Abid");
display.display();
delay(1000);
display.clearDisplay();
}
void loop() {
display.clearDisplay();
air_sensor();
sendSensor();
display.display();
}
Gehäuse und benutzerdefinierte Teile
Dies ist ein 3D-gedrucktes Gehäuse für das Projekt. Ein 3D-Drucker ist nicht zwingend erforderlich; Sie können auch ein Gehäuse aus Karton oder anderen Materialien bauen.
Schaltplan

Herstellungsprozess
- Winzige PM2.5 & VOC Sensoren ermöglichen Echtzeit-Personal-Luftqualitätsmonitoring
- Bosch Sensortec stellt KI-fähigen BME688 Luftqualitätssensor vor, um Virusübertragungsrisiko zu senken
- Renesas erweitert Indoor Air Quality Sensor Plattform mit eingebetteter KI für verbesserte Geruchserkennung
- Raspberry Pi Luftqualitäts- & Wetterstation mit InfluxDB & Grafana bauen
- Luftqualität messen mit OpenSensors: Arduino & Python Anleitung
- DIY Luftqualitätsmonitor: Kosteneffektiver EPA-konformer Detektor
- Helium-basierter solarbetriebener Luftqualitätssensor: Design- und Deployments-Guide
- LoRa-basiertes Smart-City-Luftqualitäts-Monitoring-System
- Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
- Fortschrittlicher kohlenstoffbasierter NO₂-Sensor verbessert Innenraumluftüberwachung