Tabla de contenido:
- Paso 1: Cosas que necesita
- Paso 2: Prepare Raspberry Pi para 433 MHz
- Paso 3: Configurar el servidor doméstico inteligente
- Paso 4: configurar clientes
- Paso 5: Conclusión
Video: Smart Home de Raspberry Pi: 5 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:39
Ya existen varios productos que hacen que su piso sea más inteligente, pero la mayoría de ellos son soluciones patentadas. Pero, ¿por qué necesita una conexión a Internet para encender una luz con su teléfono inteligente? Esa fue una de las razones por las que construí mi propia solución Smart Home.
Programé una aplicación de servidor que se ejecuta en una Raspberry Pi. Este es un proyecto de código abierto basado en Java que le permite configurar su apartamento y conectar varios clientes y 'unidades controlables'. Muestro una solución que maneja interruptores de fuente de alimentación rc, reproduce música y videos en la Raspberry Pi, muestra el estado en el espejo inteligente y puede ser controlado por una aplicación de Android y dos aplicaciones de guijarros. La fuente está alojada en github
Paso 1: Cosas que necesita
Para configurar Smart Home, necesita los siguientes 'ingredientes'
- Raspberry Pi al menos modelo 2 B
- Remitente de 433 MHz, algo como esto
- 3 cables de puente que conectan la Raspberry Pi y el remitente
- Algunas tomas de radiocontrol a 433 MHz
- Smartphone Android para ejecutar la aplicación cliente
Además, puede ampliar Smart Home con más clientes y unidades opcionales como esta
- Reloj inteligente Pebble
- Smart Mirror, vea este proyecto
- Tira de LED controlada de 433 MHz, consulte este
Paso 2: Prepare Raspberry Pi para 433 MHz
En los siguientes pasos, necesita acceder a la línea de comando en la Raspberry Pi. Para obtener el acceso, puede leer este instructivo
Conecte el transmisor de 433 MHz con la Raspberry Pi como se muestra en la imagen de arriba
- GND (remitente) 6 GND (raspi)
- VCC (remitente) 2 + 5V (raspi)
- DATOS (remitente) 11 GPIO 17 (raspi)
Conecte también una antena de 17 cm al pin ANT (remitente). Eso aumenta la señal de manera significativa.
Como necesitamos algunas bibliotecas de otros repositorios de git, tenemos que instalar git
sudo apt-get install git-core -y
Para configurar la Raspberry Pi para una comunicación de 433 MHz, necesitamos la biblioteca de cableado Pi para un mejor manejo de los GPIO.
clon de git git: //git.drogon.net/wiringPi
cableado de cd Pi./build
Entonces necesitamos una biblioteca que implemente protocolos de suministro de energía típicamente rc.
clon de git git: //github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi hacer cp enviar / usr / bin /
El ejecutable 'enviar' le permite enviar códigos para cambiar la mayoría de las fuentes de alimentación disponibles.
En mi configuración de Smart Home, también tengo una tira de LED rc descrita en este instructivo: https://www.instructables.com/id/RC-controlled-LED … Para configurar los colores de esta tira de LED, necesita otro ejecutable de envío que le permita para enviar cualquier valor entero (que codifica el color).
Por lo tanto, compile sendInt.cpp en el repositorio rcswitch-pi y muévalo a / usr / bin / sendInt.
sudo g ++ sendInt.cpp -o / usr / bin / sendInt /home/pi/rcswitch-pi/RCSwitch.o -I / home / pi / rcswitch-pi -lwiringPi
Ahora debería poder enviar comandos rc con los dos ejecutables / usr / bin / send y / usr / bin / sendInt
Paso 3: Configurar el servidor doméstico inteligente
En primer lugar, debe instalar varios paquetes. La aplicación Smart Home está basada en Java y funciona bien con openjdk-11. No estoy seguro de otros entornos de ejecución de Java. El mplayer es un reproductor de música de línea de comandos minimalista. El omxplayer usa los gráficos Raspberry Pi para la codificación de video, por lo que debe usarse para videos. Se necesita el programa ant para construir la aplicación java.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Configure los directorios para el archivo jar y para los registros.
sudo mkdir / opt / neo
sudo chown pi: pi / opt / neo mkdir / home / pi / Logs
Configure el script de inicio para iniciar la aplicación automáticamente al arrancar. Por lo tanto, copie la secuencia de comandos de casa inteligente adjunta en el directorio /etc/init.d/ También creé una secuencia de comandos en / usr / bin / que canaliza los comandos a la secuencia de comandos adjunta, así que simplemente ingrese la casa inteligente a la consola para ejecutar comandos.
sudo cp hogar inteligente /etc/init.d/smart-home
sudo chmod + x /etc/init.d/smart-home sudo sh -c "echo '#! / bin / bash'> / usr / bin / smart-home" sudo sh -c "echo '/ etc / init. d / casa inteligente / $ 1 '>> / usr / bin / casa inteligente "sudo chmod + x / usr / bin / casa inteligente sudo update-rc.d valores predeterminados de casa inteligente
Ahora es el momento de verificar el repositorio y crear la aplicación. Si no desea compilarlo usted mismo, puede descargar el smarthome.jar adjunto y moverlo a / opt / neo /
git clone [email protected]: dabastynator / SmartHome.git
ant -f SmartHome / de.neo.smarthome.build / build.ant build_remote cp SmartHome / de.neo.smarthome.build / build / jar / * / opt / neo /
Intente iniciar la casa inteligente y verifique el archivo de registro. Para obtener acceso a los GPIO, la aplicación debe ser iniciada por sudo.
sudo inicio de casa inteligente
Registros de gatos / smarthome.log
Debería ver el mensaje de error El archivo de configuración no existe que nos indica el siguiente paso. El repositorio contiene un archivo Léame que explica el archivo de configuración. Puede ver esto muy bien renderizado en github:
Copie este xml en /home/pi/controlcenter.xml, luego configure la ubicación de su servidor de medios y cambie el contenido según lo necesite. Una vez que haya terminado la configuración y haya reiniciado la casa inteligente (reinicio de la casa inteligente sudo), debería ver el siguiente contenido en el smarthome.log
24.05-08: 26 INFORMACIÓN REMOTA por de.neo.smarthome.cronjob. CronJob@15aeb7ab: Programar trabajo cron
24.05-08: 26 INFORMACIÓN REMOTA por [trigger.light]: Espere 79391760 ms para la ejecución 24.05-08: 26 INFORMACIÓN RMI por Agregar controlador web (5061 / ledstrip) 24.05-08: 26 INFORMACIÓN RMI por Agregar controlador web (5061 / acción) 24.05-08: 26 INFORMACIÓN RMI por Agregar controlador web (5061 / mediaserver) 24.05-08: 26 INFORMACIÓN RMI por Agregar controlador web (5061 / switch) 24.05-08: 26 INFORMACIÓN RMI por Agregar controlador web (5061 / controlcenter) 24.05-08: 26 INFORMACIÓN RMI por Start webserver with 5 handler (localhost: 5061) 24.05-08: 26 INFORMACIÓN REMOTA por Controlcenter: Agregue 1. unidad de control: MyUnit (xyz)…
El servidor web ahora se está ejecutando:-)
Paso 4: configurar clientes
Cliente Android para smartphone
El repositorio de git para la aplicación de casa inteligente también contiene la fuente del cliente de Android, por lo que puede compilarlo usted mismo. Pero adjunté el APK para este paso, eso lo hace más fácil. La primera vez que inicia la aplicación, le solicita un servidor, como en la primera imagen de arriba. Ingrese la URL del servidor y el token de seguridad.
Eso debería ser todo. Ahora tiene acceso al servidor y controla su apartamento, reproduce música y mira videos de forma remota en su Raspberry Pi. Tenga en cuenta que puede agregar widgets a su pantalla de inicio, lo que hace que los interruptores y el control de la música sean más accesibles.
Cliente Smartwatch Pebble
La fuente de los dos clientes pebble está alojada en github. Una aplicación muestra el archivo de música que se está reproduciendo actualmente: https://github.com/dabastynator/PebbleRemoteMusic … Esto también le permite pausar / reproducir y subir / bajar el volumen.
La segunda aplicación desencadena tres acciones: https://github.com/dabastynator/PebbleControl Los nombres de los desencadenantes son: mobile.come_home mobile.leaving y mobile.go_to_bed. Si define reglas de evento para este disparador en su configuration-xml, las activa con su reloj.
Todo es de código abierto, pero no es necesario que lo compile usted mismo, también adjunté las aplicaciones de guijarros. Descargue los PBW con su teléfono inteligente, su teléfono debe instalarlos en su reloj. Las aplicaciones de guijarros necesitan configuraciones para comunicarse con el servidor. Adjunté una captura de pantalla de cómo se ve mi configuración.
Cliente Smartwatch Garmin
También hay un cliente disponible para Garmin Smartwatches. La aplicación está disponible en la tienda de aplicaciones garmin connect y se puede instalar aquí:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Cliente Smart Mirror
Ya creé un instructivo que explica cómo crear Smart Mirror, vea esto https://www.instructables.com/id/Smart-Mirror-by-R…. El código fuente también está alojado en github: https:// github.com/dabastynator/SmartMirror. El software del Smart Mirror lee la configuración del archivo smart_config.js que no es parte del repositorio de git. El contenido del archivo de configuración debería verse como este listado:
var mOpenWeatherKey = 'su-clave-de-clima-abierta';
var mSecurity = 'su-token-de-seguridad';
También debe ajustar las dos primeras líneas del archivo smart_mirror.js para especificar la dirección IP del servidor de Smart Home y la ubicación para obtener el clima adecuado.
Más clientes
La aplicación del servidor es un servidor web simple. Esto le permite activar acciones desde cualquier cliente que desee mediante simples llamadas web. En el video de demostración, muestro la aplicación de Android Tasker en combinación con AutoVoice. Esto me permite activar eventos con simples comandos de voz. Por ejemplo, "ok google, es hora de dormir" puede activar mobile.go_to_bed. Pero también puede hacer llamadas web, por ejemplo, desde IFTTT. ¿Qué tal una tira de LED parpadeante amarilla para notificación por correo electrónico?
Puede solicitar al servidor posibles llamadas web como los siguientes enlaces (reemplace la ip, el puerto y el token por su configuración)
localhost: 5061 / controlcenter / api? token = secu…
localhost: 5061 / action / api? token = security-to…
localhost: 5061 / mediaserver / api? token = securi…
localhost: 5061 / switch / api? token = security-to…
localhost: 5061 / ledstrip / api? token = security-…
Paso 5: Conclusión
Todavía hay algunas características por implementar: dado que el servidor proporciona solo una API web simple, los clientes realizan muchas encuestas. Para reducir el sondeo, quiero una integración MQTT para una mejor notificación. Además, las fuentes de alimentación wifi deberían funcionar de manera más confiable que las fuentes de alimentación rc, ya que rc es solo una comunicación unidireccional.
Es muy divertido desarrollar este proyecto. Y es genial controlar el piso con varios dispositivos, incluso si la conexión a Internet se rompe.
Recomendado:
Cómo: Instalación de Raspberry PI 4 Headless (VNC) con Rpi-imager e imágenes: 7 pasos (con imágenes)
Cómo: Instalar Raspberry PI 4 Headless (VNC) con Rpi-imager e imágenes: planeo usar este Rapsberry PI en un montón de proyectos divertidos en mi blog. No dudes en comprobarlo. Quería volver a usar mi Raspberry PI, pero no tenía un teclado ni un mouse en mi nueva ubicación. Ha pasado un tiempo desde que configuré una Raspberry
Controle su puerta corredera automática con Home Assistant y ESPHome: 5 pasos (con imágenes)
Controle su puerta corredera automática con Home Assistant y ESPHome: El siguiente artículo es un comentario sobre mi experiencia personal al controlar la puerta corredera automática que había instalado en mi casa. Esta puerta, con la marca "V2 Alfariss", se proporcionó con algunos controles remotos Phox V2 para controlarla. Tambien tengo
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil
GO-4 Smart Home Arduino Bot: 7 pasos (con imágenes)
GO-4 Smart Home Arduino Bot: En este proyecto, le mostraré cómo construir un Smart Home Bot utilizando la tecnología IOT para controlar sus electrodomésticos de forma remota a través de Internet. Pero antes de comenzar, hablemos de esta técnica tal como la usamos. que hacer … ¿Qué es el IOT? Th
DIY Google Home con altavoz Bluetooth en Raspberry Pi Zero Docking Hub: 7 pasos (con imágenes)
DIY Google Home con altavoz Bluetooth en Raspberry Pi Zero Docking Hub: tenemos un instructivo sobre DIY Amazon Echo Alexa - Asistente de voz de Alexa en Raspberry Pi Zero Docking Hub. En esta ocasión queremos mostrarte cómo construir una casa de Google de bricolaje. En este instructivo, le mostraremos cómo instalar y configurar el Asistente de Google