Video demostración:
Descripción de proceso:
Vamos a usar una Raspberry PI y un NodeMCU para controlar las luces (o lo que queramos) mediante Siri (en un iphone) y con la App HomeKit.
- HAP-NodeJS en Raspberry Pi
- MQTT Broker en Raspberry Pi
- iPhone con HomeKit accesorio pareado y configurado
- ESP8266 modulo o NodeMcu
- Conexión wireless router
1- Instalación de programas y librerías en Raspberry.
HAP-NodeJS
Install required libraries
MQTT Broker
Instalar MQTT broker Mosca
[crayon-651a1270e832f003655491/]
Prueba si va bien con mosca -v | bunyan
2-Comandos para arrancar servicios y servidores en Raspberry PI.
Se puede arrancar de dos formas:
1-Con un teclado raton y pantalla y abrir dos terminales.
2-Con dos conexiones SSH, ejecutar en dos terminales SSH, si cierras la conexión SSH se interrumpe el proceso, lo ideal es poner una pantalla tft pequeña y un scrip para arrancar los dos procesos al inicio:
Para ejecutar este comando nos movemos hasta la carpeta:
*con el comando “ls” listamos los archivos
[crayon-651a1270e8332195624863/]
* HAP-NodeJS node -> sudo node BidgedCore.js
[crayon-651a1270e8334487019980/]
*MQTT broker -> mosca -v | bunyan
[crayon-651a1270e8336380615683/]
3-Configuración y programación de NodeMcu desde IDE Arduino
Installing with Boards Manager
Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).
- Install Arduino 1.6.8 from the Arduino website.
- Start Arduino and open Preferences window.
- Enter
http://arduino.esp8266.com/stable/package_esp8266com_index.json
into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas. - Open Boards Manager from Tools > Board menu and install esp8266 platform (and don’t forget to select your ESP8266 board from Tools > Board menu after installation).
Lo he probado con el IDE de Arduino 1.6.7, 1.6.8 y 1.6.9
Añadir la Librería MQTT necesaria para compilar en Arduino pubsubclient-master
Ojo no Actualizar la librería, solo funciona con la 1.99.1, si actualizas da error al compilar.
EL Codigo de Arduino para que funcione con SIRI es el HomeKitLight.ino
https://github.com/AdySan/HomeKitLight
4-Configuracion y creación de un accesorio Homekit
Dar Nombre al Nuevo accesorio
Todo debe llamarse igual ademas del archivo del accesorio, cambiar el username para que no coincida con el de otro accesorio (te lo puedes inventar).
Ejemplo de accesorio ChristmasLight
Codigo en ARDUINO
Codigo en Accesorio.js ademas debe de llamarse igual que en el archivo seguido de _accessory. ChristmasLight_accessory.js
5-Parear el accesorio HomeKit con la App de iphone
light.pincode = "031-45-154";
Post donde explico como crear el Nodemcu con alimentación y rele.
Modulo 1 (Proximamente)
Configuracion de IP Arduino y Raspberry
En el accesorio de “connection to MQTT broker” ponemos la IP de la Raspberry, debe ser la misma que la de la conexión SSH
[crayon-651a1270e8338649132407/]
En Arduino ponemos la IP de la Raspberry también, que en el servidor
[crayon-651a1270e833b256177716/]
Archivos para Descargar:
Codigo Arduino HomeKitLight-master
Accesorios HomeKit HAP-NodeJS-master Mis accesorios MIS____accessories
Añadir todos los archivos una vez finalizado.
¿Cómo se restablece la base de datos de configuración HomeKit?
Cuando no aparece un accesorio al buscarlo para añadirlo puede ser porque se ha restablecido la configuración de HomeKit. Para ello:
Ir a Ajustes> Privacidad> HomeKit en el dispositivo y pulse Restablecer configuración HomeKit. Ver como se hace para IOS10 esto no es necesario cuando no aparece el accesorio.
Se recomienda que elimine la carpeta “persist” que se encuentra en “HAP-NodeJS” después de realizar este paso para restablecer las cosas, tanto del cliente y de servidor. Con esto funciona siempre, ya que borramos la vinculacion del accesorio para volverlo a añadir.
Tenga en cuenta que al restablecer en el cliente o eliminar ./persist en el servidor va a desvincular los accesorios emparejados y tendrá que volver a emparejarlos.
TIP para eliminar carpeta desde el terminal en la Raspberry
*Borrar un directorio o carpeta no vacíos:
rm –rf carpeta
Tareas Pendientes y Dudas:
1-Se puede pisar el rele desde el EPS8266 a 3V? No, es necesario tener dos alimentaciones 3V y 5V para el rele.
2-Sigue funcionando el terminal si cerramos las conexiones SSH? No, se interrumpe el proceso, falta buscar una solución.
3-Puede funciona el servidor desde una Raspberry PI con TFT de 3.5 pulgadas?
4-Añadir pulsador para actuar sin Siri, pero debe ser la misma orden que si lo haces con siri, para poder preguntar el estado del sensor.
5-Hacer scrip para arrancar los comandos necesarios del servidor de la raspberry PI
http://muyraspi.blogspot.com.es/2013/06/script-como-servicio.html
http://muyraspi.blogspot.com.es/2013/06/ejecutar-algo-al-arrancar-la-raspi.html
0 comentarios