Sensor de Calidad del Aire IKEA Vindriktning con Home Assistant
Haz que el Sensor de Calidad del Aire IKEA Vindriktning sea más inteligente al agregar Xiao ESP32 C3, Pantalla OLED, BMP280 e integrarlo con Home Assistant
IKEA Vindriktning es un excelente y asequible sensor de calidad del aire de IKEA. Puedes comprarlo directamente en IKEA por alrededor de 16 USD en EE.UU. o 10 EUR en Europa.
Sin embargo, no podrías llamarlo un sensor inteligente, ya que todo lo que hace es medir la calidad del aire y mostrarla utilizando luces LED.
Hoy, vamos a convertir el IKEA Vindriktning en un sensor realmente inteligente. Vamos a añadir una placa ESP32, una pantalla OLED de 0.91", un sensor de temperatura y humedad AHT21, y conectaremos nuestro IKEA Vindriktning a Home Assistant con ESPHome.
Más sobre el IKEA Vindriktning #
Un excelente sensor PM 2.5 por 10$ - Sensor de Calidad del Aire IKEA Vindriktning mide la calidad del aire basada en partículas (PM2.5). Las partículas PM2.5 son pequeñas partículas inhalables que miden entre 0.1 y 2.5 micrómetros.
La calidad del aire medida se indica en 3 niveles de calidad del aire: verde (bueno), amarillo (ok) y rojo (no bueno) con una luz LED.
Indicadores LED de Calidad del Aire PM 2.5, según el manual:
Color LED | Valor Medido de PM 2.5 | Calidad del Aire | Valor Legible |
---|---|---|---|
Verde | 0-35 | Bueno | Bajo |
Ámbar | 36-85 | OK | Medio |
Rojo | >=86 | No bueno | Alto |
Parpadeando | - | - | Modo de inicio |
Integraciones con Humidificadores de Aire #
Como dice IKEA, es “perfecto para combinar con el purificador de aire FÖRNUFTIG”, pero tendrías que encender el purificador manualmente. No hay posibilidad de encender el purificador automáticamente cuando la calidad del aire disminuye.
Personalmente, ni siquiera me atrevería a llamarlo una "combinación". Para solucionar esto, podríamos conectar ambos dispositivos a Home Assistant para automatizar el flujo de trabajo. Pero primero, empecemos por el propio IKEA Vindriktning.
Planificación de la Mejora del Vindriktning #
Para hacer que el sensor IKEA Vindriktning sea más inteligente, quiero añadir un sensor de temperatura y humedad AHT21, mostrar estos valores y los de calidad del aire en una pantalla OLED y conectar todos estos sensores a Home Assistant.
Para integrar el dispositivo con Home Assistant, crearemos un sensor Vindriktning en ESPHome, utilizando una placa de desarrollo ESP32.
Antes de comenzar, definamos un plan que seguiremos para crear un Sensor Vindriktning en Home Assistant:
- Desmontar el Sensor IKEA Vindriktning
- Seguir los pines del IKEA Vindriktning
- Identificar las piezas adicionales necesarias para nuestro nuevo dispositivo
- Preparar la placa ESP32
- Probar y volver a ensamblar el Vindriktning con ESPHome
Sin más preámbulos, vamos a ello.
Desmontar el Sensor IKEA Vindriktning #
Desmontar el Vindriktning es bastante fácil, solo tienes que desenroscar los 4 tornillos en cada esquina y el panel frontal debería salir sin problemas.
Ten cuidado al quitar el panel frontal, ya que hay una placa PCB montada en el panel frontal y algunos cables están guiados hacia el resto del compartimento.
Si decides desconectar los conectores JST de la PCB del panel frontal, ¡ten mucho cuidado! Yo logré romper el zócalo JST de la PCB y tuve que resoldarlo. Además, después de romper el de la PCB del panel frontal, decidí desconectar el JST del otro lado (el sensor PM2.5) y también logré romper ese :) No estoy seguro si es solo el dispositivo que tengo, o si están soldados de esa manera en todos... Al menos fue fácil volver a soldarlos en su lugar.
Desliza el sensor PM 2.5 fuera de la placa trasera del compartimento del IKEA Vindriktning.
Seguir los pines del IKEA Vindriktning #
En la PCB del panel frontal, en el lado opuesto al puerto USB-C, encontrarás unos pines expuestos marcados como "+5V, GND, ISPCLK, REST, ISPDA".
El Sensor PM 2.5 se comunica con el controlador principal del IKEA Vindriktning mediante el protocolo UART. El sensor lee los datos y los envía a la placa controladora principal a través del pin de Transmisión (TX) de UART.
El pin "REST" es el que necesitamos. Es el pin de Transmisión (TX) del Sensor de Calidad del Aire PM 2.5, que interceptaremos usando la placa ESP32. Esto permitirá que el controlador principal del Vindriktning IKEA funcione sin cambios, pero adicionalmente, los datos del sensor enviados por el Sensor PM 2.5 serán leídos por nuestro ESP32.
También necesitaremos los pines +5V y GND.
Identificar las piezas adicionales necesarias para nuestro nuevo dispositivo #
Como se mencionó anteriormente, vamos a añadir una placa ESP32, una pantalla OLED y un sensor AHT21 al IKEA Vindriktning. Vamos a identificar las piezas que necesitaremos.
- Placa ESP32
Cualquier placa funcionará, pero asegúrate de elegir el tamaño que se ajuste dentro del compartimento del IKEA Vindriktning y que no bloquee el flujo de aire del Sensor PM 2.5. La XIAO ESP32-C3 cumple perfectamente con estos requisitos.
- OLED Screen
Dado que no queda mucho espacio vacío en el panel frontal del Vindriktning, debemos elegir una pantalla de tamaño pequeño. Como solo quiero mostrar 3 valores en la pantalla: los datos de medición PM 2.5, la temperatura del aire y la humedad del aire, la pantalla OLED de 0.91" es una excelente opción.
- Custom Vindriktning Front Cover (Optional)
Para ajustar la pantalla en el panel frontal del Vindriktning, necesitaremos hacer un agujero allí. Podrías intentar cortarlo, pero nosotros elegimos imprimirlo en 3D. Encontramos un buen modelo en Printables creado por @TataGEEK_80060 - Cubierta frontal de IKEA Vindriktning con OLED
En caso de que no tengas una impresora 3D y no quieras dañar el Vindriktning, puedes continuar con este proyecto sin la pantalla de visualización. Aún podrás ver todos los valores en el panel de control de Home Assistant.
- Sensor AHT21
Para medir la temperatura del aire y la humedad del aire, elegimos el sensor AHT21, principalmente por su interfaz I2C, pero también por su asequibilidad.
Preparar la placa ESP32 #
Hay dos pasos necesarios para la preparación de la placa ESP32: - Software, donde configuraremos el ESPHome con nuestros sensores y la pantalla OLED. - Hardware, donde conectaremos nuestros sensores, incluyendo el Sensor de Calidad del Aire PM 2.5 de IKEA.
Software #
Para programar los sensores e integrar nuestra placa ESP32 con Home Assistant, utilizaremos ESPHome. Si aún no tienes instalado Home Assistant o ESPHome, puedes encontrar instrucciones detalladas aquí.
Crea un nuevo archivo de texto y llámalo
ikeapm25.yaml
.Abre el archivo y pega la siguiente configuración de ESPHome:
esphome:
name: ikeapm25
esp32:
board: seeed_xiao_esp32c3
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
password: ""
ota:
password: ""
wifi:
ssid: "<WIFI_SSID>"
password: "<WIFI_PASSWORD>"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Ikeaxiao Fallback Hotspot"
password: ""
captive_portal:
font:
- file: 'arial.ttf'
id: font1
size: 14
display:
- platform: ssd1306_i2c
setup_priority: -100
id: oled
model: "SSD1306 128x32"
address: 0x3C
lambda: |-
it.printf(0, 0, id(font1), TextAlign::TOP_LEFT, "%.0f ug/m2", id(pm25).state);
it.print(0, 16, id(font1), "ESPBoards");
it.printf(80, 0, id(font1), TextAlign::TOP_LEFT, "%.1f °C", id(temperature).state);
it.printf(80, 16, id(font1), TextAlign::TOP_LEFT, "%.1f %%", id(humidity).state);
i2c:
sda: GPIO8
scl: GPIO9
frequency: 200kHz
uart:
rx_pin: GPIO10
baud_rate: 9600
sensor:
- platform: pm1006
pm_2_5:
name: "Particulate Matter 2.5µm Concentration"
id: pm25
- platform: aht10
setup_priority: -100
temperature:
name: "Temperature"
id: temperature
humidity:
name: "Humidity"
id: humidity
update_interval: 60s
El comienzo de la configuración (hasta "font") es una configuración estándar de ESPHome, que puedes generar con esphome wizard <name>
. Ten en cuenta el board: seeed_xiao_esp32c3
, donde establecemos la placa como XIAO ESP32-C3. No olvides cambiar <WIFI_SSID>
y <WIFI_PASSWORD>
con tus credenciales de WiFi.
Luego, importamos una fuente 'arial.ttf'. Descarga cualquier fuente ttf de Internet y guárdala en la misma carpeta que esta configuración de ESPHome.
A continuación, configuramos el componente de pantalla para que sea la pantalla OLED 0.91" 128x32.
Configura el componente I2C. Se utilizará para los componentes I2C: OLED y AHT21.
Luego, configura el componente UART. Este es el componente del que leeremos los datos del Sensor de Calidad del Aire PM 2.5.
Finalmente, configura los sensores: plataforma pm1006 - el Sensor de Calidad del Aire PM 2.5, plataforma aht10 - el sensor de humedad y temperatura AHT21.
- Conecta tu placa ESP32 a la computadora y ejecuta
esphome run ikeapm25.yaml
.
Si necesitas instrucciones más detalladas sobre cómo cargar la configuración de ESPHome en la placa ESP32 o integrar el dispositivo ESPHome en Home Assistant, consulta nuestra publicación.
Nota: Dado que el GPIO9 de nuestro ESP32-C3 utilizado es un pin de arranque, puede haber problemas al inicializar la interfaz I2C en ESPHome. Agregar el parámetro setup_priority: -100
a los componentes aht10 y display debería solucionar este problema. Si no tienes problemas sin el parámetro setup_priority
, puedes eliminarlo de forma segura.
Hardware #
Primero, suelda cables a los pines de la PCB del IKEA Vindriktning, identificados anteriormente. Necesitaremos 3 cables: +5V, GND y REST. Conéctalos a la placa ESP32 de la siguiente manera:
Luego, conecta la pantalla OLED de 0.91" y el sensor AHT21 a la placa ESP32 de la siguiente manera:
IKEA Vindriktning | ESP32 | OLED | AHT21 |
---|---|---|---|
+5V | VCC | - | - |
GND | GND | - | - |
REST | GPIO10 | - | - |
- | GPIO8 | SDA | SDA |
- | GPIO9 | SCL | SCL |
- | 3.3V | VIN | VIN |
Hice el prototipo con la placa ESP32 D1 Mini (a la izquierda), pero aparentemente la placa con 2 filas de pines no cabe en la carcasa del IKEA Vindriktning, sin bloquear el flujo de aire para el sensor PM2.5. Por lo tanto, hice la modificación final (a la derecha) con el XIAO ESP32-C3.
Prueba y Reensamblaje #
Desconecta la placa ESP32 del cable USB y conecta el cable USB-C al puerto USB-C del IKEA Vindriktning. Deberías ver que la pantalla OLED se enciende. En unos segundos, aparecerán las mediciones de los sensores PM 2.5, Temperatura y Humedad.
Si todo funciona como se espera, mueve la placa principal del Vindriktning al panel frontal impreso personalizado. Vuelve a insertar el sensor PM 2.5, inserta la placa ESP32 y el sensor AHT21. Usé algo de pegamento caliente para fijarlos en su lugar.
El sensor PM 2.5 necesita un flujo de aire sin restricciones para medir con precisión la calidad del aire. Asegúrate de no bloquear ni restringir las vías de aire dentro de la carcasa del Vindriktning.
Coloca los tornillos de nuevo y conecta el cable USB-C al nuevo y más inteligente Vindriktning. ¿No es bonito?
Recursos Adicionales #
- LASKAKIT ESP-VINDRIKTNING - Si no quieres soldar en absoluto y prefieres una PCB elegante con todas las características, consulta el Laskakit de diseño Checo, de código abierto.
- IKEA VINDRIKTNING ESP32-CAM - ¿Quieres aún más características nuevas? Agrega una cámara encima del IKEA Vindriktning con la placa ESP32-CAM.
Conclusión #
En este post hemos mejorado el no tan inteligente sensor de calidad del aire IKEA Vindriktning a un sensor mucho más inteligente de calidad del aire, temperatura y humedad, conectado por WiFi y con ESPHome, que puede integrarse fácilmente en Home Assistant.
Hemos seguido un tutorial paso a paso sobre el desensamblaje, la identificación de la mejora y la realización de la actualización. Hemos visto cómo los dispositivos existentes en el mercado pueden ser fácilmente actualizados a los estándares actuales de dispositivos IoT.