Aus Raspberry Pi Geek 08/2021

Luftqualität mit dem BME688 messen

© Creativ Collection

Nasenfaktor

Bernhard Bablok und Nathan Busler

Seit Corona ist Lüften noch wichtiger als vorher. Mit dem neuen Sensor BME688 tritt Bosch an, die Erkennung von Gasen durch künstliche Intelligenz zu verbessern.

Der BME688, den uns der deutsche Raspberry-Pi-Distributor Pi3g [1] freundlicherweise zur Verfügung gestellt hat, tritt die Nachfolge des BME680 an, den es für rund 20 Euro gibt. Das Nachfolgemodell ist etwas teurer, verspricht aber eine KI-gestützte Erkennung von Gasen. Dabei ist der Sensor so neu, dass es vom Hersteller aktuell noch sehr wenig verlässliche Informationen gibt. Zudem kennzeichnen viele Anbieter den BME688 derzeit noch als nicht lieferbar. Pi3g, offizieller Distributor für die Sensoren, ist damit derzeit eine der wenigen Quellen für alle, die einen BME688 testen und nutzen wollen.

Die Hardware

Der extrem kleine BME688 (3 x 3 Millimeter) kommt in einem für das Selbstlöten ungeeigneten LGA-Gehäuse. Deshalb vertreibt Pi3g nicht nur die rohen Sensoren, sondern zusätzlich ein Breakout, bei dem der Sensor ganz vorn auf einem Ausleger sitzt (Abbildung 1). Der Baustein verträgt 1,71 bis 3,6 Volt Versorgungsspannung und passt damit gut zu allen 3,3-Volt-Boards wie einem Standard-RasPi oder dem Pi Pico.

Abbildung 1: Das BME688-Sensor-Breakout auf einem Pi Zero.

Abbildung 1: Das BME688-Sensor-Breakout auf einem Pi Zero.

Die Platine ist durchdacht und lässt kaum einen Wunsch offen. Sie führt den I2C-Anschluss vierfach heraus, einmal als 2×3-Buchse, einmal als Anschluss für eine normale Pin-Reihe sowie in Form zweier 5-Pin-Buchsen für den Kabelanschluss. 10-kOhm-Pullups sind schon integriert, was zwar für den RasPi keine Rolle spielt, aber den Einsatz zusammen mit Mikrocontrollern erleichtert. Der Chip erlaubt zwei verschiedene I2C-Adressen; der Wechsel erfolgt über einen Jumper (Lötbrücke) oder per GPIO-Pin.

Die 2×3-Buchse ist für den Raspberry Pi optimiert. Man steckt das Breakout wie in Abbildung 1 direkt auf die vorderen sechs GPIOs und kann dann sofort loslegen. Auch die Pins der Platine sind steckbar, da die Löcher einen leichten Versatz aufweisen.

Die Reihenfolge der Anschlüsse ist dabei so gewählt, dass das Breakout direkt neben einem Pi Pico ins Breadboard passt (Abbildung 2). In diesem Fall verwendet das Pico-Programm den I2C-Bus mit den Pins 32 (GPIO27/SCL) und 31 (GPIO26/SDA).

Abbildung 2: Der Sensor passt zum Pi Pico wie die sprichwörtliche Faust aufs Auge.

Abbildung 2: Der Sensor passt zum Pi Pico wie die sprichwörtliche Faust aufs Auge.

Die besondere Konstruktion der Trägerplatine stellt eine thermische Entkopplung des Sensors sicher und hält ihn von der Abwärme des RasPi fern. Der Steg erleichtert die Befestigung, alternativ gibt es noch zwei Montagelöcher.

Obwohl die vielen Anschlüsse sehr durchdacht erscheinen und sich ideal für das schnelle Prototyping eignen, wäre ein Breakout ohne vorgelötete Buchsen für den Einbau in ein Gehäuse besser geeignet. Zum Glück lassen sich bei Bedarf sowohl der RasPi-Anschluss als auch die beiden 5-Pin-Buchsen einfach auslöten, da es sich um SMD-Bausteine handelt.

Der Sensor

Die BME-Reihe von Bosch-Sensortec genießt einen guten Ruf. So misst der BME280 Temperatur, Luftdruck und Luftfeuchtigkeit recht genau; dasselbe gilt für die neueren Modelle wie den BME680 und BME688. Die Spezifikationen für das Trio sind sogar identisch, hier gibt es im Vergleich zum BME280 keine Steigerung.

Mit dem BME680 kam die Messung der Luftqualität hinzu, wobei der Chip und auch sein aktueller Nachfolger nur Widerstandswerte ausspucken. Die Interpretation der Messwerte bleibt dem Anwendungsprogramm überlassen. Bosch stellt dazu eine (leider nicht quelloffene) Bibliothek bereit, die als Ergebnis einen Luftqualitätsindex ausspuckt. Open-Source Bibliotheken [2] versuchen ihr Bestes und berechnen aus dem Widerstandswert und der Luftfeuchtigkeit ebenfalls einen Index, der mangels absoluter Skala aber nur für das Erkennen von Änderungen taugt.

Technisch funktioniert die Messung von sogenannten VOCs (volatile organic compounds, flüchtige organische Komponenten) durch das Erhitzen des in den Sensor integrierten Gasfühlers mit anschließender Spannungsmessung. Nach einer Analog-Digital-Konvertierung samt Umrechnen in einen Widerstandswert gibt der Chip dann das Ergebnis aus. CO2, das man gemeinhin mit verbrauchter Luft assoziiert, misst der BME688 nicht direkt. Allerdings dürften VOCs und CO2 gut korrelieren, weshalb der Umweg über die organischen Komponenten trotzdem als guter Indikator der Luftqualität taugt.

Sowohl der BME680 als auch der BME688 halten zehn Speicherplätze für Messprofile bereit. Pro Profil können Sie die Temperatur zwischen 200 und 400 Grad Celsius und die Heizdauer zwischen 1 und 4032 Millisekunden angeben, wobei für die gewünschte Zieltemperatur 20 bis 30 Millisekunden mindestens notwendig sind. Die Idee dahinter: Je nach Profil liefert der Sensor unterschiedliche Messwerte, sodass sich durch den Vergleich mit historischen Daten auf die Zusammensetzung der Luft rückschließen lässt.

Schnüffelnase

Bosch wirbt beim BME688 mit der Vokabel AI, also mit künstlicher Intelligenz zum Erkennen von Luftgemischen. So soll der Sensor zum Beispiel in der Lage sein, verschiedene Kaffeesorten zu erkennen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 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