En publicaciones anteriores hse ha demostrado diferentes maneras de controlar los dispositivos RF Switch y Rf Outlet (tomas corrientes), utilizando diferentes plataformas de comunicación. En esta ocasión comparto con ustedes una de las tantas formas posibles de controlar estos dispositivos mediante Gateway. Esto nos permite controlarlos con nuestros dispositivos de uso diario como celulares y tablets.
Materiales necesarios
- Raspberry Pi.
- Rf outlets / Rf Swicth.
- Modulos Rx/Tx 433/315 mhz dependiendo de la frecuencia en que trabajan sus modulos.
Preparación del Raspberry Pi
Configuración de Red
Configuración Inicial: se debe ya tener instalada la imagen de Raspbian en nuestro equipo (dejo el link aquí para que realicen el proceso). Al iniciar el raspberry el usuario y password por defecto es pi y raspberry, respectivamente.
Luego procedemos a configurar nuestra red inalámbrica
sudo nano /etc/network/interfaces
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid "valerie" wpa-psk "jada4420" allow-hotplug wlan1 iface wlan1 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf |
Es importante que sepamos en que direcciones IP utilizamos en nuestra red, esto nos facilitara mucho para la configuración inicial.
1 |
ifconfig |
En mi caso la dirección IP asignada a la tarjeta inalámbrica «wlan0» es la 192.168.31.129.
Conexión vía SSH
Al tener nuestro Raspberry Pi en la red, recomiendo que habiliten conexión por SSH. Esto nos permitirá trabajar desde nuestro computador, ya sea a través de la consola o por cliente SSH. Digitamos en consola del Raspberry el siguiente comando: sudo raspi-config
5) Interfacing Options
7) Advanced option
Advanced Option
A1) Expand File system
Back
Interfacing Options
P2) SSH /Enable
P6) Serial /Enable
P7) 1-Wire /Enable
P8) remote GPIO / Enable
Salimos con Back / Finish y reiniciamos. Ahora trabajaremos conectándonos al Raspberry por SSH, mediante un cliente (como Putty). Esto nos facilita el copiado y pegado de los comandos que indicare en este manual.
En Mac/Linux digitamos en nuestra Terminal ssh pi@nuestra_direccion_ip
Windows: descargamos Putty y realizamos conexión por ssh, rellenando los campos con nuestros estos datos.
- usuario: pi
- contraseña: raspberry
- Dirección IP de nuestro equipo.
Tendremos acceso a nuestra Raspberry desde nuestro ordenador por SSH.
Actualización de Repositorios
1 2 3 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install git make |
Verificamos si tenemos instalado C++
1 |
g++-4.9 -v |
Instalación de NodeJs en el Raspberry
1 2 3 4 |
wget https://nodejs.org/dist/v5.2.0/node-v5.2.0-linux-armv7l.tar.gz tar -xvf node-v5.2.0-linux-armv7l.tar.gz cd node-v5.2.0-linux-armv7l sudo cp -R * /usr/local/ |
Verificamos la instalación node –v. Este comando
nos debe de confirmar la version nodejs instalada
Actualizamos el node package manage NPM .
1 2 |
sudo npm install -g n sudo n stable |
Instalamos librerías necesarias para la ejecución de homebridge
1 |
sudo apt-get install libavahi-compat-libdnssd-dev |
Instalación de Homebridge
1 2 3 4 5 |
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp cd /usr/local/lib/node_modules/homebridge/ sudo npm install --unsafe-perm bignum cd /usr/local/lib/node_modules/hap-nodejs/node_modules/mdns sudo node-gyp BUILDTYPE=Release rebuild |
Iniciamos escribiendo en terminal
1 |
homebridge |
Salimos pulsando las tecla ctrl+c
Ya tenemos el Homebridge instalado, ahora solo debemos de instalar los plugins y configurar el archivo config.json para controlar los accesorios que deseamos controlar, en mi caso los RfSwitch, existen muchos plugins de otros equipos que pueden descargar .
Configuración Plugin y config.json de Homebridge
Para configuración del plugin es necesaria la Liberia Wiring Pi. Vamos al directorio raíz del usuario pi. Ejecutamos los siguientes comandos:
1 2 3 4 |
cd git clone git://git.drogon.net/wiringPi cd wirigPi ./build |
Verificamos la instalación de wiring pi.
1 2 |
gpio -v gpio readall |
Instalamos el Plugin rfoutlets
Ingresamos en https://www.npmjs.com/package/homebridge-rfoutlets. Este es el plugin Node que utilizaremos. Para instalarlo usamos el siguiente comando:
1 |
sudo npm install -g homebridge-rfoutlets |
Verificamos la instalacion del Plugin
1 2 |
cd /usr/local/lib/node_modules ls -l |
Debe de salir el directorio con el pluginhomebridge-rfoutlets
Configuración del config.json
Para realizar la configuración del archivo config.json debemos obtener los códigos de control de nuestros dispositivos RF. Para esto realizaremos un Sniffer: simplemente conectaremos el receptor RF433/315mhz a nuestro Raspberry y pasamos los controles remotos que vienen con estos equipos.
Conectamos el Receptor RF
1 2 3 4 5 |
pin2 +5v dc pin 13 data pin 9 Gnd |
Para utilizar el sniffer es necesario el programa rfoutlet. Vamos al directorio raíz del usuario pi.
1 |
cd |
Descargamos rfoutlet
1 |
git clone git://github.com/timleland/rfoutlet.git /home/pi/rfoutlet |
Cambiamos permisos de usuario y atributos de acceso a los archivos descargados.
Ingresamos en la carpeta y verificamos los permisos actuales.
1 2 |
cd rfoutlet ls -l |
Cambiamos los permisos y atributos de acceso.
1 2 |
sudo chown root.root /home/pi/rfoutlet/codesend sudo chmod 4755 /home/pi/rfoutlet/codesend |
Verificamos cambios en las propiedades del archivos
1 |
ls -l |
Ejecutamos el sniffer
1 |
./RFSniffer |
Presionamos cada botón y guardamos los códigos que obtenemos.
Salimos del sniffer pulsando las tecla ctrl+c
. Ahora creamos el archivo config.json en base a los códigos RF obtenidos.
Ingresamos en la carpeta .homebridge carpeta oculta en la raíz del usuario pi. Vamos al directorio raíz del usuario pi e ingresamos en la carpeta oculta homebridge.
1 2 3 |
cd ~ ls -a cd .homebridge |
Dentro de la carpeta .homebridge creamos el archivo config.json
1 |
sudo nano config.json |
Ahora reemplazamos los datos por los obtenidos
1 2 3 4 |
"rf_on": 1234567, "rf_off": 7654321, "pulselength": "195", "pin": "0" "este pin es equivalente en wiringpi" el fisico GPIO es el 11 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
{ "bridge": { "name": "Homebridge", "username": "CB:22:3D:E3:CE:30", "port": 51826, "pin": "000-11-222" }, "description": "My homebridge server", "platforms": [], "accessories": [{ "accessory": "RFOutlet", "name": "Switch 1", "type": "Switch", "manufacturer": "Lasko", "model": "Weather Shield Box Fan", "serial": " ", "rf_on": 1234567, "rf_off": 7654321, "pulselength": "195", "pin": "0" }, { "accessory": "RFOutlet", "name": "Switch 2", "type": "Switch", "manufacturer": "Lasko", "model": "Weather Shield Box Fan", "serial": " ", "rf_on": 1098765, "rf_off": 1056789, "pulselength": "195", "pin": "0" }] } |
Salimos presionando Ctrl+x
salvamos "Y"
. Confirmamos pulsando enter
(para ver asignaciones de pines GPIO a Wiring pi).
Conexión de Transmisor Rf
1 2 3 4 5 |
pin2 +5v dc pin 11 data pin 9 Gnd |
Se inicia el homebridge
Vemos que al iniciar el software se cargan los Rfsswitch que hemos configurado en nuestro archivo config.json.
Configuración de Siri en Iphone
Ahora en el iPhone Abrimos la aplicación home. En añadir dispositivos saldrá homebridge con los Rfswitch que hemos agregado.
- Add home nombre casa
- New Scene sala
- Ahora agregamos los switch a la escena sala
- Luego utilizamos siri para controlar nuestro hogar.
- Siri enciende switch 1 de la sala.
- Siri enciende switch 2 de la sala.
- Siri apaga el Switch 1 de la sala.
- Siri apaga el Switch 2 de la sala.
Espero que la información presentada sea de utilidad para ustedes. Saludos.
Javier Brathwaite