IKEA Vindriktning Air Quality Sensor

Can you please explain your logic here?

I wanted to connect the fan to 3.3v, to reduce noise; as described by Hypher.

I only reconnected the + / red wire to 3.3V.
Later on I discovered that the fan was still turning on/off (which was not my objective :wink:). It appears that the fan is controlled via it’s GND connection

I can imagine that a lower fan speed will result in a lower air flow. Might result in the sensor seeing less particles per unit of time; measured values might be lower than 5V fan.
But because the measurements seems to be optimistic (see post 72 in this thread), I don’t think the lower fan speed should be an issue.


Thanks! That drawing explains a lot. Interesting solution with the transistor. Everyone would think the opposite way, I guess.

@sermayoral, have a look at this:


Sad. Would be cool to get PM10 and PM1 measurements, too. Can we plot them to confirm that these don’t contain useful informations?

Adding an export for them, clearly marked as ‘unknown value’, would be a small change to the driver. I’ll think about it (of course, anybody else is free to PR such a change as well!)

Thanks Habbie. :slight_smile:

Anyway, here’s my config which also exports the power consumption and enables the Vindriktning to be shown properly in the Energy Monitoring:

  rx_pin: D2
  baud_rate: 9600

  - platform: pm1006
      name: "$friendly_name"
      accuracy_decimals: 2
        - sliding_window_moving_average:
            window_size: 50
            send_every: 10
            send_first_at: 10
  - platform: template
    name: "$friendly_name - Power Usage"
    id: power_consumption
    device_class: power
    state_class: measurement
    unit_of_measurement: W
    accuracy_decimals: 4
      - heartbeat: 60s
  - platform: integration
    name: "$friendly_name - Consumed Energy"
    sensor: power_consumption
    time_unit: 'h'
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: 'Wh'
    restore: false
    integration_method: left

  - interval: 1min
      - sensor.template.publish:
          id: power_consumption
          state: 0.5696

The power consumption is what I measured earlier plus 10% inefficiencies for the power supply.


You managed to figure out how to control the LED’s from ESP ?

No, sadly not.

Have a look at the post above. It has a link to Twitter where you can find a sketch of the PCB and you will find the LEDs as well on that.

Other option, you can disconnect the PCB from the sensor and you can feed the “appropriate” UART messages to the PCB from the ESP to control the LEDs. For color changes refere to the manual. You just need to send UART messages according the color what you want to display. :wink:


So yesterday I added 2 sensors in the Vindriktning and a Wemos D1 mini:

  • CCS811, gives me CO2 and VoC
  • SHT31D, gives me temperature and humidity
    Both use I2C, all working fine, except temperature measurement is to high, I checked inside and it is due to heat produces by the ESP…
    Maybe I should make the fan run permanently ?

I looked a bit further for the LED’s, it seems green leds are connected to +5V and via R5 and R9 to the µC. Difficult to control as the are on +5V allready. Same problem for the other LED’s…

I was wondering if it wouldn’t be more easy to create a new PCB for Vindriktning, than it would just be a PCB swap and done, what you guys think ?
Did anyone was able to make the particular matter sensor work straight from the ESP ?

1 Like

I used a BME680 for CO2, VoC and temperature etc. ESPHome offers a temperature offset option for the BME680_bsec sensor. I have set it to 1, and the temperature now corresponds roughly with another temperature sensor I have standing next to the Vindriktning.
My idea was that the more sensors you add to the box, the more heat is generated. So investing in one single sensor seemed logical to me.

For me, it’s not the sensors, nut the Wemos making the heat… and yeah, it stays a small box…
Will try with the offset.

I think every component will generate some heat. Some more, some less. reducing the number of components will also reduce the heat. I had a D1 mini without pins, so I soldered the wires directly to the Wemos and placed it under the fan. The BME680 is taped to the top of the vindriktning, so the distance is as big as possible.

1 Like

Hi, thanks for the config - I use it for my sensor. But for some reason I am getting unknown for the air sensor:
Any clues?

Hey, guys! I’m looking at the IKEA PM sensor mod but I also want to squeeze a mhz19 in there and both happen to connect over UART. So question is - can the wemos d1 mini support two UART connections (as I imagine one cannot be shared)? Is there an alternative small board (~45 mm long) that can handle two UART connections?

1 Like

Have a look above, someone has done it:


Exactly the same here. Did you manage to get it working yet?

I think this shematic is very well done…

but maybe a found a mistake, according to datasheet and my voltage continuity meter the 5v and GND are swapped.

Here is my version (with some english led colors translation)

Here is the schematic i found for ES7P001 uC:


Probably the chinese website will be down in the future… so here is an excertp ( i cannot upload PDF due to community restriction)

1 Like

That Vindriktning thing is quite interesting.
I grabbed myself one approx. two months ago an now combined it with a Wemos D1 Mini and a BME280 breakout board to make some sort of outdoor weather station.

I really dont know how accurate the Sensor is (have nothing to compare), i modified it with some hoods so that the air will be sucked in from outside of the case and will go back outside when it passed the sensor.
We will so how it works out in the next couple of months.

I documented it a bit more in detail on my blog (unfortunately not translated yet but many pictures):