Ikea-Feinstaubsensor Vindriktning zum IoT-Device aufbohren

Der günstige Feinstaubsensor Vindriktning von Ikea lädt zum Hacken ein: Mit einem ESP8266 und ein paar Lötverbindungen wird er zum echten IoT-Sensor.

In Pocket speichern vorlesen Druckansicht 44 Kommentare lesen
Lesezeit: 6 Min.
Von
  • Carsten Wartmann
Inhaltsverzeichnis

Der mit 10 Euro erstaunlich günstige Feinstaubsensor Vindriktning von Ikea ist ideal zum Hacken. Mit einem einfachen ESP8266-Entwicklungsboard und ein paar Verbindungen zu leicht erreichbaren Lötpunkten wird er zum echten IoT-Sensor. Damit lässt er sich in ein Home-Automationssystem einbinden oder man kann die Feinstaubbelastung im Internet dokumentieren.

IKEAs Vindriktning: die Interna (5 Bilder)

Hauptplatine mit den Löt- und Testpunkten

Ikea hat den Vindriktning-Sensor sehr hackfreundlich aufgebaut. Bisher sind mir keine Firmwareanpassungen bekannt, geschweige denn, ob sich der im Inneren zu findende Eastsoft-Mikroprozessor überhaupt flashen lässt. Die dafür erforderlichen Pins sind jedenfalls auf dem Board herausgeführt. Daneben existieren auch Pins, die dem neugierigen Maker den Status der LEDs und des internen Ventilators verraten. Die Hoffnung, dass die Fan- und Fan-PWM-Pins für einen externen Lüfter oder Filter gedacht sind, wird enttäuscht: Ich konnte bei meinen Experimenten weder ein PWM-Signal noch eine Schaltspannung finden, die nicht synchron mit dem pro Minute einmal stoppenden internen Lüfter parallel geht.

Auf der Platine befindet sich auch eine IR-LED (ich vermute es nach dem Aufdruck im Silkscreen, ein IR-Empfänger würde aber auch Sinn machen), die durch die LED-Abdeckung hinausscheint. Eventuell soll hiermit kabellos ein Luftfilter gesteuert werden? Allerdings habe ich mir nicht (und scheinbar auch sonst noch niemand) die Mühe gemacht, herauszubekommen, wie genau die Schaltung der Platine ist und welche Pins zum Mikroprozessor gehen. Nach der Ankündigung von Ikea soll es jedoch im Oktober 2021 einen "smarten" Luftfilter mit Anbindung zu Ikea TRÅDFRI, Apples Homekit, Google Home und Amazon Alexa geben. Ich vermute, in dieses neue Produkt wird ebenfalls eine Vindriktning-Platine eingebaut sein.

Der verwendete Partikelsensor scheint sehr eng mit dem bekannten Cubic PM1006k verwandt zu sein. Am Stecker zum Main-Board findet man 5V, GND, TX- und RX-Anschlüsse. Praktischerweise werden diese Leitungen zu großen Löt- und Testpunkten auf dem Board geleitet. Schließt man ein Oszilloskop an GND und REST an, so kann man die serielle Kommunikation (9600 Baud, 8N1) des Partikelsensors mitschneiden.

Für den Screenshot des Oszilloskops habe ich den Sensor mit Löt-Rauch gequält und entsprechend hoch sind die PM2.5-Werte (die Zahl gibt die mittlere Partikelgröße des Feinstaubs in Mikrometer an), die in den Bytes 5 und 6 (von Null gezählt) geliefert werden. Byte 5 wird mit 256 multipliziert und dann Byte 6 addiert, um den Wert zu erhalten – hier 970µg/m3, knapp an der PM2.5-Messgrenze des Sensors. Man sieht aber auch, dass entgegen des Datenblatts für den PM1006k die Bytes 1 und 2 anders sind. Also verwendet Ikea hier wohl einen anderen, eventuell speziell für die Firma gebauten Sensor.

Jetzt sollte man also ein ESP8266 oder ähnliches anschließen und die Daten mitschneiden können. Für den Anschluss meines ESP bediente ich mich der Erfahrungen, die der User Hypfer auf GitHub dokumentiert hat. Tatsächlich verbindet man den ESP einfach mit 5V und GND vom Vindriktning und das TX-Signal (am besten am REST-Pin) mit einem GPIO. Achtung, die GPIOs des ESP8266 sind nicht für 5V gedacht, aber wohl etwas tolerant, wir übernehmen keine Haftung. Es scheint aber bisher noch kein ESP gegrillt worden zu sein.

Der Auslese-Teil von Hypfers Code war schnell zur Mitarbeit zu bewegen, mangels MQTT-Broker im Heimnetz konnte ich die IoT-Funktion aber nicht direkt zum laufen bekommen. Daher habe ich den Code für AdafruitIO umgemodelt. Ein öffentliches Dashboard auf ArduinoIO dokumentiert die Werte meines Sensors, solange ich nicht daran herumbastele.

Im Bild oben, bei Markierung 1, wurde die Wohnküche gelüftet: Die Partikelwerte schnellten hoch (der Sensor zeigt aber weiter "grün"), draußen war es nebelig und die Tröpfchen wehten herein. Bei Markierung 2 wurde die Katze hereingelassen und das erhöhte Grundrauschen bei 3 waren vier Personen, die sich hektisch für Kita, Schule und Arbeit bereit machten. Der Sensor übermittelt auch noch weitere Werte für vermutlich PM1.0 und PM10. PM2.5 und PM10 scheinen in der gleichen Skalierung zu sein. Wenn man den Sensor mit Löt-Dampf oder Papier-Rauch belastet, zeigen sich in den Kurven Unterschiede (siehe auch Bild unten). Bei der Markierung 1 auf diesem Bild wurde Löt-Rauch in den Sensor gepustet (PM2.5 ist auf Maximum) und bei Markierung 2 ein altes Kissen ausgeschüttelt.

Feinstaub mit PM1.0 wäre sehr schädlicher, weil in der Lunge verbleibender Staub, ich bin aber mangels Datenblatt oder "Kalibrierstaub" nicht sicher, ob diese Werte irgendeine praktische Bedeutung haben. Nicht zuletzt ist der Sensor nur mit einer Mess-LED ausgestattet. Diese Messmethode hat gegenüber einem Laser-bestücktem Sensor einen nicht zu guten Ruf, was Genauigkeit angeht.

Generell find ich die Warnstufen des Sensors etwas zu hoch gewählt – wenn er anschlägt, ist die mangelnde Luftqualität schon mehr als offensichtlich. Umso interessanter ist es, einmal ein paar Tage ein Protokoll der Werte aufzunehmen und zu sehen, wie sich die Alltagsaktivitäten auf die relative Staubbelastung auswirken. Was bleibt, ist ein interessanter, preiswerter, hackbarer Sensor, egal, ob man ihn modifiziert oder ausschlachtet (ein einzelner Cubic-Sensor kostet schon mehr). Auch in Home-Automation-Foren wird bereits heftig gebastelt und es hier gibt es auch vergleichende Messungen zu anderen Sensoren.

(caw)