unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.637
El tonto, pero fácilmente expandible IKEA VINDRIKTNING


Uno de los hobbies que más me gusta es comprar algo barato y sacarle todo el provecho adicional que pueda: me encanta saber cómo un producto está hecho, cómo está armado y si tiene capacidades de expansión... pues tanto mejor! A modo de ejemplo, en su tiempo compraba routers TP-Link para flashearlo con DD-WRT y así suma y sigue.

Así fue como el otro día di con una noticia de que IKEA había sacado unos sensores PM 2.5 bastante baratos (llamados IKEA VINDRIKTNING), CLP 10.000 cada uno: considerando que sólo el sensor cuesta eso en AliExpress, me llamó la atención. Me puse a investigar y di con un hilo en Twitter que deshuesó el sensor por completo revelando que las piezas que ocuparon son de relativamente buena calidad y que -cosa rara- dejaron bastante espacio en su interior. Lo mejor de todo si es que la placa controladora tiene los puntos de testeo completamente descubiertos, lo cual significa... that it's hacking time!

Esto por supuesto me llamó tremendamente la atención, así que partí y compré 2 para probar echando a perder. Me pareció una buena excusa también para empezar a meterme al mundo Arduino ya que hasta el momento nunca había hecho algo en Arduino: en AliExpress, compré también 3 Wemos Mini D1 y el resto de los materiales ya lo tenía en casa: a uno de los sensores pensaba ponerle un sensor de temperatura y humedad, mientras que el otro sólo lo iba a conectar a la WiFi.

Una vez que me llegaron todas las piezas, era hora de abrir el bicho! Para no interrumpir el tráfico del aire y además para no afectar la lectura de temperatura por las piezas que iban a quedar dentro de la base, decidí dejar el sensor de temperatura por el lado posterior en el exterior, por lo que tuve que taladrar un pequeño hoyo para poder sacar los cables.

Taladrando de forma cuidadosa el hoyo para sacar los cables


Tip: cuando quieran hacerle un hoyo a plástico, háganlo con una broca para metal: sacará material de forma más suave que uno para madera lo cual conllevará a que tienda a romperse menos.

Una vez hecho el hoyo, decidí poner todos los materiales encima de la mesa para ver cuál iba a ser la distribución final:

Todas las piezas encima de la mesa


La parte netamente hardware es bastante simple de soldar. Aunque este sensor todavía no tiene un lugar definitivo en la casa, sí existe la posibilidad de que termine en nuestro dormitorio. En ese caso, el sonido del ventilador es un poco molesto, sobretodo en un dormitorio. Por eso es que existe un mod adicional que se le pueda hacer: de forma predeterminada, el aparato encenderá el ventilador cada minuto por unos 30 segundos a 5v para darle el flujo de aire que el sensor laser necesita para calcular la dispersión de las partículas. Sin embargo, este ventilador también funciona bien proporcionando 3.3v de forma contínua.

Afortunadamente, el ESP8266 que trae el Wemos D1 Mini funciona a 3.3v, y como esta placa tiene una conexión USB, también trae integrado un Logic Level Shifter: si alimentamos el board con 5v, tendremos un pin con 3.3v... ideal!

Lo único complicado de esta pequeña placa, es que sólo tenemos una salida de GND, lo que significa que voy a tener que juntar varios cables en una salida: 3 para ser exactos: la primera es la que alimentará esta placa, la segunda es la que va al ventilador y la tercera será la que va al sensor de temperatura y humedad.
Las demás conexiones son también simples: necesitamos un pequeño cable para la salida de 3.3v al ventilador, 2 cables para la línea de 5v (una que alimenta, la otra que alimenta el sensor de temperatura y humedad) y finalmente los cables de datos: uno para la información que nos entrega el sensor PM 2.5 y la otra para el sensor de temperatura y humedad.

Al final, la placa se verá así soldada con todos los cables:

La placa con los cables soldados por el lado derecho


La placa con los cables soldados por el lado izquierdo


Soldados los cables a la placa, seguiremos con el resto del trabajo: soldaremos ahora todos los componentes el uno al otro:

El resultado final de todas las piezas soldadas


Ahora viene lo interesante que es el software. Dí con un repositorio donde le hicieron ingeniería inversa a la placa de IKEA para que de esa forma la placa pueda integrarse directamente con Home Assistant. El repositorio lo pueden encontrar aquí, pero tiene un detalle: no tiene integración con el sensor de temperatura y humedad.
Como no le hago asco a la programación, me puse a hackear también el código y de esa forma integré el sensor de temperatura y humedad también, eso lo pueden encontrar por aquí.

Al final en lo que más me demoré fue en instalar y preparar Arduino IDE. Afortunadamente es relativamente fácil de entender y así pude ir probando todas las piezas para asegurarme de que todo funcionara tal como quería:

El panel de Home Assistant ahora también incluye el sensor!


El otro sensor que compré sólo lo dejé con el PM 2.5


Ahora sólo quedaba armar todo y meterlo en el case:

Vista posterior del sensor ya armado


Finalmente... enchufarlo y nuevamente comprobar nuevamente que todo estuviera funcionando:

Vista lateral del sensor ya armado


Una vez hecho eso, lo llevé al living y lo dejaré ahí por un par de días mientras pruebo que todo esté funcionando bien y le buscaré el hogar definitivo dentro de la casa... que será muy probablemente nuestro dormitorio.

Espero que les haya gustado este mini-proyecto!
 
Última modificación:

Dan_Rendar

Capo
Se incorporó
25 Julio 2006
Mensajes
133
Que buen proyecto, convertir un sensor mas basico en algo mucho mejor!! ademas externamente se ve impeque, felicitaciones, espero leer mas proyectos asi!!
 

Cosme

Gold Member
Se incorporó
27 Febrero 2005
Mensajes
8.281
Ver adjunto 17749

Uno de los hobbies que más me gusta es comprar algo barato y sacarle todo el provecho adicional que pueda: me encanta saber cómo un producto está hecho, cómo está armado y si tiene capacidades de expansión... pues tanto mejor! A modo de ejemplo, en su tiempo compraba routers TP-Link para flashearlo con DD-WRT y así suma y sigue.

Así fue como el otro día di con una noticia de que IKEA había sacado unos sensores PM 2.5 bastante baratos (llamados IKEA VINDRIKTNING), CLP 10.000 cada uno: considerando que sólo el sensor cuesta eso en AliExpress, me llamó la atención. Me puse a investigar y di con un hilo en Twitter que deshuesó el sensor por completo revelando que las piezas que ocuparon son de relativamente buena calidad y que -cosa rara- dejaron bastante espacio en su interior. Lo mejor de todo si es que la placa controladora tiene los puntos de testeo completamente descubiertos, lo cual significa... that it's hacking time!

Esto por supuesto me llamó tremendamente la atención, así que partí y compré 2 para probar echando a perder. Me pareció una buena excusa también para empezar a meterme al mundo Arduino ya que hasta el momento nunca había hecho algo en Arduino: en AliExpress, compré también 3 Wemos Mini D1 y el resto de los materiales ya lo tenía en casa: a uno de los sensores pensaba ponerle un sensor de temperatura y humedad, mientras que el otro sólo lo iba a conectar a la WiFi.

Una vez que me llegaron todas las piezas, era hora de abrir el bicho! Para no interrumpir el tráfico del aire y además para no afectar la lectura de temperatura por las piezas que iban a quedar dentro de la base, decidí dejar el sensor de temperatura por el lado posterior en el exterior, por lo que tuve que taladrar un pequeño hoyo para poder sacar los cables.

Ver adjunto 17750

Tip: cuando quieran hacerle un hoyo a plástico, háganlo con una broca para metal: sacará material de forma más suave que uno para madera lo cual conllevará a que tienda a romperse menos.

Una vez hecho el hoyo, decidí poner todos los materiales encima de la mesa para ver cuál iba a ser la distribución final:

Ver adjunto 17751

La parte netamente hardware es bastante simple de soldar. Aunque este sensor todavía no tiene un lugar definitivo en la casa, sí existe la posibilidad de que termine en nuestro dormitorio. En ese caso, el sonido del ventilador es un poco molesto, sobretodo en un dormitorio. Por eso es que existe un mod adicional que se le pueda hacer: de forma predeterminada, el aparato encenderá el ventilador cada minuto por unos 30 segundos a 5v para darle el flujo de aire que el sensor laser necesita para calcular la dispersión de las partículas. Sin embargo, este ventilador también funciona bien proporcionando 3.3v de forma contínua.

Afortunadamente, el ESP8266 que trae el Wemos D1 Mini funciona a 3.3v, y como esta placa tiene una conexión USB, también trae integrado un Logic Level Shifter: si alimentamos el board con 5v, tendremos un pin con 3.3v... ideal!

Lo único complicado de esta pequeña placa, es que sólo tenemos una salida de GND, lo que significa que voy a tener que juntar varios cables en una salida: 3 para ser exactos: la primera es la que alimentará esta placa, la segunda es la que va al ventilador y la tercera será la que va al sensor de temperatura y humedad.
Las demás conexiones son también simples: necesitamos un pequeño cable para la salida de 3.3v al ventilador, 2 cables para la línea de 5v (una que alimenta, la otra que alimenta el sensor de temperatura y humedad) y finalmente los cables de datos: uno para la información que nos entrega el sensor PM 2.5 y la otra para el sensor de temperatura y humedad.

Al final, la placa se verá así soldada con todos los cables:

Ver adjunto 17752

Ver adjunto 17753

Soldados los cables a la placa, seguiremos con el resto del trabajo: soldaremos ahora todos los componentes el uno al otro:

Ver adjunto 17754

Ahora viene lo interesante que es el software. Dí con un repositorio donde le hicieron ingeniería inversa a la placa de IKEA para que de esa forma la placa pueda integrarse directamente con Home Assistant. El repositorio lo pueden encontrar aquí, pero tiene un detalle: no tiene integración con el sensor de temperatura y humedad.
Como no le hago asco a la programación, me puse a hackear también el código y de esa forma integré el sensor de temperatura y humedad también, eso lo pueden encontrar por aquí.

Al final en lo que más me demoré fue en instalar y preparar Arduino IDE. Afortunadamente es relativamente fácil de entender y así pude ir probando todas las piezas para asegurarme de que todo funcionara tal como quería:

Ver adjunto 17757

Ver adjunto 17758

Ahora sólo quedaba armar todo y meterlo en el case:

Ver adjunto 17755

Finalmente... enchufarlo y nuevamente comprobar nuevamente que todo estuviera funcionando:

Ver adjunto 17756

Una vez hecho eso, lo llevé al living y lo dejaré ahí por un par de días mientras pruebo que todo esté funcionando bien y le buscaré el hogar definitivo dentro de la casa... que será muy probablemente nuestro dormitorio.

Espero que les haya gustado este mini-proyecto!


Pucha, siempre quise hacer eso, incluso compré un par de PM2.5 (los mas baratos de ali) y no traian el SDK y nunca los pude conectar directamente a un esp12.

Mi intención era instalarlos a la entrada y a la salida del filtro de aire "tonto" que tengo para comprobar el funcionamiento del material filtrante y poder avisarme el cuando limpiarlo/cambiarlo, además de decidir el funcionamiento dependiendo de los variables de los sensores, tal como "no hay nadie en la habitación en la mañana, encender a todo chancho hasta llegar al nivel de polvo objetivo y luego apagar" o "hay gente en la habitación de día, encender en el modo lento hasta llegar al polvo objetivo"


Como no pude conectar el sensor, no le puse mas empeño, pero si instalé un esp12 (el mismo wemos) con un sensor de temperatura y una placa de reles para "pulsar remotamente" los botones del panel y un rele al cable de energía para poder automatizar la operación del dispositivo desde homeassistant.
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.637
Pucha, siempre quise hacer eso, incluso compré un par de PM2.5 (los mas baratos de ali) y no traian el SDK y nunca los pude conectar directamente a un esp12.

Mi intención era instalarlos a la entrada y a la salida del filtro de aire "tonto" que tengo para comprobar el funcionamiento del material filtrante y poder avisarme el cuando limpiarlo/cambiarlo, además de decidir el funcionamiento dependiendo de los variables de los sensores, tal como "no hay nadie en la habitación en la mañana, encender a todo chancho hasta llegar al nivel de polvo objetivo y luego apagar" o "hay gente en la habitación de día, encender en el modo lento hasta llegar al polvo objetivo"


Como no pude conectar el sensor, no le puse mas empeño, pero si instalé un esp12 (el mismo wemos) con un sensor de temperatura y una placa de reles para "pulsar remotamente" los botones del panel y un rele al cable de energía para poder automatizar la operación del dispositivo desde homeassistant.

te aconsejaría comprar entonces este:

Si el link no funciona, búscalo por este string: Plantower PMS5003 particular matter sensor

Trata de que venga con el cable si, es más fácil conectarlo de esa forma. Tasmota lo soporta out-of-the-box, puedes seguir esta guía:

La verdad es que quería hacer ese proyecto, pero con lo de lockdown es un culo tratar de conseguir alguien en la pega que me imprima el case en una impresora 3D, así que lo tenía on-hold.

Lo bueno del sensor de arriba es que detecta tanto PM1.0, PM2.5 y PM10, el del IKEA sólo me detecta PM2.5.

Hay una versión más avanzada que trae un OLED, revisa los videos #39 y #40 para mayor información :)

Saludos.

PD: Hasta el momento he cachao que mi taller es el lugar más cochino de la casa, voi a necesitar aspirar más seguido pq las partículas de polvo en esa habitación es el doble que en el resto de la casa... pero bueno, como por lo general trabajo ahí con madera y otras herramientas, era de esperarse jajaja
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.637
Que buen proyecto, convertir un sensor mas basico en algo mucho mejor!! ademas externamente se ve impeque, felicitaciones, espero leer mas proyectos asi!!
alguna vez leí que la mejor casa inteligente era aquella que parecía una casa tonta. En base a eso he hecho todas las mejoras en la casa: a excepción de las lámparas decorativas (las luces se dividen en esenciales y decorativas), todas tienen su botón en la pared tal cual como sería en una casa normal. La diferencia es que se puede manejar tanto de ese botón como via Home Assistant o MQTT.

Todo lo demás tb es un fiel reflejo de lo mismo: este sensor del IKEA es increíblemente simple: no te dice cuántos μg/m³ en polvo hay dando vuelta (bueno, excepto ahora en las estadísticas 😅 ): simplemente te muestra una luz verde, amarilla o roja. No quería perder la esencia de esa simplicidad y por eso agradezco que hayan dejado bastante espacio sin ocupar en el case :)

El otro sensor que lo dejé sólo con WiFi, no se nota que tiene WiFi incorporado. Esos son los mejores proyectos :) Sin embargo, si hacía lo mismo con el sensor de temperatura, iba a tener 2 problemas:
1) El flujo de aire hacia el sensor se iba a ver perturbado
2) El sensor de temperatura iba a ser influenciado por la temperatura de la electrónica

así que por eso tuve que dejarlo fuera del case... pero me las arreglé para dejarlo en la parte trasera del case, donde menos se nota.

Saludos.
 
Última modificación:

tglaria

InExperto
Se incorporó
10 Febrero 2005
Mensajes
9.774
¿Eastsoft?
No logré encontrar nada, ¿qué microcontrolador será?
Faltó el ser capaz de controlar el consumo del dispositivo: poder mandarlo a dormir, reducir el brillo de leds.
¿alguna razón por la que no intentar hacer lo mismo utilizando la red zigbee (o similares)? El consumo es menor, podría no haber problemas con el calor y dejar toda la electrónica dentro.

Edito: Lo olvidaba, ¿alguna razón por la que no soldar los cables de tierra al conector del USB del Wemos?
Así no deberían quedar tan presionados los cables dentro de un único hueco.
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.637
¿Eastsoft?
No logré encontrar nada, ¿qué microcontrolador será?
Faltó el ser capaz de controlar el consumo del dispositivo: poder mandarlo a dormir, reducir el brillo de leds.
¿alguna razón por la que no intentar hacer lo mismo utilizando la red zigbee (o similares)? El consumo es menor, podría no haber problemas con el calor y dejar toda la electrónica dentro.

Edito: Lo olvidaba, ¿alguna razón por la que no soldar los cables de tierra al conector del USB del Wemos?
Así no deberían quedar tan presionados los cables dentro de un único hueco.
Excelentes preguntas!

Efectivamente es un eastsoft el micro! :)

> Microcontroller is a ES7P001FGS from Eastsoft Microelectronics
> The particle sensor seems to be a PM1006 from Cubic.

Es una lástima que no sea el PM1006k ya que ese trae tb para 1.0 y 10 si mal no me acuerdo.

Para controlar el controlador... si hubiese querido hacer todo eso, mejor hubiese hecho el aparato por completo con el Arduino y hubiese eliminado el controlador con el que venía.

Por mientras, para reducir el brillo tienes cuatro opciones:
0) No haces nada y lo dejas de forma predeterminada (leer 1)
1) Le pones una cinta negra encima del sensor de luz que tiene el controlador, lo cual baja el brillo de las LEDs
2) Le pones una pequeña hoja blanca por delante de las LEDs
3) 1 y 2 juntos xD

No ocupé Zigbee pq no tengo una red confiable de zigbee en la casa: además los esp's con zigbee salieron sólo el mes pasado así que está difícil todavía conseguirse uno y el software está muy verde todavía, como estará enchufado me da exactamente lo mismo el consumo por el momento. Más adelante le instalaré ESPHome y configuraré deep-sleep, sin embargo, este es mi primer proyecto con un Arduino, así que quería seguir el principio KISS. Mejoras vendrán de forma incremental :) Lo bueno es que tiene soporte para flasheo OTA.

Por qué no un Zigbee de un fabricante como Aqara? Pues el único que encontré tiene la tremenda pantalla (que te muestra un número, no una indicación) y sale aprox. CLP45.000. Este mismo aparato con todos los mods incluídos me salió CLP15.000 en total.

La única razón por la que no soldé los cables al conector externo del USB es pq encuentro que se ve feo aajajja Además, los cables son tan delgados que todavía quedan nadando. Lo que sí, con cada proyecto de este tipo se me va soltando mejor la mano con las soldadas, el segundo (al que no le saqué fotos) me quedó harto más decente la soldada :)

Saludos.
 

tglaria

InExperto
Se incorporó
10 Febrero 2005
Mensajes
9.774
Excelentes preguntas!

Efectivamente es un eastsoft el micro! :)

> Microcontroller is a ES7P001FGS from Eastsoft Microelectronics
> The particle sensor seems to be a PM1006 from Cubic.

Es una lástima que no sea el PM1006k ya que ese trae tb para 1.0 y 10 si mal no me acuerdo.
Con "Eastsoft" me refería a que no lo conocía y sigo sin conocerlo.
No pillo información de la compañía ni las especificaciones del microcontrolador ni nada.

Para controlar el controlador... si hubiese querido hacer todo eso, mejor hubiese hecho el aparato por completo con el Arduino y hubiese eliminado el controlador con el que venía.
No necesariamente.
Puedes desoldar los LED y usar la señal de alimentación de estos como entrada al Wemos y con este último, por medio de PWM, controlar el brillo y consumo de los LED.

Por mientras, para reducir el brillo tienes cuatro opciones:
0) No haces nada y lo dejas de forma predeterminada (leer 1)
1) Le pones una cinta negra encima del sensor de luz que tiene el controlador, lo cual baja el brillo de las LEDs
2) Le pones una pequeña hoja blanca por delante de las LEDs
3) 1 y 2 juntos xD
Mi idea era más por el tema del consumo.
Por otro lado, si le colocas algo encima, se lo tienes que sacar en el día y ponérselo en la noche.

No ocupé Zigbee pq no tengo una red confiable de zigbee en la casa: además los esp's con zigbee salieron sólo el mes pasado así que está difícil todavía conseguirse uno y el software está muy verde todavía, como estará enchufado me da exactamente lo mismo el consumo por el momento. Más adelante le instalaré ESPHome y configuraré deep-sleep, sin embargo, este es mi primer proyecto con un Arduino, así que quería seguir el principio KISS. Mejoras vendrán de forma incremental :) Lo bueno es que tiene soporte para flasheo OTA.
Me parece.
Era solo una duda, pero claro, es sólo si te importa el consumo y la red WiFi está congestionada.
Si no, mejor usar algo conocido.

Por qué no un Zigbee de un fabricante como Aqara? Pues el único que encontré tiene la tremenda pantalla (que te muestra un número, no una indicación) y sale aprox. CLP45.000. Este mismo aparato con todos los mods incluídos me salió CLP15.000 en total.
Ah, no, pensaba en algún chip baratito y no con Zigbee propiamente tal (había pensado en OpenThread por ejemplo), pero ahora a la rápida no pillo nada baratito.

La única razón por la que no soldé los cables al conector externo del USB es pq encuentro que se ve feo aajajja Además, los cables son tan delgados que todavía quedan nadando. Lo que sí, con cada proyecto de este tipo se me va soltando mejor la mano con las soldadas, el segundo (al que no le saqué fotos) me quedó harto más decente la soldada :)

Saludos.
Jajajaja, yo encontraba feo el soldar varios cables al mismo espacio, pero depende de gustos al final.

Saludos!
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.637
Con "Eastsoft" me refería a que no lo conocía y sigo sin conocerlo.
No pillo información de la compañía ni las especificaciones del microcontrolador ni nada.

Ah dale... en ese caso, ni idea: lo más probable es que sea algo desarrollado por y para IKEA y que EastSoft sean sólamente la fábrica / ensamblaje final, no los fabricantes. El sensor que es la parte importante sí es de una empresa más conocida. Hicieron algo similar con los SONOS de IKEA: la placa en sí se parece mucho mucho al primer SONOS que salió, con algunas diferencias chicas en partes utilizadas.

Al parecer este mismo micro se utilizará en un modelo más grande que viene con un ventilador: el fan se prendería cuando la calidad de aire baja mucho. El circuito tiene de hecho unas conexiones a un fan que da tb 5v.

No necesariamente.
Puedes desoldar los LED y usar la señal de alimentación de estos como entrada al Wemos y con este último, por medio de PWM, controlar el brillo y consumo de los LED.

Ah así! hubiese sido buena idea y es más: los puntos de testeo de estos LED's también están descubiertos! O al menos.... es lo que creo: tendría que seguir las líneas o tomarle fotos de más de cerca.

Mi idea era más por el tema del consumo.
Por otro lado, si le colocas algo encima, se lo tienes que sacar en el día y ponérselo en la noche.

Ah yo lo decía dejarlo por el lado interior. De todas formas, la luz no es algo que me moleste.

Jajajaja, yo encontraba feo el soldar varios cables al mismo espacio, pero depende de gustos al final.

jajaja en gustos no hay nada escrito! xD Es una lástima que no venga con más conexiones de tierra, pero bueno, para eso existen hacks :dalomismo

Saludos.
 

tglaria

InExperto
Se incorporó
10 Febrero 2005
Mensajes
9.774
Ah yo lo decía dejarlo por el lado interior. De todas formas, la luz no es algo que me moleste.

Saludos.

Pero por el lado interior peor, ¿cómo le subes y bajas el brillo sin abrirlo?
:risas

Bueno, da igual, no me voy a comprar uno (por ahora)
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.637
Pero por el lado interior peor, ¿cómo le subes y bajas el brillo sin abrirlo?
:risas

Bueno, da igual, no me voy a comprar uno (por ahora)
el controlador con el que viene tiene un sensor de luz que va ajustando de forma automática el brillo :p no tengo necesidad de implementarlo via código :) Lo único que le cambiaría es que la luz en general sea menos intensa, por ende, el papelito xD

Saludos.
 
Subir