Aus Raspberry Pi Geek 06/2022

Den BME688 ausreizen (Seite 2)

Beim Parallel- und Sequential-Modus verhält es sich anders: Sie dienen zum Vermessen kompletter Profile. Dabei handelt es sich um Kombinationen aus Temperatur, Heizdauer und Wiederholungszyklen. Das ganze wirkt unnötig komplex, ein Mehrwert gegenüber gezielten Messungen lässt sich nicht erkennen. Außerdem geben die Messungen im parallelen und sequentiellen Modus falsche Werte für Temperatur und Luftfeuchte aus. Das liegt wahrscheinlich daran, dass die interne Heizplatte in diesen Modi die anderen Sensorkomponenten beeinflusst. Damit bleibt der Forced-Modus als einzig empfehlenswerter übrig, außer Sie weichen auf die Closed-Source-Bibliotheken von Bosch aus.

Das Scanprogramm des Autors verwendet deshalb nur den Forced-Modus. Zusätzlich zu Temperatur, Luftdruck und Luftfeuchte gibt das Programm für jeden Messzeitpunkt mehrere Gasmessungen aus. Ein paar Variablen dafür passen Sie in der Konfigurationsdatei CMakeLists.txtdes Projekts an (Abbildung 3). Dabei handelt es sich zum einen um je eine Liste mit Temperatur und Heizdauer. Außerdem sollten Sie auch die Meereshöhe ihres Standorts konfigurieren und gegebenenfalls die verwendeten GPIO-Pins für I2C anpassen. Das Messintervall steht in der Variablen UPDATE_INTERVAL und muss ebenfalls an die Gegebenheiten angepasst werden. Für Testzwecke steht es auf 10 Sekunden.

Abbildung 3: Um die Konfigurationsdatei für des Scanprojekts zu verwenden, müssen Sie einige Parameter anpassen.

Abbildung 3: Um die Konfigurationsdatei für des Scanprojekts zu verwenden, müssen Sie einige Parameter anpassen.

Die ausgelieferte Version des Programms verwendet drei Temperaturen zwischen 100 und 300 Grad und eine Heizdauern von 100, 200 und 300 Millisekunden, führt also insgesamt neun Messungen je Zyklus durch. Das Programm gibt die Daten im CSV-Format über die serielle Schnittstelle aus (Abbildung 4). Dabei stammen allerdings Temperatur, Luftdruck und Feuchte von der ersten Messung, denn auch bei diesem Vorgehen zeigt sich, dass die Temperatur bei mehreren kurz hintereinander folgenden Messungen durch den sensorinternen Heizeffekt ansteigt.

Abbildung 4: Vom Programm über die serielle Schnittstelle ausgelieferte Messwerte.

Abbildung 4: Vom Programm über die serielle Schnittstelle ausgelieferte Messwerte.

Die Einfärbung der CSV-Spalten aus Abbildung 4 übernimmt die VS-Code-Erweiterung rainbow-csv, die Sie mit wenigen Klicks über den Marketplace installieren (siehe erster Teil des Workshops [3]). Das bietet ein schönes Beispiel dafür, wie der Editor Sie bei alltäglichen Aufgaben unterstützt.

Experimente

Sinn und Zweck des Programms besteht im Bestimmen optimaler Parameter für die Gasmessung. Schon ein Blick auf Abbildung 4 zeigt, dass bei 100 Grad der gemessene Widerstand zehn Mal so hoch ausfällt wie bei 200 Grad, bei 300 Grad liegen die Werte dann nochmals 75 Prozent niedriger. Der Einfluss der Heizdauer scheint dagegen beschränkt zu sein. Plausibel wirkt dieser erste Blick auf die Daten jedoch schon: Je höher die Messtemperatur, desto mehr Luftbestandteile regt sie an, was das Gemisch deshalb besser leitfähig macht.

So ausgerüstet führen Sie erste Messreihen am Arbeitsplatz durch. Der Gassensor braucht für verlässliche Ergebnisse eine gewisse Einbrennzeit, aber schon im Erstbetrieb stabilisieren sich die Gaswerte nach kurzer Zeit. Der Autor spielte testweise drei Szenarien durch. Beim ersten misst der Sensor die Luftqualität im Homeoffice während eines Arbeitstags. Die beiden anderen Durchläufe betreffen den 3D-Druck eines kleinen Gehäuses, einmal mit PLA und einmal mit PETG.

Die Ergebnisse fallen etwas etwas ernüchternd aus. Da der Sensor sich vor allem für das Messen organischer Verbindungen eignet, reagiert er kaum auf verbrauchte Luft im Arbeitszimmer (Abbildung 5). Nach einer Einlaufphase verbleiben die Messwerte auf etwa demselben Niveau. Kurzes Stoßlüften ändert zwar kurzzeitig den gemessenen Widerstand, aber selbst bei Versuchen mit längeren Phasen ohne Lüften gaben die Messwerten nie Anlass für ein Aufreißen der Fenster.

Abbildung 5: Die Messungen im Homeoffice fielen eher ernüchternd aus. Da der BME688 in erster Linie organische Verbindungen misst, reagiert er kaum auf verbrauchte Luft.

Abbildung 5: Die Messungen im Homeoffice fielen eher ernüchternd aus. Da der BME688 in erster Linie organische Verbindungen misst, reagiert er kaum auf verbrauchte Luft.

Nicht viel anders war es bei Messungen während des 3D-Drucks mit PLA oder PETG. Ersteres lieferte eine kleine Reaktion, die aber nur deshalb erkennbar war, weil der Autor den Zeitpunkt kannte. PETG beeinflusste die Messdaten dagegen überhaupt nicht. Auf die Reinigung der Druckfläche mit Isopropanol reagierte der Sensor dagegen sehr stark – und unterscheidet sich damit nicht von der menschlichen Nase.

Bei allen Messungen zeige sich, dass Temperatur und Messdauer nur einen verschwindend kleinen Einfluss auf die Messwerte nahmen. Darüber hinaus unterschieden sich die Messwerte zwischen zwei Sensoren deutlich.

Fazit

Für den Alltagsbedarf des Makers eignet sich der BME688 nicht. Flüchtige organische Verbindungen spielen vielleicht für industrielle Anwendungen eine Rolle, aber nicht in den eigenen vier Wänden. Die Parameter Temperatur, Luftfeuchte und Luftdruck messen andere Sensoren genauso gut und für einen deutlich niedrigeren Preis.

Wer allerdings einen wachen Forschergeist mitbringt und den Sensor für eigene Experimente nutzen will, zieht womöglich die eine oder andere Erkenntnis aus den Messwerten. In diesem Fall bietet es sich aber an, einen Versuch mit den von Bosch angebotenen Closed-Source-Anwendungen und -Bibliotheken zu starten. Die Ergebnisse weisen dann zwar etwa die Qualität von Voodoo auf, aber zumindest beruht dieser auf ordentlicher Ingenieurskunst. (tle/jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben