CO2-Messung mit MicroBlocks

CO2-Messungen in Schulen haben im Verlauf der Covid-19-Pandemie an Bedeutung gewonnen, weshalb nebst kommerziellen Geräten unterdessen verschiedene Bauanleitungen zu Verfügung stehen. Der hier vorgestellte Lösungsansatz unterscheidet sich von anderen Geräten dadurch, dass er folgende Anforderungen erfüllt:

  • Das Gerät soll die tatsächliche CO2-Konzentration einigermassen genau messen und diese nicht aus anderen Werten (z.B. dem Vorhandensein von Wasserstoff) ableiten.
  • Die Messdaten sollen auf unterschiedliche Weise ausgewertet werden können: direkte Anzeige, grafischer Verlauf, weitere Auswertung am Computer.
  • Das Gerät soll in einer blockbasierten Sprache von Schülerinnen und Schülern der Sekundarstufe I selbst programmiert werden können.
  • Teile des Gerätes sollen im MINT-Unterricht auch für andere Zwecke verwendet werden können.

Um diese Anforderungen zu erfüllen, wird eine Kombination aus dem Mikrocomputer Adafruit CLUE, der mit MicroBlocks programmiert wird und dem CO2-Sensor SCD-30 verwendet. Dies ist dank der von Markus Gälli freigegebenen Bibliothek für den CO2-Sensor seit Dezember 2021 möglich: https://github.com/MarkusGaelli/MicroBlocks-SCD30, wobei die Bibliothek voraussichtlich in der nächsten Version von MicroBlocks offiziell aufgenommen wird.

Das CO2-Messgerät und seine Funktionen

In der hier beschriebenen Version können die Messdaten auf dem Bildschirm des Adafruit CLUEs als Zahlenwerte und grafisch ausgegeben werden.

Der CO2-Sensor SCD30 wird mit dem Adafruit CLUE über ein STEMMA-to-Groove-Kabel verbunden und ist damit über die I2C-Schnittstelle ansprechbar.

Die Daten können via die MicroBlocks-Umgebung direkt an den Computer übergeben werden, an den der Adafruit CLUE mittels USB-micro-Kabel angeschlossen wird und von dort aus als CSV-Datei für die weitere Datenauswertung abgespeichert werden. Ausserdem verfügt die vorgestellte Variante über eine einfache Menüführung, welche flexibel ausgebaut werden kann.

MicroBlocks

Microblocks (https://microblocks.fun) ist eine blockbasierte Programmierumgebung für Mikrocomputer wie den micro:bit, Calliope und andere ähnliche Geräte, bei der Programme sofort ausgeführt werden können und die recht performant ist. Unterdessen stellt die Webseite auch diverse Anleitungen für den Unterricht (teilweise in deutscher Sprache) zu Verfügung. Wie der Mikrocomputer von MicroBlocks aus angesprochen wird, ist beispielsweise hier beschrieben: QuickStart.

Die Programmierung

Das komplette Programm für das vorgestellte CO2-Messgerät findet sich hier: https://github.com/mattgig/CO2-Messung.

Das Hauptprogramm nebst bereits vorhandenen einige zusätzliche Bibliotheken:

  • SCD30.ubl von Markus Gälli
    Stellt die Blöcke zum Ansprechen und Auslesen des SCD30 zu Verfügung.
  • digits.ubl
    Erlaubt die Anzeige der Ziffern 0-9 in beliebiger Grösse als Digitalzahlen.
  • drawGraph.ubl
    Stellt eine in der Höhe anpassbare Grafik für den Adafruit CLUE zu Verfügung.
  • menuOptions.ubl
    Erlaubt die Programmierung eines einfachen Menüsystems für den Adafruit CLUE.

Die eigentliche Messung wird in einem Block mit verschiedenen Unterbefehlen durchgeführt.

Das Hauptprogramm zeigt die gemessenen Werte als Zahl und Grafik an und kann die Messwerte auch zur weiteren Bearbeitung an einen Computer übergeben.

Zuerst werden diverse Parameter gesetzt und dann die Messwerte innerhalb einer repeat-until-Schleife ausgelesen, wobei jeweils die letzten 240 Werte in einer Liste gespeichert werden. Dabei stehen folgende Darstellungsmöglichkeiten der Messwerte zu Verfügung:

  • Anzeige als Text auf dem Bildschirm des Adafruit CLUE mittels displayIniformation;
  • direkte Ausgabe auf dem Bildschirm des Computers, falls der CLUE damit verbunden ist über say;
  • Weitergabe der Messwerte an das Graphmodul von Microblocks;
  • Ausgabe des aktuellen Messwertes als Farbinformation via NeoPixel-LED;
  • grafische Ausgabe der letzten 240 Messwerte auf dem Bildschirm des Adafruit CLUE.

Das Zeitintervall für die Messungen kann schrittweise von 5 – 120 Sekunden festgelegt werden, wodurch die grafische Ausgabe einen Zeitraum von 20 Minuten bis 8 Stunden abdeckt.

In der vorliegenden Version kann der Adafruit CLUE mit den Tasten A und B über ein einfaches Menü gesteuert werden.

Dabei kann jeweils über die Taste A der nächste Wert angesteuert und dieser über die Taste B ausgewählt werden. Das Drücken beider Tasten gleichzeitig führt zurück ins Hauptmenü.

Die Möglichkeiten, Messdaten über Funk an einen anderen Mikrocomputer zu senden, ist aktuell noch nicht implementiert, kann aber mit wenigen Befehlen (unter allfälliger Anpassung des Menüs) durchgeführt werden.

Verwendung im Unterricht

Erst einmal kann das Gerät für die CO2-Messung im Schulzimmer verwendet werden, um die Luftqualität zu überprüfen. Ob dabei die genaue Anzeige der aktuellen Messwerte, die Grafik (Zeitreihe von Messwerten) oder die NeoPixel-LED als Anhaltspunkt dient, hängt vom genauen Einsatzzweck ab.

Auswertung der Daten in Snap!, wobei die gleichen Algorithmen wie bei der grafischen Anzeige auf dem Adafruit CLUE verwendet werden.

Dann können die Schülerinnen und Schüler das Gerät aber auch verwenden, um mittels gezielter CO2-Messungen eigenen Fragestellungen nachzugehen. Die relativ einfach anpassbare Programmierung erleichtert dabei auch die Untersuchung etwas speziellerer Fragestellungen. Allerdings eignet sich der SCD30-Sensor nicht für schnelle Messungen, da die Messintervalle ca. 2 Sekunden betragen. Da die Messwerte als CSV-Datei gespeichert werden können, steht einer weiteren Auswertung nichts mehr im Wege.

Letztlich kann das Gerät auch als Beispiel für die Programmierung von Mikrocomputern im Informatikunterricht eingesetzt werden, wobei auf Fragestellungen wie Timing, Anzeige von Messwerten, Datenübermittlung usw. fokussiert werden kann.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert