TELECONTROL DOMÓTICO DE CASA DE CAMPO.
Gómez Guillermo; Chóez Richard; Millán Marcos.
Facultad de Ingeniería en Electricidad y Computación
Escuela Superior Politécnica del Litoral (ESPOL)
Campus Gustavo Galindo, Km 30.5 vía Perimetral
Apartado 09-01-5863. Guayaquil - Ecuador
{gagomez, mchoez, mmillan}@fiec.espol.edu.ec
Resumen
Este documento describe el diseño de un prototipo y la implementación de una solución domótica sobre una
maqueta, que permite el telecontrol de una casa de campo, de manera que el usuario o propietario de la
vivienda pueda realizar tareas de monitoreo y control remoto. Uno de los elementos claves en el diseño de esta
solución, es el microcontrolador Arduino Yún, el cual permite utilizar conceptos domóticos, electrónicos y
telemáticos, dentro de un diseño. Debido a estas ventajas y facilidades, se han integrado diversas tecnologías
compatibles con Arduino, las cuales a pesar de haber sido creadas de manera independiente, forman un buen
conjunto para poder diseñar una solución estable. Para este caso se procedió a diseñar una aplicación web,
que le brinda al usuario una interfaz amigable, en la cual se pueden realizar tareas como, manipulación de
interruptores, verificación de alarmas, visualización del estado de diversos sensores, y la presentación de
mensajes que son parte de la aplicación, que le ayudan al usuario, a lograr un monitoreo del entorno y del
interior de la vivienda.
Palabras Clave: Solución Domótica, Telecontrol, Micro controlador, Arduino Yún.
Abstract
This paper describes the design of a prototype and the implementation of an automation solution on a miniature
that allows a remote control house, so that the user or homeowner can perform tasks of monitoring and remote
control. One of the key elements in the design of this solution is the Yun Arduino microcontroller, which allows
use automation, electronics and telematics concepts within a design. Because of these advantages and facilities
they have been integrated various technologies compatible with Arduino, which despite having been created
independently, form a good set to design a stable solution. For this case to be proceeded to design a web
application that provides the user friendly interface, in which you can perform tasks such as handling switches,
alarm verification, displaying the status of various sensors, and presentation of messages They are part of the
application, which help the user to achieve a monitoring of the environment and the interior of the housing.
Keywords: Remote Automatation Solution, Microcontroller, Arduino Yun.
1. INTRODUCCIÓN
En la actualidad vivimos en un mundo, en el cual la
tecnología se ha globalizado, y esto ha permitido que
nuestro entorno, nuestras actividades diarias y nuestro
modo de vida cambien, de acuerdo a la evolución y
extensión del avance tecnológico..
Este documento describe el diseño
y la
implementación de una solución domótica en una
vivienda familiar de un piso, así como la tecnología y
protocolos usados, los dispositivos que conforman el
sistema
domótico,
y
las
aplicaciones
y
recomendaciones usadas para la implementación del
mismo, además la integración de diferentes factores y
conocimientos electrónicos, informáticos y de
desarrollo de software.
2. DESCRIPCIÓN DEL PROBLEMA
El ritmo de vida de la sociedad actual, permite que
haya la necesidad de la automatización y el control de
procesos y la administración de recursos, no solo en el
ámbito industrial o empresarial, sino también en las
actividades diarias del individuo.
Esto involucra a oficinas, edificios y viviendas, en
donde sus usuarios buscan no solo, una mayor
optimización de recursos, sino también mejorar el
confort, el modo de vida, y manipular funciones
normales de las mismas, desde un dispositivo, panel o
interfaz.
El escenario al cual estamos sometidos es el de un
usuario el cual posee una casa en un lugar alejado a su
hogar principal, esta es una casa de campo. En estas
condiciones la vivienda está expuesta a diferentes
factores los cuales impiden mantener un monitoreo
constante, ya que está ubicada a varios kilómetros de
distancia.
Debido a las responsabilidades de los usuarios en sus
actividades cotidianas, usualmente no hay una correcta
información del estado de la casa de campo, lo cual
implica contratar a terceras personas para el cuidado
de la misma, pero a pesar de esto aún existe la
inseguridad de los propietarios de la casa de campo.
El proceso de visitar constantemente una casa de
campo también es costoso, ya que al ser necesario
recorrer varios kilómetros, se gastará una alta suma de
dinero mensualmente si el propietario decide visitar la
casa de campo varias veces en la semana.
3. SOLUCIÓN PROPUESTA
El desarrollo e implementación de este proyecto, se
basa en poder automatizar y aplicar conceptos
domóticos en una casa de campo con el fin de que la
misma se convierta en una vivienda domótica e
inteligente. Además esta solución permite demostrar la
integración y compatibilidad de diversas tecnologías
independientes las cuales son muy utilizadas por la
comunidad de software libre.
4. DESCRIPCIÓN, DISEÑO E
IMPLEMENTACIÓN DEL PROTOTIPO.
A continuación describiremos en detalle el prototipo
de la casa a la cual aplicamos el telecontrol domótico y
el proceso de diseño de la misma.
El prototipo de la casa de campo está inspirado en una
casa sencilla de una planta, conformada por la sala,
comedor, cocina, garaje, dos habitaciones y dos baños,
además de contar con una cerca que rodea el perímetro
de la misma y una puerta principal, ubicada en una
zona de clima cálido.
Al ser una casa de campo, está expuesta a diferentes
variables las cuales son: temperatura, seguridad e
iluminación.
Dentro de la casa de campo existe un sensor que nos
permite estar al tanto de la temperatura en la misma,
además de contar con un ventilador el cual podremos
controlarlo desde la aplicación web.
La iluminación de la casa de campo está representada
por LEDs, los cuales están en las diferentes
habitaciones de la misma, la aplicación web nos
muestra el estado de los leds en cada habitación y nos
permite manipularlos.
El sistema de seguridad está compuesto por sensores
de presencia, los cuales al momento de activarlos nos
indican si existe algún intruso. Desde la aplicación
web podemos activar o desactivar el sistema de
alarma. También se tiene control de la entrada
principal a la vivienda, la cual por medio de la
aplicación web podemos abrir o cerrar la puerta.
En la figura 1 observamos la distribución de las
habitaciones de la casa de campo en 2 dimensiones.
La solución se desarrolla con software libre y
hardware de bajo costo, ya que el ahorro es una de las
ventajas que ofrece la domótica, aunque la gran
variedad de dispositivos, marcas y modelos que
existen para la implementación de soluciones
domóticas nos indica que a mayor inversión se
obtienen elementos que realizan mayor tipo de tareas y
la solución se vuelve más compleja.
El controlador principal en nuestra solución es el
Arduino, el cual es una tarjeta de bajo costo, que
debido a sus características y fácil configuración y
programación realiza diversas funciones que
mejorarán el estilo de vida del usuario final.
Figura 1. Distribución de habitaciones.
En la figura 2 observamos un diagrama de bloques,
utilizado para diseñar la solución
En la figura 4 observamos la comunicación entre los
dos chips de la placa
Figura 4. Ambiente de Comunicación de los chips de la
placa Arduino Yún
Figura 2. Diagrama General de Bloques.
5. DESCRIPCIÓN DE ARDUINO YÚN
Arduino brinda una familia de dispositivos de la cual,
se ha elegido el Arduino Yún por sus características y
ventajas, en donde una de las principales es que,
Arduino Yún está compuesto por dos chips que en
conjunto controlan el dispositivo, uno de estos es el
chip ATMega32U4 (el mismo que utiliza el Arduino
Leonardo) y un módulo que contiene una distribución
en Linux basado en la distribución OpenWRT, además
el Arduino Yún puede conectarse a la red mediante
Ethernet o WiFi.
En la figura 3 podemos visualizar el aspecto de la
placa Arduino Yún.
5.1 Configuración y Programación de Arduino
Yún
Arduino provee un software de código abierto llamado
Arduino IDE, el cual puede ser instalado en diversos
sistemas operativos Linux, MAC o Windows, este
software es una vía que permite programar a través de
líneas de código la configuración que debe llevar la
placa y los pines de la misma.
Arduino IDE permite crear hojas de trabajo, las cuales
son llamadas sketchs y que mantienen un ambiente de
desarrollo basado en Java, aquí se depositan todos los
métodos, funciones, declaraciones de variables,
utilización de librerías que son utilizadas para lograr la
configuración y la programación según el propósito
para el cual sea usada la placa Arduino.
Las diferentes versiones de Arduino contienen un
puerto USB, el cual es útil para poder alimentar de
energía a la placa Arduino y además para poder grabar
en el micro controlador el sketch desarrollado. Estos
sketchs son grabados con una extensión de archivo .ino
y luego de ser procesados y compilados, son subidos
desde Arduino IDE a través de una conexión USB entre
el dispositivo que contiene el software y la placa
Arduino.
Figura 3. Placa Arduino Yún
El Arduino Yún, a través del módulo que posee la
distribución de Linux, es posible establecer una
configuración mediante WiFi, además de poseer una
librería Bridge que es la que permite la interacción de
ambos módulos, esto ayuda a que los procesos que
utilicen comunicación web, de gran tamaño en
comparación a lo que puede procesar el Arduino, sean
delegados al módulo con Linux.
Para diseñar el sketch de nuestro Arduino se tomaron
en cuenta los sensores utilizados, las funcionalidades y
objetivos del sistema domótico, además el número de
pines de la placa, así como el mapeo de los pines, para
poder usar una programación con los registros de los
puertos.
En la Tabla 1 observamos la asignación de pines
configurados en el Arduino.
Tabla 1. Asignación de Pines.
se extrae datos de la base de datos como estados de los
pines, también se extrae datos de sensores utilizados, y
dependiendo de los valores de las variables o de los
pines, se ejecutarán las funciones.
6. INFRAESTRUCTURA WEB
Para lograr establecer un diseño estable para la interfaz
web se ha optado por utilizar LAMP, para poder
establecer la infraestructura que requiera la aplicación
La programación del sketch trabaja con métodos y
funciones, que son capaces de almacenar, actualizar,
leer, editar y consultar información en la base de datos
que se creó para este sistema, además permiten activar
o desactivar el estado de los pines durante la ejecución
y funcionamiento del sistema.
En la figura 5 podemos visualizar el diagrama
esquemático de las conexiones de los sensores con la
placa Arduino.
Figura 6. Elementos de una infraestructura web
6.1 Cambio de LAMP a LUMP
LAMP es una herramienta usada para implementar
servidores web, basado en tecnologías que a pesar de
ser independientes y que no han sido diseñadas con el
objetivo de trabajar juntos, su combinación ha sido
muy llamativa no solo para los usuarios que adquieren
el software, sino también para los programadores y
diseñadores.
Figura 5. Diagrama Esquemático de placa Arduino
El código utilizado para el microcontrolador contiene
tres bloques:
Declaración de variables: Aquellos datos que
sirven como parámetros en las funciones, o valores
obtenidos en métodos, contadores, resultados de
operaciones, valores de entrada de un sensor o
dispositivo externo.
Bloque de configuración: Aquí se establece los
pines que son utilizados como entradas o como salidas,
para este sketch se configura los pines a través de port
registers, asignando a cada puerto un valor binario
indicando 0 como entrada y 1 como salida. Además
aquí se abre el puerto serial y se le asigna la velocidad
en baudios.
Bloque de Ejecución: Este bloque es llamado loop o
lazo y permite mantener en un ciclo infinito, las
funciones y métodos incluidos dentro del mismo, aquí
LAMP contiene herramientas que son de código
abierto, esto permite mucha flexibilidad al momento de
programar y además implica un bajo coste de
adquisición lo cual lo hace muy llamativo y se ha
convertido en tendencia al momento de elegir una
solución para implementar proyectos, aplicaciones y
diseños.
Los elementos de LAMP, hacen referencia a las siglas
de la herramienta.
L: Linux
A: Apache
M: MySQL
P: Php/Phyton/Perl
Para este diseño se utilizó como servidor web uhttpd
que es el servidor por defecto de Open WRT y se
empleó PHP como intérprete del servidor, permitiendo
nombrar a la herramienta utilizada como LUMP.
En la figura 7 podemos observar los elementos
utilizados para diseñar la infraestructura web de la
solución.
8.
MÓDULOS DE LA APLICACIÓN
Para la elaboración de la aplicación web, así como la
base de datos y la configuración del Arduino se ha
utilizado un sistema modularizado, esto debido a que
así tenemos organizado los diferentes grupos de
sensores o actuadores por la funciones que realizan, y
ayudara a facilitar el mantenimiento o la
implementación de cambios.
8.1 ILUMINACION
Figura 7. Elementos de la Infraestructura Web
7. BASE DE DATOS EN MYSQL
Una vez instalado los paquetes de MySQL, se
procedió a configurar la base de datos para alojar
información acerca de los módulos y de los pines que
se han utilizado en el proyecto.
Esta base de datos tiene la finalidad de poder
almacenar los estados de los pines, además guarda la
temperatura captada por el sensor de temperatura, y
también los roles, la información de los usuarios y los
privilegios de los mismos.
A pesar de que no existe un modelo relacional general,
ya que son entidades independientes, se ha diseñado
tablas dependiendo de los módulos que contiene la
aplicación. Esta base fue diseñada a través de scripts
ejecutados por consola.
En la Figura 8 observamos las tablas utilizadas en la
creación de la base de datos.
Aquí el usuario puede manipular la iluminación de la
casa de campo, desde la aplicación, estos LEDs son
configurados en los pines de iluminación detallados en
la tabla 1.
8.2 TEMPERATURA
Aquí se muestra la temperatura actual, además se
permite activar un dispositivo de ventilación, el cual es
un ventilador, además la aplicación tiene la opción de
establecer una temperatura menor a la temperatura
sensada, lo que ocasionara que se active la ventilación
hasta que la temperatura ambiente sea igual a la
establecida.
8.3 ALARMAS
Aquí trabajan los sensores de presencia los cuales se
pueden configurar en modo activo o inactivo, cuando
se encuentren en modo activo, se activaran los
sensores y al momento de detectar un intruso, se
encenderá la luz de alarma y en la aplicación nos
mostrara en que sección de la vivienda se encuentra.
8.4 PUERTA
También se tiene el control de la puerta principal, la
cual da acceso al terreno de la vivienda, desde la
aplicación web podemos conocer el estado de la puerta
principal y podemos abrir o cerrarla remotamente.
8.5 CUENTAS Y ROLES DE USUARIO
Este módulo permite agregar usuarios disponibles para
que puedan usar la aplicación, además se pueden
restringir accesos y asignar privilegios a través de
permisos que son asignados por el Administrador.
Figura 8. Modelo Entidad-Relación.
9. PRUEBAS Y RESULTADOS
temperatura a la cual está sometido el cuarto en donde
está ubicado el sensor.
A continuación detallamos los resultados obtenidos al
evaluar el funcionamiento de los módulos que
conforman la solución domótica para la casa de
campo.
Además de poder medir la temperatura, podemos
activar desde la aplicación web la ventilación. La
aplicación web también posee la opción de poder
programar la ventilación para que se encienda hasta
que el sensor de temperatura mida un valor
inicialmente establecido.
9.1 PRUEBAS DE MÓDULO DE CONTROL DE
ILUMINACIÓN
El módulo de iluminación está conformado por todos
los LEDs ubicados en las habitaciones de la casa los
cuales pueden ser encendidos y apagados
individualmente desde la aplicación web, además existe
una opción de encender y apagar todos los leds
simultáneamente.
En la figura 11 observamos la ubicación del sensor de
temperatura y del ventilador en la casa de campo,
además de un led indicador que se enciende cuando se
enciende el ventilador. En la Figura 12 observamos el
módulo de temperatura donde encontramos la
temperatura sensada y la opción de encendido del
ventilador.
En la figura 9 observamos como encender los LEDs
que representan la iluminación de la casa por medio de
la aplicación web, y en la figura 10 observamos el
ambiente de la aplicación web para el módulo de
iluminación.
Figura 11. Ubicación de sensor de temperatura y
ventilador.
Figura 9. Iluminación de la casa de campo.
Figura 12. Módulo de Temperatura.
9.3 PRUEBAS DE MÓDULO DE CONTROL DE
SEGURIDAD
Figura 10. Módulo de Iluminación.
9.2 PRUEBAS DE MÓDULO DE CONTROL DE
TEMPERATURA
El módulo de temperatura consiste en un sensor de
temperatura y un sistema de ventilación, que está
representado por un ventilador. Por medio de la
aplicación web podremos estar informados de la
El módulo de seguridad en la aplicación web nos ayuda
a estar informados del estado de los sensores que
cuenta la solución domótica. Para que los sensores de
presencia empiecen a trabajar es necesario activar la
seguridad por medio de una de las opciones en la
aplicación web.
En la Figura 13 observamos la ubicación de los
sensores de presencia y en la figura 14 observamos el
módulo de control de seguridad en la aplicación web.
Figura 16. Alarma Encendida.
Figura 13. Ubicación de sensores de
presencia.
9.4 PRUEBAS DE CONTROL DE PUERTA PRINCIPAL
Por medio de la aplicación web tenemos conocimiento
del estado de la puerta principal, si está abierta o
cerrada, y podremos manipular la misma, en la Figura
17 observamos como desde la aplicación web se puede
abrir la puerta principal.
Figura 14. Módulo de Control de Seguridad
Al momento en que los sensores de presencia detecte
algún intruso, en la aplicación web se mostrara un
mensaje indicando la alarma, y se encenderá un led
indicador ubicado en la sala de la casa.
Figura 17. Control de Puerta Principal.
En la Figura 15 observamos el mensaje de notificación
de alarma, y en la Figura 16 observamos el módulo de
control de seguridad cuando alguna de las alarmas esta
activada.
9.5 PRUEBAS DE MÓDULO DE GESTIÓN DE USUARIOS
El módulo de gestión de usuarios que ofrece la
aplicación web ayuda a crear, modificar y eliminar los
diferentes usuarios que pueden acceder a la aplicación
web. En la Figura 18 observamos los diferentes
usuarios que pueden acceder a la aplicación web.
Figura 15. Notificación de Alarma.
Figura 18. Módulo de Gestión de Usuarios.
9.6 PRUEBAS DE ERROR
Debido a que varios usuarios pueden acceder
simultáneamente a la aplicación web, y manipular los
diferentes elementos que comprenden la solución
domótica, ya sea por medio del mismo usuario o de
diferentes usuarios se realizó la siguiente prueba de
error para conocer hasta qué punto nuestra aplicación
es estable, o cuanto cambia el rendimiento según la
cantidad de usuarios que estén accediendo a la misma.
Se realizaron dos escenarios diferentes para la prueba
de error, el primero consiste en acceder a la aplicación
web con el mismo usuario desde diferentes dispositivos
simultáneamente, y el segundo escenario es acceder a
la aplicación desde diferentes dispositivos y con
diferentes usuarios.
Para los dos escenarios la prueba de error es la misma,
utilizar el módulo de iluminación para conocer si
existe algún tipo de retardo, o si el tiempo de respuesta
aumenta a razón de la cantidad de usuarios que
acceden a la aplicación.
En la Figura 19 observamos los tiempos de activación
de los leds cuando se ingresa con el mismo usuario
desde diferentes dispositivos simultáneamente.
10.
CONCLUSIONES
El desarrollo de una aplicación web para el telecontrol
del sistema domótico fue debido a que el usuario final
puede acceder al mismo por medio de cualquier
ordenador, de escritorio o portátil, y por medio de
cualquier navegador web.
Arduino Yún posee características muy llamativas
como flexibilidad, usabilidad y acoplamiento con
sensores y actuadores, esto es esencial al momento de
elegir un dispositivo que pueda soportar la integración
de diferentes tecnologías.
Se eligió usar un sistema de tipo LUMP para el diseño
de la infraestructura del servidor web, con la diferencia
que se usó uhttpd en lugar de Apache ya que este
servidor es fácil de configurar y trabaja muy bien con
Open WRT.
Arduino trabaja con un reloj que toma en cuentas los
ciclos al momento de ejecutar una sentencia, un cambio
relevante dentro de la programación del sketch fue
programar usando los diferentes puertos del Arduino
como PORTD, PORTE, etc. ya que la función
digitalWrite (PIN, LOW); consume mucho tiempo de
respuesta y ejecución.
Después de las pruebas de error realizadas, concluimos
que a mayor número de usuarios, los tiempos de
activación van a variar, pero esta variación no es
significativa, debido a que está en el orden de los
milisegundos.
11.
Figura 19. Número de Usuarios Vs. Tiempo de Activación
– Mismo usuario en varios dispositivos.
En la Figura 20 observamos los tiempos de activación
de los LEDs cuando se ingresa con distintos usuarios
desde diferentes dispositivos simultáneamente.
REFERENCIAS
[1] Xataka
[2]
[3]
[4]
[5]
Windows,
Arduino,
http://www.xataka.com/robotica/arduino-yuncombina-la-potencia-de-arduino-con-la-de-linux,
fecha de consulta diciembre 2014
Arduino,
Arduino
Yún,
http://arduino.cc/en/Main/ArduinoBoardYun,
fecha de consulta diciembre 2014
OCW,
Tecnologías
Domóticas,
http://ocw.um.es/ingenierias/domotica/materialde-clase-1/tema-3-tecnologias-domoticas-parte-iivocw.pdf, fecha de consulta diciembre 2014
Aplicaciones
de
la
Telemetría,
ttps://moisesbm.wordpress.com/2011/06/18/telem
etria-f1/, fecha de consulta diciembre 2014
Interiorismos, Beneficios de la domótica en el
hogar, http://interiorismos.com/beneficios-de-ladomotica-en-el-hogar/,
fecha
de
consulta
diciembre 2014
[6] Equipo de desarrollo OpenWRT, OpenWRT,
Figura 20. Número de Usuarios Vs. Tiempo de
Activación – Diferentes usuarios en varios dispositivos.
https://openwrt.org/, fecha de consulta marzo
2015
[7] Equipo
de
Definición
ABC,
MySQL,
http://www.definicionabc.com/tecnologia/mysql.p
hp, fecha de consulta marzo 2015.