IKEA Vindriktning Air Quality Sensor

First time with esphome, and got a d1 mini clone installed and found correctly inside of HA.
Did severale OTA updates with a supposed working yaml file, but my sensor stays unknown.
If i try Rx-pin: D2, i get an script error. So i looked at the board layout and used GPIO4 instead. Still not showing up. I swapped the sensor position on the board to pin D7 and used GPIO13 but still not showing up.

I’ve connected the ikea sensor with a resistor voltage reducer, 2x 1 Kohm and 1x1Kohm as shown in the link below:
only used for connecting the sensor, did not use arduino ide

here is the yaml code used at the moment:

esphome:
  name: esp-ikea
  friendly_name: esp-ikea

esp8266:
  board: esp01_1m

# Enable logging
logger:
  
# Enable Home Assistant API
api:
  encryption:
    key: "Zxxxxxxxxxx="

ota:
  password: "xxxxxxxx"

wifi:
  manual_ip:
    static_ip: 10.0.1.187
    gateway: 10.0.1.1
    subnet: 255.255.255.0

  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp-Ikea Fallback Hotspot"
    password: "4gp0Czxcl437"

captive_portal:
    
# Ikea Vindriktning PM2.5 sensor
uart:
  rx_pin: GPIO13
  baud_rate: 9600

sensor:
  - platform: pm1006
    pm_2_5:
      name: "Ikea Vindriktning PM25"


![Screenshot 2023-04-25 at 08.30.14|690x309,

Any help would be welcome.

Just for kicks… added a ld2410c mmwave and pir sensor to the faceplate, fits really nice


Now has: esp32, pm2.5, co2, temp, humi, tvoc, pir and mmwave :ok_hand:

Did haven an issue with the d1 mini 32 when connecting vcc to the 5v of the original board it would bootloop, when connecting 5v to the usb-side of the diode on the espboard it is fine

1 Like

On esp8266 I think you should use gpio3, the ‘rx’ pin on the esp. Than disable logger by setting baud_rate to 0

uart:
  rx_pin: GPIO3
  baud_rate: 9600

logger:
  baud_rate: 0

just modded another Vindrikting… ld2410B, PMS7003 (in stead of the noisy PM1006 of IKEA, removed all the components from the ikea board (incl the leds, ex. the capacitor and USB-C circuit), fits snuggly :+1:



1 Like

Can you share code for lights ?

Nice. I have also ditched my ikea sensor entirely. For me the fan noise wasn’t loud, but I think it was about to fail. I went with this setup now. Doesn’t have led or a case, but it does have a nice lcd screen.

I have a Vindrikting modded with a D1 mini and a sgp30. It’s working fine but I can hear the fan spinning for 20" and it stays off for only 10". I remember in the past it was spinning every minute. What could that mean? Is it fixable?

Would this work with a Seed ESP32C3? I have one spare and wondering if this could do the job? Thank you.

Should be!

1 Like

So i just connect same as the ESP8266? Sorry if this seems obvious but im very unexperienced with ESP stuff. The only thing i did with ESP was the watermeter Ai On The Edge. Not really ESPhome but, i liked the end result and the learning there. :smiley:

I’m trying to complete this project being a complete novice into esp/arduino stuff. I figured I’d see something in the log even with nothing connected and that I could add readings to the log before trying to connect it up to HA. But does the code do nothing before an MQTT connection is registered?

I would like to build a good CO2 sensor and this Ikea Vindriktning seems to be a good starting point.
A good and reliable CO2 sensor seems to be the Senseair S8 which is around 21 euros at the moment.
Did anyone try to use that with the D1 mini in this Ikea Vindriktning ?

This might be a crazy idea, but I’m thinking about spliting this into two functions…

  1. Reading PM2.5 data for home assistant
  2. Displaying green/yellow/red status FROM home assistant (not just PM2.5 data)

My thinking is to hook things up like this by inserting a Wemos D1 Mini into the wire between the PM1006 ad the Ikea logic board.

  • Connect TX from Ikea logic board directly to the PM1006 so it send requests
  • Connect RX on the Wemos D1 Mini to the TX on the PM1006
  • Connect TX on the Wemos D1 Mini to the RX on the Ikea board

I am thinking I’m going to need a logic level convertor too as the Wemos D1 Mini is 3.3v but the PM1006 is 5v…

I’ve been on aliexpress and ordered what I think I need (and a BME280 to throw in there whilst I’m doing this!)

Am I crazy, anyone else done similar?

If you want to do a man in the middle and relay the information then you are thinking correctly, but for the purpose, it is just overcomplicated.

As you will need to relay everything on time and correctly.

There are similar projects doing this kind of things, like the Lay-Z-Spa ESP module:

My fan is loud but the main issue is that the intervals for on and off are not correct.

So I desoldered the R12 resistor which is connected to the transistor’s base that controls the fan. I connected the base of the transistor with a gpio pin on the ESP module through another resistor. Now I can control the fan from esphome but I’m not sure when the fan should stay on or off.

The sequence of my device is this:
Turn on the fan.
10" later starts getting sensor’s readings (with the fan on) and continues for 12-13".
1" later turn off the fan.
10" later turn on the fan.

Could you check how yours is functioning so I understand what’s wrong on mine?
Should the fan spinning or staying off during the sensor’s readings and for how long?

I just made a version. Here’s my full step-by-step tutorial - ESPHome Code included

5 Likes

Hello,
i’m a couple of years late, but i could not resist getting one of these (strange name here) to be turned smart.
With the idea of keeping the original functioning (so only read data with a esp8266/esp32) just wondering why we only read the RX pin and not all the rest the board is exposing.
I see a “led G” pin, a “led R” pin and a “fan pwm”, anyone knows what comes out of here? maybe i can understand what led is on (orange is missing, will it be the color lit when these 2 pins are off?), and also the fan speed getting the pwm…
ISPDA and ISPCLK no idea what are about :smiley:
thanks

The RX pin has the PM sensor value, which is already requested by the board by default. The ESP module just joins in to read the same value which is interpreted by the IKEA electronics.

No need for any other line, because the whole idea is to get the PM sensor’s value and that can be used further on in Home Assistant.

Hello!

I have an Ikea Vindrikning with a Laskakit board. I’m wondering how to get the fan to start and stop like it does from the factory. Right now it runs all the time.
I use ESPHome.

I wanted to add a screen and didn’t want the hassle of setting up wi-fi, so I made a fork of Hypfer’s project and 3D-printed a case with a slot for an OLED screen (my fork removes wi-fi entirely).