Domótica utilizando Arduino y Raspberry pi Dragomir, Grabiel Iulian; Membrilla Alonso, Jose; Ratleh, Ahmed IES Penyagolosa. Castellón de la Plana Fecha de redacción 22 de mayo de 2015 RESUMEN En esta práctica se intenta demostrar que con poco dinero se puede construir, programar y obtener datos sobre el estado de una casa automatizada mediante un programa gratuito como Arduino utilizando la placa de Arduino y Raspberry Pi Utilizaremos Arduino, Raspberry Pi, varios componentes (Placas, sensores, actuadores y otras cosas como resistencias), cartón pluma para construir la maqueta de una casa, el modelo de la cual esta diseñado por nosotros, escritura en código desde el sistema Linux junto con el programa Arduino que sirve para poder programar la placa microcontroladora. Desde la Raspberry PI, podemos controlar totalmente la casa y obtener información de los diferentes sensores y actuadores de la casa desde un dispositivo movil, gracias a la aplicación de OpenHAB. Esta aplicación esta instalada en la raspberry PI y se comunica a través del escudo Ethernet con arduino. Gracias a la conexión de la Raspberry PI y arduino con el router, podemos obtener toda esta información anteriormente mencionada en Internet. Hemos programado el código para cada uno de los sensores y actuadores por separado y finalmente hemos unido todos esos fragmentos de código en un único programa que controla todos los sensores y actuadores. Palabras clave: Domótica, Arduino, OpenHAB, RaspberryPi, Sensores ABSTRACT This practice seeks to show that with little money anyone can build, program and get information about the status of an automated home using a free program like Arduino using the Arduino board and a Raspberry Pi microcomputer. We use Arduino, Raspberry Pi, various components (plates, sensors, actuators and other things like resistors), foam board to build a model of a house, the model of which is designed by us, write code from the Linux system with the Arduino program that we use to program the microcontroller. Since we use the Raspberry PI, we can totally control the house and get information from different sensors and actuators of the house from a mobile device, thanks to the application of OpenHAB. This application is installed on the PI raspberry and communicates via the Ethernet shield with Arduino. By connecting the Raspberry PI and Arduino with the router, we can get all the above information on the Internet. We have learned the code for each of the sensors and actuators separately and have finally joined all those snippets into a single program that controls all sensors and actuators. Key words: Home automation, Arduino, OpenHAB, RaspberryPi, Sensors Índice de contenido 1. OBJETIVOS.......................................................................................................................1 2. MATERIALES....................................................................................................................2 2.1. Placas.............................................................................................................................2 2.2. Sensores........................................................................................................................2 2.3. Actuadores.....................................................................................................................6 2.4. Otros...............................................................................................................................7 3. PROCEDIMIENTO.............................................................................................................8 3.1. Montaje de la maqueta.................................................................................................8 3.2. Montaje del circuito......................................................................................................9 3.3. Programación del código...........................................................................................10 3.4. Raspbian......................................................................................................................11 3.4. OpenHAB.....................................................................................................................12 4. RESULTADOS Y DISCUSIÓN........................................................................................17 4.1 Ventajas.........................................................................................................................17 5. CONCLUSIONES............................................................................................................18 6. REFERENCIAS...............................................................................................................19 WEBGRAFÍA.......................................................................................................................19 El gusto de investigar Domótica utilizando Arduino y Raspberry pi 1. OBJETIVOS Al realizar este proyecto, hemos fijado los siguientes objetivos: • El objetivo principal de este proyecto es construir una casa totalmente automatizada utilizando sensores, actuadores y las placas de arduino y raspberry pi. Todo esto unido formará un sistema totalmente coordinado, el cual funcionara desde la acción de un individuo a través de una página web. • Demostrar que se puede construir un sistema de domótica con un presupuesto muy reducido gracias a la sencillez de los diferentes componentes. • Practicar la programación con arduino y el montaje de un circuito electrico. • Dar nuevas ideas para futuras construcciones, ya que la estructura de esta maqueta puede dar diferentes ideas o inspiraciones. • Documentar bien el proyecto de forma que se pueda utilizar el trabajo realizado en algún curso de la asignatura de Informática y/o Tecnología. Página 1 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi 2. MATERIALES 2.1. Placas Arduino MEGA • Microcontrolador ATmega2560 • Voltaje • Voltaje entrada 5V (recomendado) 7-12V • Voltaje máximo 6-20V • Entradas/salidas digitales 54 • Entradas analogicas 16 • Corriente continua por salida/entrada • 40 mA Corriente continua por la entrada 3.3V 50 mA • Memoria flash 256 KB • SRAM 8 KB • EEPROM 4 KB • Velocidad de reloj 16 MHz Imagen de la placa Arduino MEGA Escudo Arduino Ethernet Esta tarjeta permite que una placa Arduino se conecte a Internet. Se basa en el chip Ethernet Wiznet W5100 que proporciona una red ( IP )con capacidad de TCP y UDP . Permite hasta cuatro conexiones de socket simultáneas. Debemos utilizar la biblioteca de Ethernet para escribir programas que se conectan a Internet a través de un conector RJ45. La última revisión añade una ranura para tarjetas micro-SD, que puede ser usada para almacenar archivos. Es compatible con el Arduino Uno y Mega (utilizando la librería Ethernet ). Página 2 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Imagen del escudo Ethernet para Arduino Raspberry Pi B+ SoC Broadcom BCM2835 • CPU ARM 1176JZF-S a 700MHz • Juegos de instrucciones RISC de 32 bits • GPU Broadcom VideoCore IV, OpenGL ES 2.0, MPEG-2 y VC-1 1080p30 H.264/MPEG-4 AVC • SDRAM 512 MiB • Puertos USB 2.0 4 • Entradas de vídeo Conector MIPI CSI • Salidas de vídeo Conector RCA, HDMI, Interfaz DSI para panel LCD • Salidas de audio Conector de 3.5 mm, HDMI • Almacenamiento integrado Micro SD • Conectividad de red 10/100 Ethernet via hub USB • Periféricos de bajo nivel 8 x GPIO, SPI, I2C, UART • Reloj en tiempo real Ninguno • Consumo energético 600 mA • Fuente de alimentación 5V vía Micro USB o GPIO header • Dimensiones 85.60mm x 53.98mm • Sistemas operativos soportados GNU/Linux: Debian, Fedora, Arch Linux, Slackware Linux. Página 3 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Imagen del microordenador Raspberry Pi Placa board Está hecho de dos materiales, un aislante, generalmente un plástico, y un conductor que conecta los diversos orificios entre sí. Uno de sus usos principales es la creación y comprobación de prototipos de circuitos electrónicos antes de llegar a la impresión mecánica del circuito en sistemas de producción comercial. Imagen de una placa board Esquema de interconexión de los conductores 2.2. Sensores Sensor de ultrasonidos Sensor que detecta a la distancia a la que se encuentra un objeto grácias a que envía una señal de ultrasonidos y según el tiempo que tarde en volver el sensor detecta la distancia a la que se encuentra un objeto con un máximo de 50 cm. Página 4 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Sensor de ultrasonidos Sensor de CO2 MQ-7 Este pequeño sensor puede medir la concentración del CO en el aire, puede detectar concentraciones de CO de 20 a 2000 ppm. Tiene una alta sensibilidad y de respuesta rápida. Proporciona una salida analógica para que la analices con el arduino de tu preferencia, el circuito es simple, solo necesitas una resistencia y la alimentación. Sensor de CO2 Sensor de Gas MQ-5 Este es un sensor muy sencillo de usar, ideal para medir concentraciones de LPG en el aire. El MQ-7 puede detectar concentraciones desde 10 hasta 10000 ppm. Este sensor tiene una alta sensibilidad y con un tiempo de respuesta rápido. La salida es analógica. Lo que necesitas para montarlo es alimentarlo con 5V, añadir una resistencia y conectar la salida a una entrada ADC de un microcontrolador. Página 5 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Sensor de gas LDR Resistencia que regula su valor dependiendo de la cantidad de luz que haya en el ambiente. Imagen de una LDR PIR Un sensor PIR es un sensor capaz de detectar movimiento dentro de su rango de acción. La denominación PIR viene de “Passive Infrared”, de “Pyrolectric” o de “IR motion”. El componente principal es un sensor piroeléctrico que detecta niveles de radiación infraroja. Cualquier cosa emite pequeños niveles de radiación y cuanto más caliente es algo, más radiación emite. Página 6 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Fotografía y esquema de funcionamiento de un sensor PIR Página 7 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi 2.3. Actuadores Servo-motor Pequeño motor que tiene la posibilidad de moverse en dos direcciones y en diferentes ángulos, y mantenerse estable en la posición deseada. Imagen de un servo-motor LEDs blancos LEDs que sirven para iluminar. Imagen de un LED blanco LED RGB Este tipo de LED se caracteriza gracias a que puede variar entre el color rojo, verde y azul y poder crear distintos colores a partir de estos. Página 8 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Imagen de un LED RGB Alarma antirrobos Un simple buzzer que sirve para hacer ruido. Imagen de un buzzer 2.4. Otros 10 resistencias 220 ohmios Colores: Rojo, Rojo, Marrón Cable IDE El cable IDE (Integrated Drive Electronics) tiene 40 pins cada uno con una capacidad de 15 bits Imagen de un cable IDE Cables MM Página 9 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Imagen de un conjunto de cables MM 3. PROCEDIMIENTO 3.1. Montaje de la maqueta Primero hicimos un pedido del material que utilizaríamos para construir la maqueta. El material se llama cartón pluma y elegimos un color blanco, este cartón es un cartón muy ligero y al mismo tiempo muy manipulable. En cuanto teníamos el diseño de la maqueta, trazamos líneas sobre el cartón con un lápiz fácil de borrar con las distintas medidas de las diversas habitaciones, una vez trazado las lineas comenzamos a cortar con un cúter, después de haber cortado las diferentes partes de la casa lo lijamos con papel de lija y finalmente lo pegamos con silicona transparente. Para los sensores hicimos agujeros en el cartón según el lugar donde pertenezcan para poder meter los cables y unirlos en la parte de atrás de la maqueta además dejamos un saliente para poder poner los componentes electrónicos. Página 10 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Maqueta de la vivienda que queremos automatizar 3.2. Montaje del circuito Primero compramos una placa Arduino Mega que nos permite tener más entradas tanto digitales como analógicas con respecto a la Arduino Uno, después con un cable IDE lo juntamos a una placa board donde hemos hecho todas las conexiones mediante los cables MM (macho macho). Para empezar debimos comprobar las entradas y las salidas del cable IDE para asociarlas y saber cual es cual mediante un polimetro, a continuación conectamos un extremo en la placa board y el otro en el Arduino Mega. Configuramos un programa para comprobar que todos los LEDs funcionan junto con una resistencia. Hacemos lo mismo con los diferentes sensores, actuadores y otros componentes que utilizamos, pero para algunos sensores como el de ultrasonidos necesitamos buscar su código en páginas web como la de Arduino. Una vez ya programamos todos los fragmentos de código y comprobado el funcionamiento de los componentes por separado, pudimos empezar a conectar todos los componentes con los diferentes pines del cable IDE que este esta conectado a la placa Arduino Mega. A continuación cogimos el Escudo Ethernet y lo unimos a la placa Arduino Mega acoplándolo encima. Gracias al Escudo Ethernet podemos pasar datos a la red y comunicarnos con la Raspberry Pi B+. En la Raspberry Pi debimos instalar OpenHAB y de esta manera conseguimos transmitir datos a la aplicación la cual dispone de una pagina Web con la cual podemos controlarlo a distancia. Página 11 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Montaje del circuito y conexión de los sensores y actuadores a arduino 3.3. Programación del código Para hacer que funcionen todos los sensores de manera correcta buscamos en Internet los programas de los diferentes componentes y los probamos uno a uno. Después de hacer esto los unimos todos los fragmentos de programas en un solo archivo de Arduino. Página 12 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Imagen que mustra los pasos que hemos seguido 3.4. Raspbian Para que funcione, necesitamos de un medio de almacenamiento (Raspberry Pi utiliza tarjetas de memoria microSD), conectarlo a la corriente utilizando cualquier cargador microUSB de al menos 2000mah, y si lo deseamos, guardarlo todo utilizando una carcasa para que todo quede a buen recaudo y su apariencia sea más estética. Nosotros no utilizamos la carcasa y simplemente llevamos cuidado de no crear ningún cortocircuito entre los conectores. Dado a que es un microordenador, necesitamos intalar un sistema operativo en la tarjeta MicroSD. La Raspberry Pi usa mayoritariamente sistemas operativos basados en el núcleo Linux. Raspbian, una distribución derivada de Debian que está optimizada para el hardware de Raspberry Pi. Logotipo de la distribución de Linux Raspbian Página 13 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi 3.4. OpenHAB OpenHAB es un software desarrollado en Java que pretende integrar múltiples sistemas de domótica con el fin de automatizar distintas funciones de la casa, como por ejemplo encender la calefacción o las luces en un determinado momento, o controlar éstas funciones desde el teléfono móvil. El software puede ejecutarse en cualquier plataforma que soporte Java 7 o superior. En OpenHAB pueden integrarse multitud de gadgets/cosas. Además, el proyecto es opensource y es posible construir soporte para nuevos dispositivos. OpenHAB tiene múltiples interfaces para controlar los dispositivos que soporta. En las siguientes imágenes se pueden ver dos de los interfaces. Vista de la web de OpenHAB desde un navegador Vista de la app de OpenHAB desde un móvil Android Página 14 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Desde el punto de vista de la arquitectura, es una aplicación completamente Java construida sobre el framework OSGI (Equinox). En la siguiente imágen se muestran los distintos componentes. Arquitectura de OpenHAB La comunicación puede realizarse de modo asíncrono a través de un bus de eventos, o puede haber comunicaciones con estado. En este diagrama se puede ver la arquitectura general de las comunicaciones. Página 15 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi Arquitectura general de las comunicaciones Página 16 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi 4. RESULTADOS Y DISCUSIÓN Hemos creado una maqueta de una casa con materiales baratos y con la misma función de otros sistemas domóticos comerciales más caros y avanzados. Automatizar una vivienda puede costar más de 1000 € o incluso supera los 3000 €, pero utilizando materiales sencillos como el cartón pluma o los sensores digitales, hemos conseguido nuestro objetivo. Esta vivienda esta preparada para el uso particular sobretodo de personas discapacitadas o de personas de tercera edad, los cuales no tienen acceso total a la manipulación de todos los actuadores o sensores. 4.1 Ventajas • El ahorro de energia es muy grande ya que los componentes utilizan corrientes muy bajas de 5 voltios. Además la instalación del sistema es muchísimo mas sencilla a otros sistemas. • Gracias a este sistema, la seguridad de los habitantes de la vivienda estaran mas seguros ya que el sensor PIR, o el de ultrasonidos unidos con la alarma puede alertar de posibles robos. • La comodidad de no tener que accionar varios interruptores es bastante notable, ya que desde un solo dispositivo controlas la casa entera. Página 17 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi 5. CONCLUSIONES Finalmente hemos acabado este proyecto, gracias a la ayuda de nuestro profesor, la colaboración de nuestros compañeros y con las clases de programación de arduino y Raspberry Pi. Nuestro presupuesto no era muy elevado, sino que rondaba los 110 €, lo cual es una cifra realmente pequeña comparada con los diferentes y altos precios de los sistemas domóticos mas avanzados. Página 18 de 25 El gusto de investigar Domótica utilizando Arduino y Raspberry pi 6. REFERENCIAS WEBGRAFÍA • Arduino. (2015). Página oficial de ARDUINO. Recuperado 20 de abril de 2015, desde http://www.arduino.cc/ • Mecatrónica (2013). Tutorial de Arduino. Recuperado 1 de abril de 2015, desde http://www.tdrobotica.co/tutoriales/81-arduino-2/345-guia-arduino • Raspberry PI foundation. (2015). Página oficial de la Raspberry PI. Recuperado 21 de abril de 2015, desde https://www.raspberrypi.org/ • OpenHAB UG. (2015). Página oficial de OpenHUB. Recuperado 10 de abril de 2015, desde http://www.openhab.org/ • Adafruit. (2015). Página oficial de Adafruit. Recuperado 23 de abril de 2015, desde http://www.adafruit.com/ • Electronichamsters (2015). Uber Home Automation w/ Arduino & Pi. Recuperado 23 de abril de 2015, desde http://www.instructables.com/id/UberHome-Automation-w-Arduino-Pi/ • Guillenxt. (2013). SENSOR PIR + ARDUINO: Alarma de Movimiento. Recuperado 25 de abril de 2015, desde http://www.guillenxt.com/2012/05/sensor-pir-parallax-y-arduino.html Página 19 de 25