DIY CO2-Ampel mit dem MH-Z19C

Aufgrund der Gefahr einer Corona-Infektion wird seit einiger Zeit empfohlen, regelmäßig Innenräume zu lüften, damit sich nicht zu viele potenziell ansteckende Aerosole in der Luft sammeln können. Aber auch sonst ist es ratsam, mehrmals pro Tag durchzulüften. Eine CO2-Ampel könnte dir dabei helfen dein Lüften zu optimieren.

Die Frage, die ich mir gestellt habe, ist: Wann macht es Sinn zu lüften und wann kann man es sich sparen? Gerade in der kalten Jahreszeit sind die Heizkosten ja ohnehin ein Faktor, der nicht zu verachten ist. In diesem Zusammenhang ist mir die Idee gekommen, den CO2-Gehalt der Luft zu messen und mit einer einfachen Zwei-Farben-LED anzeigen zu lassen, wann gelüftet werden muss und ob der CO2-Gehalt in der Luft noch akzeptabel ist.

Diese Hardware wird für die CO2-Ampel benötigt:

MH-Z19C Infrarot CO2 Sensor mit Pinleiste
D1 Mini, alternativ Pro oder Lite
KY-011 Two-color 3 mm oder Kingbright BI-Color Indicator LED + 2 x 100 Ohm Widerstände
Kunststoff Kleingehäuse 72x50x28mm
Dupont Kabel

Benötigtes Werkzeug und Materialien:

3-mm- und 5-mm-Holzbohrer
Bohrmaschine (am besten eine Standbohrmaschine)
Heißklebepistole
Lötkolben und Lötzinn
Kleine Metallsäge
Kleine Metallfeile oder Schleifpapier
Kleiner Kreuzschraubendreher

WARENKORB

Alle für dieses Projekt notwendigen Artikel landen mit einem Klick auf den Button direkt in deinem Warenkorb, sofern sie in unserem Shop verfügbar sind. Kontrolliere daher deinen Warenkorb genau!

So Verkabelst du die Komponenten der CO2-Ampel

Bevor du anfängst, das Ganze in das Gehäuse zu bauen, solltest du zunächst einmal den D1 Mini mit den Sensoren und den LEDs verbinden. Hier solltest du dir die Frage stellen, ob du die Pinleisten vom D1 Mini einlöten möchtest oder ob du die Kabel direkt an den D1 Mini lötest. Ich würde die Kabel direkt anlöten. Das geht schneller und du musst dir nicht überlegen, wie du die zweimal GND auf den einen Pin bekommst.

MH-Z19C anschließen:
RX -> D2 (Orangenes Kabel)
TX -> D1 (Gelbes Kabel)
VIN -> 5V (Rotes Kabel)
GND -> G (Braun Kabel)

Variante 1 mit KY-011 anschließen:

GND -> G (Braunes Kabel)
RED -> D6 (Grünes Kabel)
GREEN -> D7 (Blaues Kabel)

Die Schaltung sieht dabei folgendermaßen aus:

So wird die KY-011 LED angeschlossen.

Du musst natürlich keine KY-011 LED für deine CO2-Ampel verwenden, sondern kannst auch eine Kingbright BI-Color Indicator LED verwenden. Diese wird folgendermaßen angeschlossen:

Variante 2 mit Kingbright BI-Color Indicator LED:

Äußere Anschlüsse -> D6 (Grünes Kabel)
Mittlerer Anschluss -> G (Braunes Kabel)
Äußere Anschlüsse -> D7 (Blaues Kabel)

Hinweis: Bei den äußeren Anschlüssen ist es egal, ob D6 oder D7 außen ist. Dies lässt sich per Sketch oder durch Umstecken lösen.

Variante der Schaltung mit Kingbright BI-Color Indicator LED.

Jetzt hast du alle Komponenten miteinander Verbunden und kannst den benötigten Sketch auf deinen Mikrocontroller spielen.

So installierst du den Sketch auf dem Mikrocontroller

Sobald wir alles angeschlossen haben, solltest du das Ganze auch testen. Für diesen Zweck kannst du eine der beiden folgenden Vorgehensweisen auswählen – je nachdem, ob du mit Arduino IDE oder ESP Easy arbeitest:

Variante 1 mit Arduino IDE:

Du benötigst die Library von WifWaf die du in die Arduino IDE importierst: Die Library kannst du hier herunterladen. Klicke auf der Seite auf den grünen Button “Code” und danach auf “Download ZIP“. In der Arduino IDE musst du unter „Sketch“ -> „Bibliothek einbinden“ -> „ZIP-Bibliothek hinzufügen…“ die heruntergeladene ZIP Datei (MH-Z19-master.zip) auswählen und auf „Öffnen“ klicken. Jetzt könnst du den nachfolgenden Sketch kopieren, in die Arduino IDE hinzufügen und dann auf den D1 Mini spielen:

#include <Arduino.h>
#include "MHZ19.h"                                        
#include <SoftwareSerial.h>
#define RX_PIN 5         //MH-Z19 RX-PIN                                         
#define TX_PIN 4         //MH-Z19 TX-PIN                                   
#define BAUDRATE 9600    //Terminal Baudrate
#define REDPIN 13     //Pin für Rote LED
#define GREENPIN 12   //Pin für Grüne LED
#define SCHWELLE 1500 //Schwellwert wenn die LED von Grün auf Rot wechseln soll.
//Klassen definierung
MHZ19 myMHZ19;                               
SoftwareSerial mySerial(RX_PIN, TX_PIN); 
unsigned long getDataTimer = 0;
void setup(){
  //LED PIN Mode festlegen
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
  //Serielle Intialisierung
Serial.begin(BAUDRATE);
mySerial.begin(BAUDRATE);                   
myMHZ19.begin(mySerial);
}
void loop(){
  //Prüfung ob 2 Sekunden um sind.
if (millis() - getDataTimer >= 2000){
      int CO2; //Variable darf nur Zahlen enthalten
CO2 = myMHZ19.getCO2(); //Variable schreiben
    //Ermittel ob der Schwellwert überschritten wurde und Schalten der LED
 if(CO2 > SCHWELLE){ 
      digitalWrite(GREENPIN, LOW);
      digitalWrite(REDPIN, HIGH);
      delay(100);
    }else {
      digitalWrite(REDPIN, LOW);
      digitalWrite(GREENPIN, HIGH);
      delay(100);
    }
    //Ausgabe auf den Seriellen Monitor
    Serial.print("CO2 (ppm): ");
                Serial.println(CO2);
    getDataTimer = millis();
    }
}

Wenn der Sketch aufgespielt ist, müsst du ca. eine Minute warten. Anschließend sollte die Lampe rot oder grün leuchten. Falls nicht, ist ein Kabel falsch angeschlossen. Sollte die LED rot oder grün leuchten, solltest du dir die CO2-PPM-Werte anschauen. Das geht über „Werkzeuge“ -> „Serieller Monitor“. Wenn dort die Werte unter 1500 ppm liegen, sollte die LED grün leuchten. Wenn der Wert über 1500 ppm liegt, leuchtet die LED rot. Sollte das bei dir andersrum sein, stecke die Kabel an der LED um oder setze oben in Sketch den REDPIN auf 12 und den GREENPIN auf 13. Den Schwellwert kannst du auch oben in Sketch ändern.

Variante 2 mit ESP Easy:

Diese Variante ist besonders praktisch, weil ich hierbei den aktuellen Wert ganz einfach über den Webbrowser am Computer oder Handy einsehen und auch ohne großen Aufwand den Schwellwert anpassen kann. Zudem benötige ich für den Code weniger Zeilen. Wie ESP Easy installiert und konfiguriert wird, kannst du hier nachlesen.

Wenn du mit der Installation und der Konfiguration von ESP Easy fertig bist, ändere unter „Hardware“ -> „I2C Interface“ den SDA auf GPIO-16 (D0) und den SCL auf GPIO-14 (D5), denn hier ist als Standard D1 und D2 festgelegt und diese brauchen wir ja für unseren Sensor.

ESP Easy

Klicke unten auf „Submit“ und gehe dann auf den Reiter „Devices“, klicke dort auf „Add“ und wähle in der Liste den Sensor „Gases – CO2 MH-Z19“ aus. Trage einen Namen für den Sensor ein und setze das Häckchen bei „Enabled“. Bei „Serial Port“ wählst dz „SoftwareSerial“ und gibst bei GPIO < TX GPIO-4 (D2) und bei GPIO > RX GPIO-5 (D1) ein. Unten rechts musst du noch den Decimals bei allen Werten auf 0 stellen. Da nämlich keine Dezimalzahlen ausgegeben werden, sieht es so schöner aus. Die Temperatur lag bei mir um 4 Grad daneben, daher habe ich bei „Temperature“ im Formula-Teil noch %value%-4 eingegeben. Dadurch geht das System immer von 4 Grad weniger aus, als tatsächlich gemessen wurden. Das Ganze sollte dann so aussehen:

Hier können die Messwerte angepasst werden.

Wenn alles richtig eingestellt ist, klicke auf „Submit“. Danach solltest du unter „Devices“ schon die aktuellen Werte sehen. Jetzt musst du nur noch unter „Rules“ den folgenden Code einfügen:

On CO2Sensor#PPM>0 do
if [CO2Sensor#PPM]>1500
    gpio,13,1
    gpio,12,0
else
    gpio,12,1
    gpio,13,0
endif
endon

Beachte hier, dass CO2Sensor = Name ist und PPM der Wert des Values. Solltest du dies unter „Devices“ ändern, musst du auch unter „Rules“ eine Anpassung vornehmen. Wichtig: immer auf Groß- und Kleinschreibung achten.

Im Code kannst du den Schwellwert anpassen, indem du den Wert 1500 änderst. Sollte die LED-Farbe nicht stimmen, musst du die 12 durch die 13 und die 13 durch die 12 ersetzen.

Das fertige CO2-Ampel Projekt.

Nun muss nur noch das System in ein Gehäuse eingebaut und der Sensor kalibriert werden.

So baust du die Komponenten der CO2-Ampel in ein Gehäuse ein

Jetzt geht es noch daran, die Konstruktion in das Gehäuse einzubauen. Dazu musst du zunächst für die LED ein 5 mm großes Loch in den oberen Deckel bohren. Anschließend schleifst du dieses leicht ab, damit die Bohrreste verschwinden. Mit dem 3-mm-Bohrer machst du auf der einen unteren Seite mehrere kleine Löcher für den Micro-USB-Anschluss des D1 Mini. Hier sollte man gut schätzen können, damit man die richtige Höhe findet. Danach schleifst du wieder ab. Im unteren Teil auf der anderen Seite sägst du jetzt noch den weißen Teil zurecht. Nutze den MH-Z19 Sensor, um ungefähr einschätzen zu können, wo du sägen musst. Nach dem Einsägen kannst du den Rest vorsichtig rausbrechen. Im Anschluss wieder etwas schleifen. Wenn das erledigt ist, kannst du jetzt alles mit der Heißklebepistole einkleben. Achte darauf, dass sich keine Bauteile an den jeweiligen Enden berühren. Jetzt musst du das Ganze nur noch zusammenschrauben.

Alle Bauteile sind nun im Gehäuse untergebracht.

So kalibrierst du den MH-Z19

Zum Schluss muss noch der Sensor deiner CO2-Ampel kalibriert werden. Hierbei gibt es drei Varianten:

Variante 1 (Auto-Kalibrierung)

Hänge den Sensor für 20 Minuten an die frische Luft (nicht bei Hagel oder Regen und nicht bei weniger als -10 Grad). Der Sensor kalibriert sich alle 24 Stunden mit dem niedrigsten gemessenen Wert. Dabei greift er auf die Werte der letzten 6 Wochen zurück. Empfohlen wird, ihn alle 4 Wochen neu zu Kalibrieren.

Variante 2 (Software-Kalibrierung)

Weiter oben findest du unter dem Punkt „Variante 1 mit Arduino IDE“ die benötigte Library. Wenn diese in Arduino IDE eingebunden ist, findest du unter „Datei“ -> „Beispiele“ -> „MH-Z19“ -> „Calibration“ den Sketch dafür. Hier musst du nur die richtigen RX_PIN (5)/TX_PIN (4) eingeben und den Sketch auf den D1 Mini spielen. Anschließend hängst du die Konstruktion für mindestens 20 Minuten an die frische Luft. Das Prozedere sollte alle 6 Monate wiederholt werden.

Variante 3 (Hardware-Kalibrierung)

Hänge den Sensor für 20 Minuten an die frische Luft. Danach muss der HD-Pin des Sensors für 7 Sekunden auf LOW gestellt werden, z. B. mithilfe eines Schalters. Das Prozedere sollte alle 6 Monate wiederholt werden.

Bei Variante 2 und 3 muss die Auto-Kalibrierung deaktiviert werden.

In Sketch – also über die Arduino IDE – wird dies über den Befehl autoCalibration(false) veranlasst. Den entsprechenden Bereich findest du in ESP Easy in den Einstellungen unter dem Punkt „Auto Base Calibration“. Zum Deaktivieren musst du hier auf „ABC disabled“ und danach auf „Submit“ klicken.

Ich für meinen Teil verwende Variante 1, da ich bei Variante 2 ESP Easy entfernen müsste, um den Sketch nutzen zu können. Bei Variante 3 ist mir der Aufwand, das Gehäuse jedes Mal zu öffnen, zu groß.

Herzlichen Glückwunsch, deine CO2-Ampel ist nun fertig!

Das war auch schon alles zur CO2-Ampel – ich wünsche dir gutes Gelingen! Über Kommentare und gute Bewertungen würde ich mich freuen.

Alle benötigten Teile findest du auch noch einmal hier!

Maik vom BerryBase-Team

Die mobile Version verlassen