Wenn die Luft in einem Raum müffelt, lüftet einer der Anwesenden mal kräftig durch. Für 99 Prozent aller Leute ist das Thema damit erledigt. Das restliche Prozent und Charly wollen es genau wissen und rücken dem Pumakäfig mit USB-Hardware und Linux auf den Pelz.
Dicke Luft entsteht durch eine Häufung verschiedener Gase, die sich in einem geschlossenen Raum anreichern. Der Klassiker ist Kohlendioxid – stellen Sie sich 16 Personen in einem kleinen, fensterlosen Besprechungsraum vor. Dazu mischen sich flüchtige organische Verbindungen, die die Wissenschaft unter dem Kürzel VOC (Volatile Organic Compounds) zusammenfasst. VOCs sind unter anderem Alkohole, flüchtige Deo-Bestandteile, Aldehyde aus Möbeln, Reinigungsmitteldämpfe, Nikotin, kurz: kohlenstoffbasierte Ausdünstungen aller Art.

Abbildung 1: Welches Ereignis um 6:45 Uhr zu der dramatischen Verschlechterung von Charlys Raumklima geführt hat, steht am Ende des Artikels.
Um VOCs zu erschnüffeln, eignen sich neben menschlichen Nasen auch gegen Übelkeitsanfälle immune Sensoren in Form eines USB-Sticks. Der beispielhaft bei [1] georderte Riechling signalisiert mit einer LED in wechselnder Farbe, wie es um die Raumluft bestellt ist.
Reine-Luft-Nummer
Ein Tool hilft mir, die Messwerte aus dem Stick auszulesen. Bevor ich die Software [2] baue, muss ich die Pakete Libusb-dev und Build-essential installiert haben. Nach dem Entpacken der Zip-Datei – etwa nach »/usr/local/« – wechsle ich in das Verzeichnis »usb-sensors-linux/trunk/airsensor/«. Dort kompiliert
gcc -o airsensor airsensor.c -lusb
das kleine C-Programm zu einem »airsensor«-Binary. Starte ich es, wirft mir der Sensor ungefähr alle 10 Sekunden einen neuen Luft-Messwert zu:
2016-12-09 11:27:26, VOC: 557, RESULT: OK 2016-12-09 11:27:37, VOC: 540, RESULT: OK 2016-12-09 11:27:48, VOC: 542, RESULT: OK 2016-12-09 11:27:59, VOC: 563, RESULT: OK 2016-12-09 11:28:11, VOC: 515, RESULT: OK 2016-12-09 11:28:22, VOC: 505, RESULT: OK
Die Maßeinheit für VOC-Konzentration heißt ppm (Parts per Million), mein Sensor ist auf Werte zwischen 450 und 2000 ppm spezifiziert. Er liefert auch höhere Werte, aber die hat wahrscheinlich ein Algorithmus interpoliert. Bei Werten unter 1000 ppm leuchtet die eingebaute LED grün, zwischen 1001 und 1500 ppm gelb und darüber rot.
Mit dem Parameter »-o« weise ich die Software an, nur einen Messwert auszugeben und sich dann zu beenden. Das macht es einfach, die Werte als Datenpunkt in eine Datenbank zu schreiben und Verlaufsgraphen zu zeichnen. Abbildung 1 zeigt, was bei der Zubereitung eines Frühstücks mit Bacon and Eggs passiert.






