"CO2-Ampel - die Toilettenpapier-Krise des Herbstes"
Hapselknecht im Forum zum CO2-Ampel-Artikel des Make-Magazins 05/2020
Trotzdem wollte ich gern ein Ampelsystem bauen, da es zum Rahmenplan des Informatikunterrichts in Mecklenburg-Vorpommern passt und eben auch sehr aktuell ist. Da sich die Fenster in den Klassenräumen nicht weit öffnen lassen, wollte ich auch wissen, ob das Lüften überhaupt was bringt.
Die Grundlagen der CO2-Messung und des richtigen Lüftens wurden an anderen Stellen schon mehrfach ausführlich beschrieben. Eine lesenswerte Variante findet sich beim Umweltcampus Birkenfeld der Hochschule Trier.
Hardware: Sensor für das Messen des CO2-Wertes... oder besser des CO2-Äquivalents: Die Wahl fiel auf den Chip CCS811, da er in Deutschland als Breakout-Board bei Distributoren verfügbar und nicht so teuer ist. Das von mir verwendete Breakout-Modul gibt es bei Eckstein, Funduino, Reichelt oder mit Geduld (dafür sehr preiswert bei) AliExpress. Das Board lässt eine Konfiguration der I2C zur Kommunikation zu, verfügt aber nicht über einen Temperatursensor.
Für das Abfragen der Daten des Sensors wird das I2C-System genutzt. Dafür muss das Board eindeutig über eine Adresse angesprochen werden. Beim Anschluss des ADD Anschlusses an GND bzw. beim Schließen der Lötbrücke rechts zu L wird die Adresse 0x5A verwendet. Beim Anschluss an VCC bzw. beim Schließen der Lötbrücke links zu H wird die Adresse 0x5B verwendet.
Software: Extension für MakeCodeUm den Sensor blockbasiert mit MakeCode programmieren zu können, muss eine Erweiterung installiert werden. Nach einigen Tests klappte es mit der Version von Xinabox zuverlässig. Diese wurde für ein gleichwertiges Modul mit dem Namen SG33 entwickelt. Die Block-Bausteine sind einfach gehalten. Zwei Variablen für den eCO2- und den TVOC-Wert sowie Initialisierungsblöcke.
Alternativ kann auch mit der Erweiterung AirQuality in der Version von ElectronicCats gearbeitet werden.
Das CCS811-Modul verfügt über die zum Anschluss an den Calliope/Microbit notwendigen PINs für die 3, 3 V-Spannung VCC (rot) und GND (schwarz/blau) sowie für den I2C-Bus SCL (gelb) und SDA (weiß). Am Calliope mini muss das Grove-Kabel in die linke Buchse, da dort der I2C-Bus anliegt.
Außerdem müssen der Anschluss Wake und ADD auf GND gelegt werden. Damit wird die I2C-Adresse des Moduls auf 0x5A festgelegt und das Modul nicht schlafen gelegt (im Bild die blauen Kabel).
Der Calliope soll den Sensor regelmäßig im 5-Sekunden-Takt abfragen. In Abhängigkeit von den Messwerten sind die Farben grün, rot (Lüften empfohlen), blau (Lüften absolut notwendig oder Raum evakuieren ;)) festgelegt. Auf die Farbe gelb wurde verzichtet, da diese nicht sehr gut auf der Farb-LED angezeigt wird.
Die Abfrage der exakten Werte soll mithilfe der Tasten und des 5x5-LED-Matrix realisiert werden. Da Zahlen größer als 9 als Laufanzeige angezeigt werden und diese schlecht lesbar sind, wird die im Unterricht bereits mehrfach verwendete Erweiterung Zahlencodierung genutzt. Die Taste A soll die einmalige Anzeige des Messwertes eCO2 und die Taste B die einmalige Anzeige des Messwertes TVOC aktivieren. Im Fall der Signalfarbe blau ist zusätzlich pro Messung ein Warnsignal auszugeben, welches durch Drücken der Tasten A+B aktivierbar/deaktivierbar sein soll.
Ausbaustufen- OLED-Display über einen I2C-Hub zur dauerhaften Anzeige der Werte
- Funkübertragung der Werte an einen Calliope, der die Daten via USB logt
Das System soll mit Schülern programmiert werden, daher sind die Anforderungen nicht sehr hoch. Zunächst spielt das Grundkonzept der Ampel eine Rolle: drei Farben je nach eCO2-Wert. Der Wertebereich folgt aus den Angaben des Umweltbundesamts 2008, wobei die Kategorien 1 und 2 zusammengefasst wurden. Hinweis: ppm - parts per million
- 400 bis 1000 ppm eCO2: alles in Ordnung - Ampelfarbe grün
- 1000 bis 1400 ppm eCO2: Warnstufe - Lüften empfohlen - Ampelfarbe rot
- ab 1400 ppm eCO2: Gefahrenstufe - Lüften absolut notwendig - Ampelfarbe blau
Zusätzlich kann der TVOC-Wert berücksichtigt werden. Dieser beschreibt den Anteil an Schadstoffen in der Luft, der z. B. durch Teppichausdünstung oder Parfüm entstehen kann. Gerade nach dem Sportunterricht ist dieser Wert interessant ;). Für den TVOC-Wert gilt (nach Sensortec.ch - Hinweis: ppb - part per billion).
- 0 bis 400 ppb TVOC: hygienisch unbedenklich - Ampelfarbe grün
- 150 bis 1300 ppb TVOC: hygienisch auffällig - Ampelfarbe ab 400 ppb blau
- ab 1500 ppb TVOC: hygienisch inakzeptabel - Ampelfarbe blau
Start-Block
Der Startblock legt die Adresse des CCS811-Moduls auf 0x5A (Modus on) fest und definiert die Startwerte für die Taste A+B, die im Programm als Variable t_ton verwaltet wird. In der Erweiterung wird die Funkgruppe gesetzt und das Display initialisiert.
Tasten
Die Tasten A und B realisieren das Anzeigen der Messwerte in Soroban-Codierung, die aus den Variablen ausgelesen werden. Das An-/Ausschalten des Tons wird über den Wechsel des booleschen Zustands erreicht.
Hauptprogramm
Im Ampelteil des Hauptprogramms werden die Sensorwerte eingelesen und in den Variablen gespeichert. Anschließend erfolgt entsprechend der Vorgabe die Ampelschaltung mithilfe einer Mehrfachverzweigung. Im Falle "blau" wird zusätzlich geprüft, ob die Variable t_ton, die den Wert des Tastendrucks der Tasten A+B speichert, wahr ist und entsprechend die Tonfolge ausgegeben.
Im Teil 2 des Hauptprogramms wird gewartet und dann die Anzeige gelöscht. In der Erweiterung erfolgt das Senden der Daten per Funk und die Anzeige auf dem Display, welches in die Funktion zeigeWerte ausgelagert wurde.
optionale Anzeige OLED
Hier passiert nun nicht viel, eben nur die Anzeige.
optionaler Funkempfang
Das Programm für den zweiten Calliope/microbit, der das Funksignal auswerten soll. Wir die serielle Schnittstelle abgefragt werden kann, habe ich im Hackster Projekt Messwerterfassung mit Calliope mini via USB beschrieben.
Ausbaustufen- OLED-Display über einen I2C-Hub zur dauerhaften Anzeige der Werte
- Funkübertragung der Werte an einen Calliope, der die Daten via USB logt
Hier ein Messbeispiel aus dem Unterricht (Klausur) mit permanenter Kipp- und teilweiser Querlüftung. Um 08:10 Uhr und um 8:40 Uhr haben wir die Fenster kurzzeitig geschlossen und dann gleich wieder richtig aufgemacht. Zum Stundenende gab es Bewegung in der Klasse.
Comments