Vindriktning
Wie IKEA auf den Namen Vindriktning kommt, bleibt wohl ein schwedisches Geheimnis. Nachdem aber dieser kleine und in keinster Weise "smarte" Raumluftsensor für 10€ in den Handel kam, dauerte es nicht lange und die IoT-Bastler haben das Gerät als Basis für eigene Experimente entdeckt. Der darin verbaute Partikelsensor (PM2.5) kostet nämlich schon einzeln in China oft mehr und so bekommt man noch ein Gehäuse dazu? Leider kann man wohl den internen Prozessor nicht mit einer eigenen Firmware versehen und er hat keine Antenne und spricht weder Bluetooth noch WLAN. Der Platz im Gehäuse hindert uns aber nicht, z.B. einen kleinen WeMOS D1 unterzubringen, der die gleichen seriellen Ausgaben mitliest und über weitere freie Ports auch noch Temperatur, Druck, Feuchte erfasst. In dem Vindriktning ist nämlich sogar ein Lüfter für die Messung der Partikel enthalten und so auch die anderen Sensoren mit Frischluft versorgt. Leider startet der Lüfter leider sehr häufig und hörbar.
Planung
Wenn man nicht gleich zu den ersten Bastlern gehört, dann reicht eine Suche nach "Vindriktning" um neben dem IKEA-Angebot auch sehr viele Projektbeschreibungen zu finden. Hier daher ein paar Links:
- IKEA VINDRIKTNING
https://www.ikea.com/de/de/p/vindriktning-luftqualitaetssensor-70498242/ - MQTT connectivity for the Ikea
VINDRIKTNING
https://GitHub.com/Hypfer/esp8266-vindriktning-particle-sensor - IKEA Vindriktning air quality sensor
running Tasmota
https://blakadder.com/vindriktning-tasmota/ - HomeAssistant: IKEA Vindriktning Air
Quality Sensor
https://community.home-assistant.io/t/ikea-vindriktning-air-quality-sensor/324599/18 - ESP8266 ADDS WIFI LOGGING TO IKEA’S AIR
QUALITY SENSOR
https://hackaday.com/2021/07/24/esp8266-adds-wifi-logging-to-ikeas-air-quality-sensor/
Im Prinzip klaut man sich von dem Vindriktning die Energieversorgung und das serielle Ausgangssignal. Die gesamte Steuerung des Lüfters und die Ansprache des Partikel-Sensors verbleibt beim vorhandenen Prozessor. Der ESP8266/ESP32 hat natürlich noch weitere Ports frei und kann daher auch um andere Sensoren erweitert werden. Um dann noch einen Druck/Temperatur/Feuchte-Sensor einzubinden, gibt es ebenfalls ausreichend Seiten.
- MicroPython: BME680 with ESP32 and
ESP8266 (Temperature, Humidity, Pressure,
Gas)
https://randomnerdtutorials.com/micropython-bme680-esp32-esp8266/ - BME680 temperature, humidity, pressure
and gas sensor
https://www.bosch-sensortec.com/products/environmental-sensors/gas-sensors/bme680/
https://tasmota.GitHub.io/docs/BME680/ - BME 280 - Humidity sensor measuring
relative humidity, barometric pressure and
ambient temperature (SPI und I2)
https://www.bosch-sensortec.com/products/environmental-sensors/humidity-sensors-bme280/
https://tasmota.GitHub.io/docs/BME280/ - ESP8266 DHT11/DHT22 Temperature and
Humidity Web Server with Arduino IDE
https://randomnerdtutorials.com/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide/ - DHT11 vs DHT22 vs LM35 vs DS18B20 vs
BME280 vs BMP180
https://randomnerdtutorials.com/dht11-vs-dht22-vs-lm35-vs-ds18b20-vs-bme280-vs-bmp180/ - Cubic - Model PM1006K - LED Particle
Sensor
https://www.environmental-expert.com/products/cubic-model-pm1006k-led-particle-sensor-752064
Wer dann nicht mal selbst programmieren will, nimmt einfach eine fertige ESP8266 3rd Party Firmware, die den Vindriktning von Hause aus unterstützt, z.B. ESPEasy oder Tasmota. Wir müssen bei all diesen Aktionen natürlich sicherstellen, dass jeder Sensor seine eigenen IO-Pins nutzt. Je nach Webseite werden unterschiedliche Anschlüsse verwendet. Ich habe die Default Pins für den WEMOS D1 verwendet und daher wie folgt verbunden:
Wemos D1 | Ziel | Beschreibung |
---|---|---|
GND |
Vindrikting GND BMC280 GND |
Die Masse habe ich an den Vindriktning und den BMC280 verbunden |
5V |
Vindriktning 5V |
Die 5 V Versorgung, die später vom Vindriktning kommt, habe ich mit dem Vindriktning 5V verbunden |
3,3V |
BMC280 3,3 |
Der Wemos hat einen Spannungsregler, um die 5V auf 3,3V zu senden und damit auch den BMC280 zu versorgen.. Es gibt zwar auch BMC280-Module, die 5V vertragen aber diese dann selbst auf 3,3V senken und die Abwärme ist dann näher am Sensor |
D1=GPIO5 |
Vindriktning REST |
Hierüber kommen dann die Daten des Partikelsensors an den Wemos D1 |
D2=GPIO4 |
BMC280 SDA |
Das ist die I2C Datenleitung vom Wemos D1 zum BMC280 |
D3=GPIO0 |
BMC280 SCL |
Das ist die I2C Taktleitung vom Wemos D1 zum BMC280 |
- WeMos Mini D1 - Default I2C & SPI pins
https://steve.fi/hardware/d1-pins/
Einbau
Das Gehäuse ist sehr sauber aufgebaut und mit vier Kreuzschrauben (z.B. PH1x40) auch schnell geöffnet. Die Elektronik mit den LEDs auf der Rückseite ist am Deckel angeschraubt und muss nicht entfernt werden. Wir brauchen nur die drei markierten Lötpads für +5V, GND nud Serial out verzinnen und dann drei Kabel anzubringen.
Ich habe bei mir dazu Rot (+5V), Braun (GND) und Orange (seriell) genutzt und direkt an den Wemos D1 angelötet. Zusätzlich habe ich noch einen BMC280 mit dem Wemos verbunden. Vor dem Einbau haben ich den Wemos mit einer Tasmota-Firmware mit der Unterstützung für den Vindriktning geflashed. Über die Micro-USB-Versorgung des Wemos D1 wurde auch der Vindriktning versorgt. Den USB-C Anschluss darf man in der Zeit nicht nutzen. So war aber schon im Diagnose-Mode direkt die Funktion zu prüfen. Der Energiebedarf war zwischen 50-150mA und hat damit nicht den Wemos D1 überfordert.
Den BME280 und den WEMOS D1 habe ich einfach mit doppelseitigem Spiegelklebeband innen angeklebt.
- Tasmota
https://tasmota.GitHub.io/docs/ - Support ab Version 9.5.0.7
https://GitHub.com/arendst/Tasmota/blob/development/CHANGELOG.md#9507-20210901
Nach einen Update auf 12.2.0 war die Funktion immer noch gewährleistet - Sie brauchen die "All Sensors"
https://GitHub.com/tasmota/install/raw/main/firmware/unofficial/tasmota-allsensors.bin
Ausgabe
Deckel zu, Strom per USB-C wie gehabt angeschlossen und der Vindriktning hat unverändert weiter die Luftqualität gemessen und auf den LEDs angezeigt. nach der Verbindung per WLAN habe ich Tasmota parametrisiert und konnte dann im Browser direkt die Daten sehen:
In früheren Bildern wurden auch Messwerte für die Partikelgrößen PM 1,0 und PM10 angezeigt. Die liefert der PM1006 Sensor aber nicht. Die liefert der teurere PM5003. Auch ein HM3301/HM3302 wäre ein alternativer Sensor.
Eine Einbindung an einen MQTT-Server zwecks weiterer Verarbeitung der Daten steht natürlich nichts entgegen. Wie aussagekräftig insbesondere die Temperatur bei all den Verbrauchern im Umfeld ist, steht auf einem anderen Blatt.
Verbesserung
Zuerst war mein Ziel das "Nachbauen", was sehr schnell funktionierte. Aber natürlich gibt es Optimierungspotential:
- Einbau mit USB-Öffnung zur Rückseite
Der ES8266 ist aktuell so eingebaut, dass ich beim geöffnetem Gehäuse an den USB-Anschluss komme. Genau genommen könnte ich ihn um 180Grad drehen und auf der Rückseite eine Öffnung für den USB-Anschluss machen. dann könnte das Gerät auch ohne Öffnung über den USB-Anschluss des WEMOS betrieben aber auch programmiert werden. - ESP32 als Bluetooth Beacon
Anstatt des ESP8266 könnte man auch den minimal teureren aber leistungsfähigeren ESP32 nutzen, der neben WLAN auch Bluetooth spricht. So könnte die gesammelten Informationen z.B. als BTLE-Beacon regelmäßig versendet werden. - Externes Thermometer
Der Wemos-D1 hat ja noch einige Pins offen und über einen DS18B20 per 1-Wire Bus könnte die Box z.B. die Außentemperatur messen. - Batteriebetrieb
Prinzipiell kann der Luftsensor auch mit einer USB-PowerBank betrieben werden. Allerdings ist er ja dauernd per WLAN aktiv und der Lüfter läuft auch regelmäßig an. Stromsparen geht anders. Theoretisch könnte der WeMOS in den Tiefschlaf-Mode gehen und dabei auch den Partikelsensor abschalten. Aber ob da dann reicht, steht auf einem anderen Blatt - LCD-Anzeige
Neben den LEDS für "Grün, Organe, Rot" gibt es aktuell keine weitere Anzeige. Ein kleines OLED-Display könnte mehr zeigen. Aber das wären schon größere Umbauten am Gehäuse. Dann würde ich eher den Sensor in einem ganz eigenen Gehäuse einbauen.
Im Grund ist das Gehäuse des Vindriktning mit dem eingebauten Partikelsensor auch eine gute Basis für weitere Bauprojekte. Leider ist der USB-C-Anschluss so knapp angelstet, dass man schon sehr mit einer Mikro-Lötnadel agieren müssen um die D+/D--Leitungen abzugreifen und an den WeMIS zu führen.
Ich wüsste gar nicht mal, welche der sechs sichtbaren Pins dafür in Frage kommen. USB-C hat bis zu 2x12 Pins, aber da sich der Vindriktning nicht per USB meldet, dürften die Anschlüsse frei sein.
Weitere Links
- ESP8266
- WeMOS IoT-Device
- ESP8266 3rd Party Firmware
-
Tasmota: #12976 Add support for Ikea
vindriktning
https://GitHub.com/arendst/Tasmota/pull/12976
Diskussion zur Erweiterung des Code mit Hinweis, dass der Sensor nur PM 2,5 um liefert -
Tasmota: #12810 Is there suport for IKEA
air sensor?
https://GitHub.com/arendst/Tasmota/discussions/12810#discussioncomment-1259303 -
esp8266-vindriktning-particle-sensor
https://GitHub.com/Hypfer/esp8266-vindriktning-particle-sensor/blob/master/src/SerialCom.h#L26-L53 -
IKEA Vindriktning air quality sensor running
Tasmota
https://blakadder.com/vindriktning-tasmota/ -
Ikea Vindriktning Wetterstation
https://blog.sengotta.net/ikea-vindriktning-wetterstation/ - ESPHome: PM1006 Particulate Matter
Sensor
https://esphome.io/components/sensor/pm1006.html - Cubic - Model PM1006K - LED Particle
Sensor
https://www.environmental-expert.com/products/cubic-model-pm1006k-led-particle-sensor-752064 - ESPDustLogger
https://GitHub.com/timbocgn/way2dustlogger#access-the-sensor-data
Alternative Firmware, die den Vindriktning ausliest - IKEA Vindriktning Air Quality Sensor
https://community.home-assistant.io/t/ikea-vindriktning-air-quality-sensor/324599/4 - IKEA makes an air quality monitor, and
it has already been hacked
https://home-assistant-guide.com/2021/07/20/ikea-makes-an-air-quality-monitor-and-it-has-already-been-hacked/