La domótica con pi frambuesa y arduino

Hemos hablado de los méritos relativos de Arduino y Frambuesa Pi antes - cada uno tiene sus puntos fuertes. Ellos no tienen que ser un bien o de la elección aunque - combinarlos para obtener lo mejor de ambos mundos. La domótica es el candidato perfecto para esto. El mercado de la automatización del hogar se inunda con los sistemas de consumo costosos, incompatibles entre sí y costosos de instalar. Si tienes un frambuesa Pi y un Arduino, que, básicamente, se puede lograr lo mismo a una fracción del precio, asumiendo que usted está dispuesto a poner en el tiempo y el esfuerzo.

Actualización: Desde que se escribió este artículo, he descubierto OpenHAB, una plataforma de automatización del hogar libre y de código abierto que se ejecuta en Frambuesa Pi y se puede integrar con una amplia gama de equipo para el hogar inteligente off-the-shelf, así como Arduino. Mira el vídeo a continuación para un adelanto, a continuación, la cabeza de más a nuestra Introducción a OpenHAB de Frambuesa Pi guía para aprender más. Introducción a OpenHAB Home Automation en la Raspberry PiIntroducción a OpenHAB Home Automation en la Raspberry PiOpenHAB es una plataforma madura, abierta casa fuente de automatización que se ejecuta en una variedad de hardware y es el protocolo agnóstico, lo que significa que se puede conectar a casi cualquier hardware de automatización del hogar en el mercado hoy en día.Lee mas

Heimcontrol.js por Willi Thiel es una Node.js aplicación para ejecutarse en Raspberry Pi. En combinación con un Arduino y algunas tomas de control remoto off-the-shelf, hace que el control de aparatos de CA fácil. Se pueden añadir sensores de temperatura, e incluso controlar su TV - pero vamos a mantener las cosas hoy básica y ampliar el proyecto en un tutorial posterior.

He aquí un desglose del proyecto:

  • La Raspberry Pi actuará como el cerebro y la puerta de entrada de las operaciones - se ejecutará una aplicación de Nodo, atado a una base de datos de Mongo, y servir a la interfaz de front-end para cualquier navegador web.
  • Un Arduino, impulsado desde el Pi, actuará como intermediario entre los Electrónica - interruptores de alimentación de control de radio, por ahora.

Para ello, se necesita:

  • Arduino y una frambuesa Pi
  • Algunas tomas de corriente y controlador de control remoto (utilicé estos)
  • hub USB alimentado

Vídeo: Casa Domotica con Arduino, raspberry pi, plc ,server php, wifi. House using a microcontroller.

RC-zócalos

Antes de comenzar, aquí hay un vídeo de demostración del proyecto creador mismo.

Comenzar de nuevo

Vamos a utilizar Raspian para este proyecto, y me sugieren fuertemente a partir de una instalación nueva, si usted ha realizado previamente otras cortes y tal. Descargar la última imagen Raspian, copiarlo a la tarjeta SD, y asegúrese de ampliar el sistema de archivos y habilitar SSH. El resto de esta guía asume que usted ha hecho así, y se conecta a través de SSH usando el usuario por defecto.7 sistemas operativos se puede ejecutar con Frambuesa Pi7 sistemas operativos se puede ejecutar con Frambuesa Pi¿Quién puede discutir con un ordenador $ de 40 años? Especialmente uno que también forma una buena base para proyectos de electrónica! Desde luego, no puede. Pero el hardware por sí sola es sólo una cara de la historia: aún necesita ...Lee mas

Si no ha hecho esto antes, este video se explica el proceso de elaboración de su tarjeta SD en OS X:

Y esto es para los usuarios de Windows:

Preparación

El proceso de instalación es bastante laborioso, y deriva de las instrucciones aquí. Por desgracia, estos eran obsoletos o no diseñado para Raspian, así que les han adaptado en gran medida a continuación. Los códigos siguientes se pueden pegar sobre todo en los bloques - usted no necesita pegar una a una. Ya que estamos compilando algunas cosas en el propio Pi, se advirtió que todo este proceso va a tomar mucho tiempo. Yo diría que ir se prepara una taza de té - pero cuando digo “mucho tiempo”, me refiero a la mejor parte de un día - por lo que 178 tazas serían más apropiados.

Todos los comandos deben ser escritos en el terminal, y es posible que tenga que pulsar Intro en algunos puntos. Estos primeros comandos actualizará el sistema e instalar los requisitos previos:

sudo apt-get actualizarsudo apt-get mejorarsudo apt-get instalar git-core Git scons scons construir esenciales libpcre ++ - dev xulrunner-dev libboost-dev libboost-programa-opciones-dev libboost-hilo-dev-libboost sistema de archivos-dev

Lo siguiente que necesitamos para instalar Nodo:

sudo mkdir / Opt / nodowget https://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gzalquitrán xvzf nodo-v0.10.2-linux-brazo-pi.tar.gzsudo cp -r nodo-v0.10.2-linux-brazo-pi / * / opt / nodosudo En -s / opt / nodo / bin / nodo / usr / local / bin / nodosudo En -s / opt / nodo / bin / NPM / usr / local / bin / NPM

Añadir una variable PATH para su perfil para que el sistema operativo sabe donde se encuentra el Nodo. Utilizar el editor de textos nano de la siguiente manera:

Vídeo: MODELLINO CASA DOMOTICA CON RASPBERRY PI TOUCH DISPLAY RASPBERRY E ARDUINO, PHP, HTML, WEB SERVER

sudo nano / Etc / profile

Busque la línea que dice export PATH y sustituirla por:

NODE_JS_HOME="/ Opt / nodo"CAMINO="$ PATH:$ NODE_JS_HOME/compartimiento"exportar CAMINO

Hit Ctrl-X para salir, e Y para guardar.

Puede que tenga que salir y de nuevo para los cambios de trayectoria, que entrarán en vigor, pero se puede probar con el comando:

cual nodo

Si no obtiene ninguna salida que apunta al binario de nodo, algo salió mal.

Mongo

El siguiente trabajo es la instalación de Mongo. Mongo es una base de datos SQL-n basada en el documento utilizado cada vez más por las aplicaciones web. Por desgracia, esto llevará siempre a instalar ya que tenemos que compilarlo. Mientras se ejecuta los siguientes comandos que obtendrá una gran cantidad de errores como:

{entrada estándar}: 13085: Advertencia: swp{segundo} su uso está obsoleto para esta arquitectura

No se preocupe por ellos. Por lo tanto, ejecutar estos comandos para instalar Mongo:

Git clone git: //github.com/RickP/mongopi.gitdiscos compactos mongopisconssudo scons --prefix=/ Opt / mongo instalarscons -c

Cuando esto esté terminado, necesitamos un poco más de la primera configuración para solucionar problemas de permisos y asegúrese de que se está ejecutando en el arranque.

sudo useradd mongodbsudo mkdir / Data / DBBsudo chown $ USUARIO / Data / dbdiscos compactos /etc/init.dsudo wget -O mongodb https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.shsudo chmod +x mongodbsudo update-rc.d mongodb defaultsmongod

Este último comando pondrá en marcha el servidor de Mongo, y usted tendrá que abrir una nueva terminal para continuar con los otros comandos. No estoy totalmente convencido de esto paso, así que si alguien puede corregir esto en los comentarios sobre cómo tener mongod lanzamiento automáticamente en el arranque, que sería muy apreciada. Por ahora, funciona, pero no es elegante.

sudo apagar -r ahora

Por último, es el momento de instalar la aplicación Heimcontrol.js Nodo.

discos compactos ~ piGit clone git: //github.com/ni-c/heimcontrol.js.gitdiscos compactos heimcontrol.jsNPM instalar

Puede empezar a ejecutar la aplicación escribiendo

Vídeo: domotica arduino raspberry voice command

heimcontrol.js nodo

En este punto, usted debe ser capaz de acceder a la interfaz de control con http: // localhost: 8080 Del Pi, o reemplazar localhost con la dirección IP si está accediendo a ella desde otro equipo (Y también se puede configurar el reenvío de puertos para acceder a ella desde cualquier lugar del mundo), así que animo a hurgar y comprobar que todo está trabajando con la base de datos antes de conectar el Arduino.¿Qué es el reenvío de puertos & ¿Cómo me puede ayudar? [Explica MakeUseOf]¿Qué es el reenvío de puertos & ¿Cómo me puede ayudar? [Explica MakeUseOf]¿Llora un poco por dentro cuando alguien le dice que hay un problema de reenvío de puertos y es por eso que su nueva aplicación brillante no va a funcionar? Xbox no le permitirá jugar juegos, sus descargas de torrents se niegan ...Lee mas

Vídeo: Sistema domótico básico con PIC 16F877A

Hardware

Con el tiempo me gustaría una relé de cableado, pero por ahora voy a estar utilizando la opción más segura de los interruptores controlados por radio.

He usado algunos razonablemente barato £ 20 conjuntos de Maplin que vienen con 3 tomas de corriente, y abrí el mando a distancia para que pudiera interactuar directamente con el chip de 433 MHz en el interior. He encontrado las instrucciones para este aquí.

rc-controlador-Hack

También puede comprar transmisores individuales 433 MHz listo para su uso en eBay o proveedores de sistemas electrónicos de hobby. Todo lo que necesita es conectar el VCC a 5 V en el Arduino, los GNDs, y una sola espiga de control - recuerdo que uno que utilizó. (Esquema de Willi Thiel)

Arduino-rcswitch

El plugin funciona mediante el envío de “códigos de tres estados”, pero estos pueden variar según el fabricante. Consulte la documentación RCSwitch para encontrar sus códigos exactos. Esta guía wiki puede ayudar también.

La comunicación con el Arduino se realiza utilizando una biblioteca denominada Nodo Duino. Detener la aplicación Heimcontrol si se está ejecutando e instalar el puente de Arduino con el siguiente comando.

NPM instalar Duino

El Arduino debe tener el código subido - Le sugiero que copiar y pegar para instalar esto desde un equipo diferente. Básicamente se trata de un programa de escucha que responde a comandos serie del Pi, pero no hay nada que impida que se extiende con sus propias características.

rc-settings

Con la aplicación web en marcha, ir a la ajustes -gt menú; Arduino.

-settings-heimcontrol menú

Desde allí se puede añadir un nuevo elemento, la elección de método RCSwitch, el pasador de su transmisor, y el código de dirección de tres estados. Recuerde guardar, a continuación, volver a la pantalla principal de la pantalla para el nuevo botón.

rcswitch la fijación de

Loco:

Después de muchas horas de depurar el código, me encontré con números de pin de un solo dígito no funcionaban - asegúrese de que su transmisor se coloca en el pin 10 para estar seguro.

También encontré que el plugin Arduino fue codificado con trozos finales incorrectos para los códigos de tres estados mis receptores necesarios. Una pequeña explicación en primer lugar: los códigos de tres estados consta de 3 bytes de información. La primera nos determina el número de red (1-4), y el segundo proporciona la dirección transceptor (de nuevo, 1-4, produciendo un máximo de 16 tomas direccionables). El byte final consta de dos bits de relleno, además de 2 bits para encendido / apagado. Por desgracia, el último byte está codificada en el plugin para Arduino - y en mi caso, el código de encendido / apagado era incorrecta.

Tuve que editar manualmente el plugins / Arduino / index.js utilizar los códigos correctos. Si está utilizando los mismos zócalos de control remoto como soy, líneas de cambio 80 en adelante a:

// Enviar código RCSi (valor del ítem) {regreso that.pins[item.pin].triestatal(item.code + "FFFF")-// cambiar de FF0F} más {regreso that.pins[item.pin].triestatal(item.code + "FFF0")-// cambiar de FF00}

He aquí un video de demostración de todo lo trabajo:

Voy a dejarlo aquí, en este punto, pero también se admiten lecturas de los sensores y mandos a distancia IR. Probablemente voy a revisar estos en una fecha posterior con algunas mejoras más. Si todo esto ha sido un poco demasiado complejo para usted, tal vez echa un vistazo a mi Arduino proyecto de control de Internet.Cómo configurar el Control Web Arduino Ethernet Shield sin unaCómo configurar el Control Web Arduino Ethernet Shield sin unaDesde hace unas semanas, me entregó el control de la iluminación ambiental en mi estudio a los espectadores durante la emisión en directo de Tecnofilia Podcast - se puede ver el resultado de que en el ...Lee mas

Artículos Relacionados