Did you know that IKEA sells an air quality monitor called VINDRIKTNING? Neither did I. This USB-C-powered US$11.99 particle monitor packs a decent sensor for the price. Although, perhaps understandably, there is no cable and power supply included in the packaging. Despite still being earmarked as new on the IKEA website, this originally offline-only sensor has already been disassembled, analysed, and “hacked”. As we've come to expect with these projects, it all nicely integrates with Home Assistant.
A peek into the IKEA VINDRIKTNING
A closer look at the IKEA VINDRIKTNING reveals that it employs a Wuhan Cubic PM1006 sensor to measure air quality based on the presence of PM2.5 particles, as shown in the images below. Unlike laser-based systems, this sensor relies on infrared technology to detect changes in particle concentration, which means its measurements may not be as exact as the superior laser technology. However, it's worth noting that the VINDRIKTNING's price tag is rather modest—less than what you'd pay for a cup of top-notch coffee at a lakeside café in Switzerland.
Tracking long-term data with the IKEA VINDRIKTNING
While the VINDRIKTNING doesn't transmit data externally, it does provide users with visual feedback on air quality via colour LEDs. These lights continue to operate even when the monitor has been modified for Wi-Fi connectivity, which allows for automation and long-term data tracking.
How the IKEA VINDRIKTNING hack works
Besides the Wuhan Cubic PM1006 sensor, there is a small PCB inside the IKEA VINDRIKTNING which gathers data, controls the LEDs, the sensor's fan, and has a USB-C socket for power. Conveniently placed on this PCB are a couple of solder pads to which the ESP8266 board can be connected. There are only three cables needed: two for power and one for data. Judging by the images in the repository, the inside of the chassis is slightly cramped, and I would therefore recommend nothing larger than a D1 mini ESP8266 board or one of its many clones.
Flash before you solder
But before soldering any wires, I recommend flashing the board, as it will be considerably easier to access the Micro-USB port at this point. Unfortunately, it is not easily possible to use ESPHome at this point, as the sensor is unsupported. Someone more skilled than me might be able to figure out how to use the UART component to poll the sensor.
You will need to download and install the Arduino IDE. To the Arduino IDE, you will need to add support for ESP8266 microcontrollers and install several libraries. Once the board has been flashed with the firmware provided in the GitHub repository, it will create an access point to which you can connect and configure Wi-Fi as well as MQTT.
Adding the ESP8266 to the IKEA VINDRIKTNING
Once the board is ready, the power wires need to be connected to 5V and GND on either end, and the data wire to pin D2 on a D1 mini ESP8266 board. As ESP8266 boards, such as the D1 mini and its many clones, can be powered by 5V, there is no need for any further components.
IKEA VINDRIKTNING low-noise mod
In addition to adding Wi-Fi to their IKEA VINDRIKTNING, the same developer decided to implement a low-noise mod to the sensor's fan. The issue is that in its stock configuration, the fan will spin up about every minute and then spin down again. Generally speaking, a constant, but quieter noise, is less distracting to the human ear.
To change this behaviour, the developer attached the fan to the D1 mini's 3.3V regulator and thus could have it spin constantly but at a lower speed. According to the images shown on GitHub, the fan pulls only very little current and shouldn't overload the board.