In diesem Projekt wird die senseBox:mini verwendet, um eine Ampel zur Überprüfung der Innenraumluftqualität (Indoor Air Quality - IAQ) zu bauen. Mithilfe des Umweltsensors wird im ersten Schritt der Messwert auf dem Display angezeigt. Im zweiten Schritt wird die auf dem Board integrierte RGB-LED genutzt, um die Messwerte visuell zu unterstützen und einzuordnen.
Aufbau
Das OLED Display und der Umweltsensor werden mit jeweils einem Kabel an einen der zwei I2C Anschlüsse angeschlossen.
Programmierung
Die Programmierung der Messstation wird in Blockly durchgeführt. Im ersten Schritt werden die Messwerte ausgelesen und auf dem Display angezeigt. Im zweiten Schritt wird die dazugehörige Ampel programmiert.
Schritt 1: Die Anzeige der Innenraumlauftqualität auf dem Display
Initialisiere das Display im Setup() und füge den Block Zeige auf dem Display in die Endlosschleife ein. Mit dem Block Schreibe Text/Zahl kannst du die jeweiligen Messwerte auf dem Display anzeigen lassen. Füge dafür bei ‘Wert’ den Block Erstelle Text aus aus der Kategorie ‘Text’ ein. Mithilfe eines Textfeldes kannst du dann die Beschriftung zum jeweiligen Sensorwert hinzufügen. Letzterer wird dir angezeigt, indem du den Umweltsensor (BME680) als Block einfügst und das entsprechende Umweltphänomen, die Innenraumluftqualität, auswählst. Für den weiteren Verlauf ist es sinnvoll, für diesen Messwert eine Variable zu definieren. Erstelle dafür eine Variable des Typs int und benenne sie als ‘IAQ’. Du kannst dann an allen Stellen, an denen du sonst den Block des Umweltsensors einfügen würdest, den Block der Variable einfügen. Damit der Messwert dauerhaft aktualisiert wird, füge zudem den Block Display löschen an das Ende deines Programms ein.
Beachte: Die Kalibirierung des Sensors
Um zuverlässige Messwerte zu liefern, kalibriert sich der Sensor BME680 anhand der Umgebungsluft selbst. Der Status wird jeweils über den Kalibrierungswert angezeigt. Daher ist es sinnvoll, diesen auch auf dem Display anzeigen zu lassen, sodass man sehen kann, ob die Kalibrierung abgeschlossen ist und die Messwerte verwendet werden können. Wenn der Sensor nicht kalibriert ist oder sich gerade kalibriert, werden Messwerte ausgegeben, die allerdings nicht verwendet werden sollten. Folgende Werte für den Kalibrierungswert gibt es:
0: Der Sensor ist gerade gestartet und befindet sich in der Warm Up Phase 1: Die bisheringen Messwerte zeigen zu geringe Unterschiede und können nicht zum Kalibrieren verwendet werden 2: Der Sensor wird kalibriert 3: Die Kalibrierung des Sensor ist abgeschlossen Der Kalibrierungsvorgang kann unter Umständen lange dauern (>12h) und zeigt dann den Wert 1 an. Sollte nach dieser Zeit die Kalibrierung nicht starten oder abgeschlossen sein, kann es hilfreich sein, die Umgebungsparameter zu verändern, z.B. durch stoßartiges Lüften im Raum oder den Sensor für eine gewissen Zeit in der Hand zu halten.
Schritt 2: Die Ampel
Zum jetzigen Zeitpunkt wird dir eine Zahl auf dem Display angezeigt. Dabei handelt es sich um den Index für die Innenraumluftqualität. Die folgende Tabelle hilft dir dabei, den Messwert in den Anwendungskontext einordnen zu können (Quelle: Bosch 2022):
Damit dieser Wert auch für andere Personen direkt interpretierbar ist, wollen wir die Anzeige auf dem Display nun um eine Ampel ergänzen, sodass ein grünes Leuchten für eine gute Luftqualität und ein rotes Leuchten für eine schlechte Luftqualität steht. Dafür benötigst du drei wenn-dann Bedingungen aus der Kategorie ‘Logik’. Hier fügst du passend zur Tabelle Grenzwerte in Bezug auf die gemmesene Luftqualität ein (Kategorie ‘Mathematik), die über- oder unterschritten werden können. Je nach Wert leuchtet die RGB-LED dann grün, gelb oder rot. Diese Farben kannst du selbst michen, indem du für die Farben rot, grün und blau einen Wert zwischen 0 und 255 festlegst. Je nach Verhältnis der zugeordneten Werte, entstehen dann verschiedene Farben.
Gesamter Code
Schaue dir den Programmcode in Blockly an: IAQ-Ampel
Kompiliere nun den Progranmmcode und übertrage ihn anschließend auf die senseBox MCU mini.