Artículo actualizado: https://viktorkirilov.me/post/home-automation-raspberry-pi/
https://youtu.be/wh0OoLUTeM8
Desde pequeño me ha apasionado la electrónica y distintos tipos de mecanismos. Anteriormente hice diferentes proyectos pequeños con arduino, como freno de mano para mi volante de juego, tacómetro LED personalizado para mi automóvil (ver mi repositorio de github), LED controlados por voz, etc. Recientemente compré Raspberry PI 3 y, en medio de todo el revuelo de IoT, decidí comenzar a automatizar mi hogar.
Como estoy bastante familiarizado con JavaScript y su ecosistema, decidí crear mi propia aplicación de teléfono a través de react native
y conectarla a través de websockets
al backend NodeJS
. Estoy usando Registros de ImmutableJS para mantener la coherencia de la estructura de datos y el rendimiento de la aplicación. Los datos se envían entre el cliente y el servidor a través de cadenas JSON, que se convierten en registros inmutables cuando se reciben en ambos lados. He separado los módulos compartidos (entre el cliente y el servidor) en paquetes npm locales separados: home-records y home-config. Para el control GPIO (pines de Raspberry) he usado la biblioteca pi-blaster
, junto con wiringPi
. Como no pude encontrar códigos para mi aire acondicionado, los grabé yo mismo y los agregué al archivo de configuración lirc
. Duckdns
cron se usa como DNS dinámico, porque mi dirección IP cambia periódicamente y no tendré que volver a compilar toda la aplicación ni cambiar la configuración cada vez. El servidor transmite los cambios a todos los usuarios conectados en tiempo real. La aplicación del teléfono se encuentra en la carpeta /phone-app , el servidor se encuentra en /server . ¿Por qué no echas un vistazo?
Raspberry Pi 3
es la unidad de control. Los dispositivos de alta potencia, como las tiras de LED, se alimentan a través de 12V 5A power supply
(tierra compartida con el PI). El aire acondicionado se controla mediante un LED infrarrojo de 950 nm. El sistema de calefacción está cableado mediante un relé (encendido y apagado) y un servo para el termostato, ya que evité el desmontaje. Tanto la tira de LED blanca como la tira RGB están conectadas mediante transistores lógicos IRLZ34N
al PI. También hay un receptor de infrarrojos, por si quiero grabar algo más. La temperatura se mide mediante el sensor de temperatura DS18B20.
El cableado se ve así:
Estoy abierto a todo tipo de ideas sobre diferentes módulos. Si tiene algunas ideas en mente, le agradecería que las agregue en el rastreador de problemas y las etiquete como Idea
.