Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Nod

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 66

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/298214426

Diseño de un sistema domótico de bajo coste basado en Raspberry Pi

Thesis · July 2014

CITATIONS READS

0 520

1 author:

Raquel Sedó
University Carlos III de Madrid
1 PUBLICATION   0 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Raquel Sedó on 14 March 2016.

The user has requested enhancement of the downloaded file.


UNIVERSIDAD DE MÁLAGA

Escuela Técnica Superior de Ingeniería Industrial

Departamento: Ingeniería de Sistemas y Automática


Área de Conocimiento: Automática

TRABAJO FIN DE GRADO

Diseño de un sistema domótico de bajo coste


basado en Raspberry Pi

Autora:
Dña. Raquel Sedó Sánchez

Director:
Dr. D. Vicente Arévalo Espejo

12 de julio de 2014
“Dime y lo olvido, enséñame y lo recuerdo, involúcrame y lo aprendo.”

Benjamin Franklin
Agradecimientos

En primer lugar, me gustaría agradecer a Vicente Arévalo Espejo la oportunidad


que me ofreció al plantearme el desarrollo de este proyecto, el cual ha supuesto una
grata experiencia para mí, gracias de verdad.

Quisiera además dar las gracias a todas aquellas personas que me han
acompañado y apoyado a lo largo de mi experiencia en la universidad, haciendo
de ella una etapa inolvidable, en especial:

A todos mis compañeros y amigos de la ETSII, con quienes he compartido


valiosos momentos a lo largo de esta titulación.

A toda mi familia quienes siempre me han ayudado, en especial agradezco a mis


abuelos el estar siempre junto a mí, y a mis tíos Marcos y Lola quienes siempre me
han brindado su ayuda de forma incondicional.

A Alberto, mi compañero y mejor amigo, porque sin ti nada hubiera sido posible.

Por último, a mis padres Jorge y Marcela, por su esfuerzo y dedicación todos
estos años y por la confianza que han depositado en mí.

A todos, muchísimas gracias.

ii
Resumen del Contenido

En este proyecto se realiza el desarrollo, tanto hardware como software, de un


sistema domótico de bajo coste basado en el dispositivo Raspberry Pi.

Este proyecto surge como solución a la problemática de elevado precio que


presentan algunos sistemas domóticos comerciales. De este modo, se pretende acercar
a un mayor sector de usuarios el acceso a las nuevas tecnologías domésticas.

iii
Índice general

Agradecimientos II

Resumen del Contenido III

Índice General V

Índice de figuras VII

1. Introducción 1
1.1. Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Objetivos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Descripción de la problemática 5
2.1. Estado actual de la domótica . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Otros proyectos similares . . . . . . . . . . . . . . . . . . . . . . . . . 7

3. Desarrollo de la solución propuesta 9


3.1. Introducción a Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . 9
3.2. Propósito del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3. Diseño general del sistema desarrollado . . . . . . . . . . . . . . . . . 11
3.4. Diseño hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.1. Pines GPIO de Raspberry Pi . . . . . . . . . . . . . . . . . . 14
3.4.2. Placa de Expansión I/O PiFace Digital . . . . . . . . . . . . . 15
3.4.3. Conexionado del sistema . . . . . . . . . . . . . . . . . . . . . 17
3.5. Raspberry Pi como sistema domótico . . . . . . . . . . . . . . . . . . 20
3.5.1. Software para la gestión de señales E/S . . . . . . . . . . . . . 22
3.5.2. Base de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6. Diseño de la Interfaz Web . . . . . . . . . . . . . . . . . . . . . . . . 26

iv
3.6.1. Descripción General . . . . . . . . . . . . . . . . . . . . . . . 26
3.6.2. Especificaciones de la Interfaz web . . . . . . . . . . . . . . . 27
3.6.3. Diseño previo de la interfaz web de usuario . . . . . . . . . . . 28
3.6.4. Diseño Responsive . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6.5. Software para la implementación de la interfaz . . . . . . . . . 33
3.6.6. Herramientas empleadas para la edición . . . . . . . . . . . . 36
3.6.7. Seguridad de la interfaz web . . . . . . . . . . . . . . . . . . . 37
3.6.8. Estructura de la aplicación . . . . . . . . . . . . . . . . . . . . 37
3.6.9. Resultados del diseño de la interfaz web de usuario . . . . . . 39

4. Conclusiones y líneas futuras de trabajo 51


4.1. Conclusiones personales . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2. Líneas futuras de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . 52

Bibliografía y referencias 54

Anexo: Código Fuente 57


Índice de figuras

1.1. Ejemplo general de una instalación domótica [2] . . . . . . . . . . . . 2

2.1. Microcontrolador Arduino . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1. Raspberry Pi Modelo B . . . . . . . . . . . . . . . . . . . . . . . . . 10


3.2. Diseño general del sistema domótico basado en Raspberry Pi . . . . . 13
3.3. Módulo GPIO de Raspberry Pi . . . . . . . . . . . . . . . . . . . . . 14
3.4. Placa de Expansión PiFace Digital . . . . . . . . . . . . . . . . . . . 16
3.5. Conexionado general para el desarrollo del sistema domótico . . . . . 18
3.6. Conexión de las distintas salidas del sitema . . . . . . . . . . . . . . . 18
3.7. Sensor PIR para la detección de movimiento . . . . . . . . . . . . . . 19
3.8. Multiplicador USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.9. Esquema Servidor web - Cliente . . . . . . . . . . . . . . . . . . . . . 20
3.10. Diagrama de flujo del daemon . . . . . . . . . . . . . . . . . . . . . . 23
3.11. Contenido de la tabla semaforos . . . . . . . . . . . . . . . . . . . . . 26
3.12. Página de Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.13. Página para la monitorización de las estancias . . . . . . . . . . . . . 29
3.14. Apartado de configuración de las estancias . . . . . . . . . . . . . . . 29
3.15. Apartado de configuración de alarma y bocina . . . . . . . . . . . . . 30
3.16. Apartado de configuración de las notificaciones . . . . . . . . . . . . . 30
3.17. Muestra del diseño web responsive . . . . . . . . . . . . . . . . . . . . 31
3.18. Interfaz desde un ordenador portátil . . . . . . . . . . . . . . . . . . . 32
3.19. Interfaz desde un smartphone . . . . . . . . . . . . . . . . . . . . . . 32
3.20. Requisito de autenticación para el acceso a la aplicación . . . . . . . . 37
3.21. Esquema general del funcionamiento de la interfaz web . . . . . . . . 38
3.22. Acceso a la interfaz web desde un ordenador portátil . . . . . . . . . 40
3.23. Acceso a la interfaz web desde un teléfono móvil . . . . . . . . . . . . 40
3.24. Página de inicio de la interfaz desde un ordenador portátil . . . . . . 41

vi
3.25. Página de inicio de la interfaz desde un teléfono móvil . . . . . . . . . 42
3.26. Consulta y modificación del estado de las estancias desde un
ordenador portátil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.27. Consulta y modificación del estado de las estancias desde un teléfono
móvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.28. Apagado de todas las estancias desde un ordenador portátil . . . . . 44
3.29. Apagado de todas las estancias desde un teléfono móvil . . . . . . . . 44
3.30. Configuración de la alarma y la bocina de aviso desde un ordenador
portátil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.31. Configuración de la alarma y la bocina de aviso desde un teléfono móvil 45
3.32. Configuración de las estancias desde un ordenador portátil . . . . . . 46
3.33. Configuración de las estancias desde un teléfono móvil . . . . . . . . . 46
3.34. Modificación del nombre de las estancias desde un ordenador portátil 47
3.35. Modificación del nombre de las estancias desde un teléfono móvil . . . 47
3.36. Configuración de las notificaciones desde un ordenador portátil . . . . 48
3.37. Configuración de las notificaciones desde un teléfono móvil . . . . . . 48
3.38. Aviso de detección de intruso desde un ordenador portátil . . . . . . . 49
3.39. Aviso de detección de intruso desde un teléfono móvil . . . . . . . . . 49
3.40. Notificación del sistema de alarma recibida en el correo electrónico . . 50
Capítulo 1

Introducción

1.1. Contexto

Desde el comienzo del ser humano, las infraestructuras e instalaciones


construidas por el mismo han mostrado numerosos cambios, enfocados siempre a
las necesidades propias de la sociedad de esa época. A partir de la segunda mitad
del siglo XX, han sido numerosas las mejoras experimentadas, no sólo en el sector de
la vivienda, si no en el resto de edificios de muy diversa actividad (escuelas, hoteles,
oficinas...) fomentando la creación, distribución y manipulación de la información
dando lugar a la sociedad que conocemos hoy día, una sociedad de información. Todo
esto ha sido posible gracias al avance de la electrónica, la electricidad, la automática,
la informática y las telecomunicaciones, entre otras muchas disciplinas.

La incorporación de las nuevas tecnologías en el hogar han inducido cambios en


el uso y la función de la vivienda, originando la creación de un nuevo concepto: la
domótica. A partir de esto, aspectos como el ocio y el bienestar pasan a convertirse,
para algunos, en requisitos indispensables que ha de ofrecer su vivienda, además de
una mejora en la accesibilidad y seguridad de la misma.

Es por ello que, gracias a la domótica surgen numerosos retos tecnológicos


inimaginables hace pocos años: poder gestionar el consumo de energía en la vivienda,
controlar remotamente los dispositivos eléctricos del hogar, recibir notificaciones
sobre la seguridad de éste... Son casi infinitas las posibilidades que ofrecen los
sistemas domóticos actuales, brindando además al usuario la oportunidad de no
solo tener una experiencia memorable, sino un servicio único y personalizado.

Actualmente, la domótica se está abriendo un hueco en el mercado gracias a

Raquel Sedó Sánchez Pág. 1


Diseño de un sistema domótico de bajo Capítulo 1.
coste basado en Raspberry Pi Introducción

este incesante desarrollo tecnológico, lo cual genera a su vez, grandes expectativas


de negocio en el sector de la construcción [1], sobre todo para la edificación de
nuevas viviendas, más que la reforma de las actuales. Pese a tener la domótica un
gran abanico de funcionalidades, continúa enfocándose a un sector de la población
determinado, en este caso, a un usuario tipo con un capital económico superior a la
media general. Es por ello que, el acceso a instalaciones y dispositivos domóticos
sigue viéndose limitado por su elevado precio, lo cual ha desencadenado cierta
creencia entre la población media sobre la falta de viabilidad de implantar un sistema
domótico en su hogar.

Figura 1.1: Ejemplo general de una instalación domótica [2]

Como consecuencia de esta situación, cada vez surgen más proyectos de tipo
open-source/open-hardware que tratan de aportar soluciones apoyándose en la
utilización de dispositivos electrónicos de bajo coste [3]. Un ejemplo de esto son
el empleo del microcontrolador Arduino [4], o en el caso concreto de este proyecto,
el de Raspberry Pi.

Raquel Sedó Sánchez Pág. 2


Diseño de un sistema domótico de bajo Capítulo 1.
coste basado en Raspberry Pi Introducción

1.2. Objetivos Generales

Con el objetivo de satisfacer las necesidades de confort y bienestar de cualquier


tipo de usuario, se pretende desarrollar una plataforma domótica accesible a
cualquier presupuesto, capaz de ofrecer varias funcionalidades tales como el manejo
de luces o la monitorización de la seguridad del hogar.

Para alcanzar este objetivo se desarrollará una aplicación específicamente


diseñada para trabajar en Raspberry Pi, que se encargará de gestionar la entrada y
salida de señales discretas que representan, por ejemplo, la activación de un sensor
de presencia, la pulsación de un botón de encendido, o la activación de una bombilla
o bocina de alarma.

Este trabajo se centrará especialmente en el software desarrollado y sus


capacidades de ampliación. A su vez, se diseñará e implementará una interfaz web
para facilitar la interacción del usuario con el sistema domótico instalado en su
hogar. Esta interfaz de usuario se desarrollará con tecnologías web que permitan el
acceso al sistema desde distintos dispositivos, ya sean móviles o de escritorio.

Con todo esto, el principal objetivo de este trabajo no deja de ser el fomentar el
empleo de la tecnología en el hogar, y acercar ésta de una forma muy económica a
todo aquel que esté interesado en ella.

1.3. Estructura del documento

La presente memoria del proyecto desarrollado consta de diferentes capítulos:

En este primer capítulo se realiza una breve introducción, describiendo el entorno


tecnológico en el que se origina la elaboración de este proyecto, además de exponer
los distintos objetivos generales a alcanzar a lo largo del mismo.

El segundo capítulo muestra algunos aspectos de la problemática que se plantea


con respecto a los sistemas domóticos en el contexto actual, así como algunos
trabajos similares a este proyecto que intentan solventar las dificultades que se

Raquel Sedó Sánchez Pág. 3


Diseño de un sistema domótico de bajo Capítulo 1.
coste basado en Raspberry Pi Introducción

plantean.

El desarrollo de la solución técnica se encuentra en el tercer capítulo. En él se


exponen las diferentes características, tanto desde el punto de vista hardware como
software, del sistema domótico de bajo coste implementado. Además, se argumentará
la selección de las herramientas empleadas, así como, se mostrarán los resultados
obtenidos con éstas.

Por último se realizará un balance de las conclusiones finales en el cuarto


capítulo. De este modo se analizarán los objetivos iniciales planteados junto con
los resultados obtenidos. Además se establecerán posibles líneas de trabajo futuras
para la ampliación del proyecto propuesto.

Cabe añadir que al final de este proyecto se encontrarán los anexos con el código
empleado para el desarrollo de esta aplicación.

Raquel Sedó Sánchez Pág. 4


Capítulo 2

Descripción de la problemática

2.1. Estado actual de la domótica

A lo largo de este capítulo se expondrán las dificultades y cuestiones que se


plantean en la actualidad cuando se habla de domótica, que han originado el inicio
de este proyecto.

La domótica se puede definir como la disciplina en la que convergen la


electrónica, la electricidad, la automática, la informática y las telecomunicaciones,
dando lugar a un conjunto de servicios enfocados a mejorar la calidad de vida de las
personas en su propio hogar, abarcando aspectos tales como la seguridad, la gestión
energética, servicios de ocio, el bienestar, la accesibilidad, etc. Tal concepto engloba
el desarrollo de distintas tecnologías, lo que supone poseer un amplio conocimiento
de todas ellas para poder construir un sistema domótico funcional.

En la actualidad, se pueden encontrar diferentes opciones para la implantación


de un sistema domótico, los más conocidos son aquellos que emplean protocolos
de comunicación [5]. Un protocolo de comunicaciones es un conjunto de reglas y
normas que permiten que dos o más entidades de un sistema de comunicación se
comuniquen entre ellos para transmitir información por medio de cualquier tipo de
variación de una magnitud física. Entre ellos cabe mencionar los siguientes:

X10 [6]. Utiliza la línea eléctrica para transmitir señales de control entre los
equipos de automatización del hogar en formato digital. Los dispositivos X10
que se comercializan son solo para uso individual y en entornos domésticos de
hasta 250 m2, dada su limitación en ancho de banda y en el número máximo
de dispositivos a controlar (256).

Raquel Sedó Sánchez Pág. 5


Diseño de un sistema domótico de bajo Capítulo 2.
coste basado en Raspberry Pi Descripción de la problemática

KNX [7]. Define varios medios de comunicación física como TP1 (Par
trenzado), PL110 (Powerline, esto es la red eléctrica), RF (Radio frecuencia) y
Ethernet (IP). Pese a las posibilidades que ofrece, el medio de transmisión
más empleado es el par trenzado, con lo que requiere un bus de control
independiente al que se conectan todos los dispositivos requeridos.

ZigBee [8]. Se trata de un conjunto de protocolos de alto nivel de comunicación


inalámbrica para su utilización con radiodifusión digital de bajo consumo,
basada en el estándar IEEE 802.15.4 de redes inalámbricas de área personal.
Su objetivo son las aplicaciones que requieren comunicaciones seguras con baja
tasa de envío de datos y maximización de la vida útil de sus baterías.

Todos estos protocolos de comunicación ofrecen distintas posibilidades de


conexionado y envío de información según se requiera en el diseño del sistema
domótico. Sin embargo, todos ellos comparten dos características comunes: el elevado
precio y la compleja y laboriosa programación para la implantación de cualquier
sistema automático en el hogar. De hecho, el montaje de un sistema domótico ya
sea en una vivienda nueva o construida no sólo supone un gran desembolso inicial,
sino que el sistema de reparación y mantenimiento requiere de un presupuesto poco
accesible a todos los sectores de la población. Un equipamiento para el control de
luces, persianas y temperatura de una vivienda estándar tiene un precio de unos
2.000 a 4.000 e [9]. Este precio asciende notablemente si se necesitan otras utilidades
o si la vivienda tiene un tamaño mayor.

Por otro lado, en muchos sistemas domóticos complejos, con gran cantidad de
características y funcionalidades, se elaboran interfaces complicadas de manejar con
demasiados detalles, asumiendo de este modo, que los usuarios que accedan a ella
tienen cierto conocimiento previo de este tipo de tecnologías. Con lo cual, se acaba
perdiendo la idea de accesibilidad para el diseño de este tipo de sistemas.

Luego, se persigue afrontar la problemática de elevado coste antes mencionada,


fomentando una alternativa económica y alcanzable para cualquier usuario. Además,
se insiste en el desarrollo de una interfaz de usuario comprensible, logrando así un
sistema domótico completo, sencillo de utilizar, con características similares a las de
los modelos comerciales, y sobre todo, a un precio muy reducido y asequible para
todos los usuarios interesados en dotar su hogar con las nuevas tecnologías.

Raquel Sedó Sánchez Pág. 6


Diseño de un sistema domótico de bajo Capítulo 2.
coste basado en Raspberry Pi Descripción de la problemática

2.2. Otros proyectos similares

Como se ha indicado anteriormente, actualmente surgen muchos proyectos


relacionados con la domótica que tratan de dar solución a la problemática de
precio que ofrece su implantación en los hogares. Muchos de estos trabajos, al igual
que este proyecto, se basan en dispositivos de bajo coste con gran capacidad de
conectividad, dando lugar a diversos sistemas de control domésticos en función de
distintas necesidades. En este apartado se mencionarán algunos de estos sistemas
desarrollados, aunque existen infinidad de éstos en el mercado.

El uso de microcontroladores para el desarrollo de sistemas domésticos está


muy extendido actualmente. Entre estos, cabe destacar el uso de Arduino en este
tipo de aplicaciones [10]. Arduino [11] es un microcontrolador que se programa en
adaptación propia de Arduino del lenguaje de programación Wiring. Además, ofrece
multitud de posibilidades de conexionado, gracias a los distintos módulos que pueden
acoplarse sobre el mismo de manera que pueden obtenerse tanto sistemas de control
de persianas, como de iluminación, temperatura. . .

Figura 2.1: Microcontrolador Arduino

Por otro lado, fijando como objetivo el realizar sistemas accesibles a cualquier
tipo de usuario, aparecen proyectos en distintas convenciones o conferencias que

Raquel Sedó Sánchez Pág. 7


Diseño de un sistema domótico de bajo Capítulo 2.
coste basado en Raspberry Pi Descripción de la problemática

intentan fomentar el empleo de la tecnología en el hogar a partir de un sistema


económico. Como es el caso de un sistema domótico que emplea un Pentium III
y una placa electrónica casera para el control de la iluminación y de dispositivos
electrónicos a través de comandos de voz [12].

Por tanto, continuando con la iniciativa de estos proyectos, buscando una


alternativa de menor precio a la domótica actual, se propone el proyectar un sistema
domótico basado en un dispositivo recientemente lanzado al mercado que ofrece
grandes expectativas de desarrollo: la Raspberry Pi.

Raquel Sedó Sánchez Pág. 8


Capítulo 3

Desarrollo de la solución propuesta

Como solución a la problemática económica que presentan los sistemas actuales


de domótica, según lo descrito en el capítulo 2, y por tratarse de una herramienta con
gran capacidad de expansión, se ha seleccionado Raspberry Pi como el dispositivo
electrónico en el que se basará el sistema a proyectar. A continuación se realizará
una breve descripción de cómo surge y de las características que ofrece.

3.1. Introducción a Raspberry Pi

Raspberry Pi [13] es, a grandes rasgos, un ordenador de tamaño reducido que


surgue en la Fundación Raspberry Pi tras conocer la necesidad de fomentar y
facilitar el estudio de las ciencias de la computación entre los jóvenes estudiantes,
ofreciéndoles así un aparato con numerosas funcionalidades a un precio irrisorio.

A partir del año 2006 se realizaron varios diseños y prototipos de este dispositivo
en la Universidad de Cambridge, Reino Unido. Aunque no fue hasta febrero de
2012 cuando se lanzó de forma comercial Raspberry Pi. Para entonces, ya se habían
desbordado las expectativas de ventas, convirtiéndose en una herramienta ideal para
el desarrollo de todo tipo de proyectos, no sólo de carácter didáctico sino también
en el ámbito empresarial y personal a un precio que no supera los 45e (35£ [14]).

Actualmente existen dos modelos de Raspberry Pi: el modelo A y el modelo B.


El primero de ellos carece de puerto Ethernet con el que conectar la Raspberry Pi a
una red, así como que sólo posee un puerto USB y una memoria memoria RAM de
256 MB. Estas características hacen que este modelo sea la opción más económica,
pese a ello, se ha seleccionado el modelo B para el desarrollo de este proyecto, por

Raquel Sedó Sánchez Pág. 9


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

tener mejores especificaciones.

Cabe añadir que el diseño no incluye disco duro ni unidad de estado sólido para
el almacenamiento permanente, para ello se hace uso de la ranura para las tarjetas
de memoria. En la tarjeta de memoria se debe realizar la instalación del sistema
operativo que deseamos que gestione la Raspberry Pi. A través de la página web
oficial se puede acceder a distintas distribuciones : Raspbian, Pidora, OpenElec,
ArchLinux Pi. . .

Además, Raspberry Pi cuenta con dos puertos USB 2.0, un conector HDMI para
salida de vídeo en alta definición, un conector de 3,5 mm para salida de audio, una
ranura para tarjetas de memoria SD/MMC, un puerto Ethernet 10/100 y un cabezal
de 26 pines para conexión de periféricos de bajo nivel (GPIO, I2C, SPI y UART). A
lo que habría que añadir la posibilidad de desarrollar software utilizando lenguajes de
alto nivel como Python o C++, características que lo hacen especialmente atractivo
en comparación con otras plataformas como podría ser Arduino.

Figura 3.1: Raspberry Pi Modelo B

Raquel Sedó Sánchez Pág. 10


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

3.2. Propósito del proyecto

El objetivo principal de este proyecto consiste en desarrollar el software /


hardware necesario para convertir un dispositivo de bajo coste, en un sistema capaz
de gestionar elementos domésticos simples tales como sensores de presencia, bocinas
de alarmas y encendido de luces. Una vez seleccionada la herramienta en la que se
basará el sistema domótico a proyectar, es apropiado definir de forma más precisa
cuáles son los objetivos particulares a alcanzar:

Desarrollar el hardware necesario para la gestión de señales de entrada y salida


discretas con Raspberry Pi.

Desarrollar un programa capaz de gestionar en tiempo real las señales de


entrada y salida correspondientes al sistema domótico.

Desarrollar una interfaz web que posibilite al usuario conocer el estado del
sistema domótico, así como interactuar con éste.

A través de este proyecto se busca además poner en práctica los distintos


conocimientos adquiridos a lo largo de la titulación: desde el conexionado y
tratamiento de sensores hasta la programación del software necesario.

3.3. Diseño general del sistema desarrollado

Para alcanzar de forma satisfactoria los objetivos propuestos, se plantea un


sistema domótico apoyado en las funcionalidades que Raspberry Pi ofrece.

A continuación se describirá éste a grandes rasgos, para poder mostrar así una
visión general del sistema implementado y su funcionamiento; posteriormente, se
dedicarán diferentes secciones a profundizar y detallar la solución técnica proyectada.

En primer lugar, para poder acceder al sistema domótico desde cualquier


dispositivo con conexión a internet y así, interactuar con el mismo, se requiere de un
servidor web propio que nos facilite esta acción. Raspberry Pi ofrece la posibilidad

Raquel Sedó Sánchez Pág. 11


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

de trabajar como servidor web, realizando las configuraciones correspondientes como


se ve en la sección 3.5, dedicada a ello.

Por otro lado, sobre el dispositivo Raspberry Pi se ejecuta un programa residente


(daemon) encargado de la manipulación y almacenamiento del estado de las distintas
señales discretas. En base a estos valores, se hace uso de una placa de expansión
(PiFace Digital, ver apartado 3.4.2) en la que se conectarán los distintos dispositivos
externos tales como luces, sensores de presencia y bocina. El estado de las señales
correspondientes a estos dispositivos externos se almacenan en una base de datos,
que será consultada tanto por el programa mencionado anteriormente, como por la
interfaz web (ver su diseño en la sección 3.6).

De este modo, el funcionamiento del sistema domótico se puede resumir según


el esquema posterior (Figura 3.2), cuya descripción es la siguiente:

1. El usuario accede a la interfaz web a través de su dispositivo móvil o de


escritorio con la intención de modificar o consultar el estado de su hogar. Esta
interfaz, muestra el estado del sistema a través de una consulta a la base de
datos, donde se almacena toda la información respectiva al sistema domótico.

2. Si se modifica algún dispositivo externo a través de la interfaz web, se actualiza


la información de la base de datos.

3. El programa de gestión de señales, que se encuentra en continua ejecución en


la Raspberry Pi, monitoriza los cambios solicitados por el usuario.

4. Una vez evaluada la información, se mandan las señales requeridas a los


distintos dispositivos externos a través de la placa de expansión PiFace Digital.

De este modo, se consigue responder de forma rápida y sencilla a las diferentes


peticiones del usuario acerca del sistema domótico de su hogar. No obstante, ésta
se trata de una descripción general, más adelante se concretará cómo se activa o
desactiva la alarma de la vivienda o qué ocurre si se detecta un intruso estando ésta
activa.

Raquel Sedó Sánchez Pág. 12


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.2: Diseño general del sistema domótico basado en Raspberry Pi

3.4. Diseño hardware

Para el diseño hardware del sistema a desarrollar se han estudiado previamente


las posibilidades de conexión que ofrece Raspberry Pi. Como se mencionó
anteriormente en la sección introductoria de este dispositivo (3.1), Raspberry Pi
dispone de un módulo de pines de Propósito General de Entrada/Salida, denominado
GPIO.

En el siguiente apartado se describirán las características y funcionalidades de


los pines GPIO, aunque finalmente la solución considerada sea el empleo de una de
la placa PiFace Digital como se verá en adelante.

Raquel Sedó Sánchez Pág. 13


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

3.4.1. Pines GPIO de Raspberry Pi

Raspberry Pi ofrece 26 pines de propósito general, a lo largo de dos hileras con


13 pines cada una. Estos pines GPIO pueden emplearse para SPI (Serial Peripheral
Interface, estándar de comunicaciones, usado principalmente para la transferencia de
información entre circuitos integrados en equipos electrónicos), I2C (Inter-Circuitos
Integrados, bus de comunicaciones en serie), UART (Transmisor-Receptor Asíncrono
Universal, control de puertos y dispositivos serie), generación de PWM (Modulación
por Ancho de Pulso), alimentación a 3.3V ó 5V, GND y E/S.

En la siguiente figura se muestra la ubicación de estos pines, junto con su


numeración.

(a) GPIO (b) Leyenda de


colores

Figura 3.3: Módulo GPIO de Raspberry Pi

En el caso concreto de este proyecto, parecería considerable el emplear algunos


de estos pines de propósito general para el control de las distintas señales de entrada
y salida a gestionar. Sin embargo, el uso de estos pines plantea cierta problemática,

Raquel Sedó Sánchez Pág. 14


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

como es que los pines funcionan a 3.3V, no tolerando 5V, con lo cual se debería
añadir una protección contra el alto voltaje para evitar de este modo, daños sobre
el dispositivo Raspberry Pi.

Por tanto, para mejorar las posibilidades de conexión de Raspberry Pi y teniendo


en cuenta que las señales a controlar son digitales, se ha propuesto como solución el
empleo de una placa de expansión diseñada para Raspberry Pi denominada Piface
Digital I/O. En la siguiente sección se detallan las características y funcionalidades
que la hacen adecuada para el sistema a desarrollar en este proyecto.

3.4.2. Placa de Expansión I/O PiFace Digital

Uno de los objetivos a alcanzar en este proyecto es realizar la gestión de diferentes


señales de entrada y salida discretas. En el caso concreto del presente trabajo,
las señales que se tratan corresponden a un sistema domótico en el que se podrá
controlar tanto el encendido y apagado de luces de diferentes estancias, como la
activación o desactivación de una alarma para la detección de posibles intrusos en
el hogar.

Para la manipulación de estas señales se ha decidido emplear la placa de


expansión PiFace Digital por los motivos mencionados anteriormente. Se trata de
una placa diseñada para conectarse de forma directa sobre el conector GPIO de
Raspberry Pi cuyas características son las siguientes:

2 relés de conmutación que se pueden emplear para conmutar tensiones de


hasta 20 V (máx.) y corrientes de hasta 5A (máx.).

4 interruptores táctiles.

8 entradas digitales.

8 salidas de colector abierto.

8 indicadores LED.

Raquel Sedó Sánchez Pág. 15


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.4: Placa de Expansión PiFace Digital

Como se puede observar en la figura 3.4, todos los conectores de entrada y


salida son terminales de tornillo, por lo que el conexionado con dispositivos externos,
como el caso de lámparas, sensores o bocinas se realiza fácilmente; por esto, la
placa seleccionada ofrece una forma sencilla de realizar el montaje físico del sistema.
Además, gracias a su librería Python integrada, el acceso a los diferentes pines de
entrada y salida a través de software es realmente simple, permitiendo entre otras
cosas abstraer conceptos como la numeración de los pines GPIO de Raspberry Pi
en lugar de su denominación técnica. Esto se verá con mayor profundidad en el
apartado de desarrollo del software de control.

Por otro lado, cabe mencionar que el uso de la placa de expansión PiFace ha
sido útil durante el proceso de desarrollo, gracias a sus interruptores integrados
que permiten simular eventos tales como la presencia de un intruso, el encendido
y apagado de las luces, etc. . . En una hipotética versión comercial de este sistema
se podría obviar perfectamente su inclusión, reduciendo el coste del dispositivo en
aproximadamente 30e [15].

Raquel Sedó Sánchez Pág. 16


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

3.4.3. Conexionado del sistema

Para poder desarrollar el sistema domótico planteado, se han requerido


determinados dispositivos electrónicos (LEDs, resistencias, sensor PIR. . . ) además
de la Raspberry Pi y la placa de expansión. Se dedica este apartado a mostrar el
conexionado que se ha empleado para el desarrollo de un prototipo mínimo funcional.

Antes de comenzar a describir las conexiones, se considera apropiado establecer


un listado de los elementos empleados para el montaje físico del sistema con un coste
total aproximado al público de unos 85e. Obviamente, en caso de una producción
en masa del sistema, estos costes bajarían radicalmente.

Raspberry Pi Modelo B (512 MB de RAM, HDMI, 2 x USB 2.0, 3,5W).

Placa de Expansión PiFace Digital.

Adaptador de red inalámbrico USB.

Fuente de Alimentación Micro USB, 5V, 1A.

Tarjeta de memoria de 8GB.

Placa de pruebas (Protoboard).

Un sensor Infrarrojo Pasivo (PIR) para la detección de movimiento [16].

Componentes electrónicos (resistencias de 120Ω, LEDs para la simulación de


dispositivos domésticos y de bocina de alarma, cables. . . ).

Como complemento a los dispositivos mencionados, se han precisado el empleo de


un monitor con entrada HDMI, un teclado y un ratón para la instalación inicial de
la distribución Raspbian y de la configuración de SSH. Una vez se habilita SSH en la
Raspberry Pi ya podemos conectar a ella de forma remota, sin necesidad de seguir
usando teclado, ratón y monitor.

Antes de comenzar con la exposición del conexionado, en la siguiente imagen se


observa el resultado final obtenido:

Raquel Sedó Sánchez Pág. 17


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.5: Conexionado general para el desarrollo del sistema domótico

Se observa que las salidas de 1 a 7 (cables naranjas) que ofrece la placa de


expansión se conecta con un LED a través de una resistencia, reservando la salida 0
(cable negro) para el encendido o apagado del LED rojo que indicaría el estado de
la bocina.

Figura 3.6: Conexión de las distintas salidas del sitema

Raquel Sedó Sánchez Pág. 18


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Se conectan además los pines de VCC, GND y OUT del sensor PIR según se
muestra a continuación. Por otro lado, este sensor permite ajustar el tiempo de
respuesta y la distancia de alcanza a través de dos potenciómetros.

Figura 3.7: Sensor PIR para la detección de movimiento

Para evitar que dispositivos como el adaptador inalámbrico, el teclado o el ratón


afecten a la intensidad que Raspberry Pi requiere para su consumo y que como
máximo será 1A, por la fuente de alimentación empleada, se utiliza un multiplicador
USB con alimentación propia, no modificando así el rendimiento de Raspberry Pi.

Figura 3.8: Multiplicador USB

Raquel Sedó Sánchez Pág. 19


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

3.5. Raspberry Pi como sistema domótico

Para que el usuario pueda acceder y manejar a través de un navegador web la


interfaz del sistema domótico, se ha implementado, en primer lugar, un servidor web
en Raspberry Pi. Un servidor web, desde el punto de vista software, es un programa
que lleva a cabo determinadas tareas cuando el usuario realiza determinadas
peticiones a través de su navegador web.

Figura 3.9: Esquema Servidor web - Cliente

En el caso particular de la aplicación objeto de este proyecto, cuando el


propietario de la vivienda desea acceder a la interfaz web a través de su navegador,
está realizando esta petición de información al servidor web alojado en Raspberry
Pi; dicho servidor, le ofrece como respuesta el código HTML que será interpretado
por el navegador del usuario, mostrando así la interfaz web generada.

Raquel Sedó Sánchez Pág. 20


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Esto es lo que se conoce comúnmente como un entorno LAMP [18], que emplea
las siguientes tecnologías en conjunto, todas ellas de software libre:

Linux. En el caso concreto de este proyecto, intentado optimizar el uso de


Raspberry Pi, se ha elegido una distribución de Linux, Raspbian, diseñada
concretamente para este dispositivo, ofreciendo un alto rendimiento con un
bajo consumo de recursos.

Apache. Se trata de un servidor web bajo protocolo HTTP, multiplataforma,


que da soporte al 60,4 % de los servidores mundiales [19].

MySQL. MySQL es un sistema de gestión de bases de datos relacional,


multihilo y multiusuario con más de seis millones de instalaciones, de sobrada
eficiencia y probada fiabilidad.

PHP. Es un lenguaje de programación del lado del servidor de uso general,


potente y altamente extensible a través de módulos.

El empleo concreto de MySQL y PHP se describirán con mayor detalle en la


sección 3.6: Diseño de la Interfaz Web.

Para el montaje del entorno LAMP se necesitan configurar diferentes aspectos


de Raspberry Pi, así como la instalación a través de la consola de comandos de
determinados programas [20]:

Habilitar SSH (Secure SHell, Intérprete de Órdenes Seguras) para poder


acceder remotamente a los comandos de consola de Raspberry Pi, sin necesidad
de un entorno gráfico ni un monitor conectado a la misma.

Instalar Apache en la Raspberry Pi.

Instalar PHP, lo que permite generar el contenido dinámico de la interfaz web.

Instalación de MySQL y PHPMyAdmin. PHPMyAdmin es una interfaz gráfica


programada en PHP para la gestión de las bases de datos MySQL. Su
instalación permitirá la creación y gestión de la base de datos de forma sencilla
durante la etapa de desarrollo.

Raquel Sedó Sánchez Pág. 21


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Además, para facilitar el acceso a la interfaz de nuestro sistema de forma remota,


y teniendo en cuenta que las conexiones domésticas suelen disponer tan solo de una
IP dinámica, se ha procedido a la creación de un virtual host dinámico gratuito;
un redireccionador de texto más sencillo de recordar que la IP pública de nuestra
conexión: domopi.ole32.com:88

Se concluye que, empleando Raspberry Pi como entorno LAMP, se obtiene


una alternativa a la necesidad de requerir de un servidor externo donde alojar
la información de los dispositvos de la vivienda. Se evitan, de este modo, cuotas
mensuales propias del hospedaje, y se consigue un servidor económico fácil de
mantener.

3.5.1. Software para la gestión de señales E/S

Para administrar la información de la vivienda además de implantar el diseño


del conexionado planteado en la sección 3.4 Diseño Hardware, se ha desarrollado
un programa cuya función es gestionar dicha información, permitiendo realizar en
segundo plano (daemon) las tareas programadas por el usuario a través de la interfaz
web.

Para el desarrollo de este programa, se plantea el emplear un lenguaje de


programación de alto nivel, como podría ser C/C++ [25] o Python [26], ambos
son lenguajes soportados por Raspberry Pi. En cuanto a velocidad de procesado
de código, lo idóneo sería emplear C ó C++, ya que Python al ser un lenguaje
interpretado, requiere un mayor tiempo de proceso, pero dado que esta diferencia
de tiempo no es apreciable para la aplicación a desarrollar, el emplear Python no
supone problema alguno.

Dejando a un lado esta anotación, Python ofrece una sintaxis sencilla


buscando un código intuitivo y legible. Se trata de un lenguaje multiplataforma
y multiparadigma, que soporta la programación orientada a objetos, lo cual es
realmente útil para elaborar la aplicación objeto de este proyecto. Por otro lado,
Python es extensible por medio de distintas librerías de gran utilidad, una de ellas
para el manejo de las distintas señales de entrada y salida de la placa de expansión
a emplear.

Raquel Sedó Sánchez Pág. 22


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Por las razones mencionadas, se empleará Python como el lenguaje de


programación para el desarrollo del programa encargado de la gestión de las señales
correspondientes a los distintos dispositivos del sistema domótico a proyectar.

A continuación se muestra el diagrama de flujo que sigue el programa


desarollado:

Figura 3.10: Diagrama de flujo del daemon

El programa diseñado se ejecuta de forma continua en Raspberry Pi, una vez


ésta se enciende por primera vez. Al comienzo del mismo, se toma la información
de la base de datos, respectiva al estado de la vivienda en ese momento. Tras esto,
se procede a evaluar la misma, diferenciando dos situaciones: el usuario ha decidido
activar la alarma o ésta se encuentra inactiva.

En caso de encontrarse activada la alarma, se consulta el estado del sensor de


presencia, pues el usuario desea conocer si se ha producido algún tipo de actividad
anómala en su hogar recientemente. Si se detecta un nivel alto a través de la entrada
dedicada a ello, significa que puede haber un intruso en la vivienda. Por tanto, se
procede a activar la bocina de alarma a través de la salida digital correspondiente,
además de enviar una notificación al propietario a través de un correo electrónico

Raquel Sedó Sánchez Pág. 23


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

avisando del estado en el que se encuentra su vivienda.

Cabe añadir, que el envío de estos correos se lleva a cabo siempre y cuando hayan
pasado al menos cinco minutos desde la última notificación por correo, intentando
evitar así, el inundar la bandeja de entrada de correos del propietario. Además, el
apagado de la bocina lo realiza manualmente el usuario a través de la interfaz web.

Cabe destacar que, de disponer de una cámara capaz de capturar imagen,


podríamos incluso adjuntar a dichos correos de aviso, una fotografía del área donde
se ha detectado al intruso, para facilitar su hipotética identificación posterior.

Por otro lado, independientemente del estado de la alarma, en cada iteración


se leen de la base de datos el estado actual de las luces de las distintas estancias y
se modifican las salidas correspondientes para que posean el valor de encendido o
apagado, según se requiera.

3.5.2. Base de Datos

Para el desarrollo de la aplicación objeto de este proyecto, se ha seleccionado


MySQL como servidor de bases de datos. Se ha empleado además PHPMyAdmin
para la creación y modificación de las tablas requeridas.

Dado que la información a manejar es relativamente reducida, se han necesitado


únicamente dos tablas : estancias y semaforos. A continuación se mostrarán los
distintos campos creados en cada una de ellas, así como el tipo de dato junto a una
breve descripción.

Estancias

En esta tabla se almacena toda la información relativa al encendido y apagado


de los dispositivos de la vivienda (aire acondicionado, iluminación, cafetera. . . ).
Esta información se modifica a través de la interfaz web según las necesidades del
usuario, para posteriormente ser consultada por el programa residente(daemon) que,
en la Raspberry Pi, monitoriza estas señales y realiza la modificación física de los
dispositivos.

Raquel Sedó Sánchez Pág. 24


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Campo Tipo Descripción


int(11) Identificador único asignado a
Id
autoincremental cada fila de la tabla
Nombre de la estancia
Nombre varchar(50)
correspondiente
Valor 0 ó 1, en caso de estar
apagado o encendido el
Estado tynint(1)
dispositivo de la estancia
asociada.

Tabla 3.1: Tabla Estancias

En el desarrollo de este proyecto, el número de estancias posibles a controlar


queda limitado por el número de salidas que ofrece la placa de expansión empleada,
PiFace Digital, que son ocho. Se ha dedicado una de estas salidas para uso exclusivo
de la bocina de alarma (salida 0), y las siete restantes quedan asignadas a las distintas
estancias (salidas 1 a 7).

Semáforos

Campo Tipo Descripción


Nombre del semáforo
Nombre varchar(50)
correspondiente
Valor asignado al semáforo
Valor varchar(255)
correspondiente

Tabla 3.2: Tabla Semáforos

En esta tabla se almacena distinta información para el funcionamiento del


sistema, desde los parámetros de configuración para el envío de notificaciones a
través de un servidor de correo SMTP [24] hasta el estado en el que se encuentra la
bocina. A continuación se muestra un ejemplo de las filas que componen esta tabla:

Se observa, que esta contiene en su mayoría información sobre la configuración


para el aviso de notificaciones vía email. Estos datos de configuración, además de
consultarse y gestionarse desde el programa .py del sistema domótico, se pueden
modificar a través de la interfaz web.

Los datos bocina, alarma e email indican el estado en que se encuentran los

Raquel Sedó Sánchez Pág. 25


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.11: Contenido de la tabla semaforos

mismos (activada/desactivada). Por otro lado, se almacena información de la fecha


y hora de envío del último email para no enviar más de un correo cada 5 minutos,
evitando la saturación de la bandeja de entrada del propietario ya mencionada.

3.6. Diseño de la Interfaz Web

3.6.1. Descripción General

Para posibilitar la interacción del usuario con el sistema domótico instalado en su


hogar se ha diseñado e implementado una interfaz de usuario web capaz de mostrar
el estado del sistema y modificar el mismo en tiempo real. Se trata de una interfaz
web con un diseño intuitivo, fácil de manejar y que cumple con las expectativas
de quien la consulta. El desarrollo de la misma se ha basado en cuatro postulados
generales para la usabilidad de aplicaciones web:

Definir de forma clara el propósito de la aplicación. En la propia aplicación


web se explica qué funcionalidades ofrece cada apartado y qué permite hacer
a quienes lo visitan.

Raquel Sedó Sánchez Pág. 26


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Ayudar a los usuarios a encontrar lo que necesitan. Se emplea un sistema de


navegación siempre visible y completo para acceder al contenido.

Comprensibilidad del contenido. El contenido se muestra de manera clara a


través de botones fácilmente identificables y con títulos en lenguaje llano.

Usar diseño visual para mejorar y no para definir la interacción del aplicación
web. Los elementos gráficos empleados están preparados para ayudar a
clarificar los objetivos de la aplicación y no como adornos para rellenar espacio.
Se propone un diseño intuitivo para simplificar la experiencia de uso.

También se prestará especial atención al diseño de la interfaz, con el fin de que


pueda ser utilizada desde distintos dispositivos, móviles y de escritorio.

3.6.2. Especificaciones de la Interfaz web

En este apartado se analizan y describen las funcionalidades implementadas en


la interfaz, según el estudio de las necesidades del propietario del sistema domótico.

A través de la interfaz propuesta se puede consultar y modificar el estado de


las estancias del hogar (encendido y apagado de luces) de forma sencilla, desde
el apartado correspondiente.

Se propone además que, en caso de reforma en la vivienda o variación en el


conexionado de los puertos de salida de la placa digital, exista la posibilidad
de modificar el nombre de las estancias.

También se permite controlar la activación y desactivación tanto de la alarma


para la detección de intrusos, como de la bocina de aviso. Esto último añade la
posibilidad de realizar un mantenimiento o comprobación (debug) de la bocina.

Por último, se propone un apartado para la configuración de la recepción de


notificaciones por correo electrónico, en el caso de detectarse un intruso en la
vivienda.

Raquel Sedó Sánchez Pág. 27


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

3.6.3. Diseño previo de la interfaz web de usuario

Para la construcción de la interfaz web encargada de la gestión del sistema


domótico, se ha realizado un modelo previo según las necesidades previstas y las
especificaciones mencionadas en el apartado anterior. Esto permite que, antes de
comenzar el diseño web con el software específico, se puedan realizar pruebas y
evaluar la funcionalidad del diseño, además de realizar cambios sobre el mismo de
forma más sencilla, ya que las modificaciones sobre el código tienden a ser más
complejas.

A continuación se muestran las maquetas (mockups) propuestas al comienzo de


este proyecto y sobre las que está basada la interfaz de usuario desarrollada.

Figura 3.12: Página de Inicio

En este mockup se ve el diseño de la página principal de la interfaz, en la que se


muestran y describen las diferentes funcionalidades que ésta ofrece, como el control
de los dispositivos de las distintas estancias, la configuración de notificaciones, etc.

Raquel Sedó Sánchez Pág. 28


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.13: Página para la monitorización de las estancias

Es esta figura se observa la sección que permite al usuario consultar y modificar


en tiempo real el estado de los diferentes dispositivos de su vivienda.

Figura 3.14: Apartado de configuración de las estancias

A través de esta pantalla de configuración se ofrece al usuario la posibilidad de

Raquel Sedó Sánchez Pág. 29


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

realizar la modificación de los nombres asignados a cada estancia.

Figura 3.15: Apartado de configuración de alarma y bocina

En este apartado, el usuario puede activar o desactivar tanto la alarma como la


bocina de aviso según lo requiera.

Figura 3.16: Apartado de configuración de las notificaciones

Raquel Sedó Sánchez Pág. 30


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Finalmente, se proporciona un formulario que permite activar o desactivar las


notificaciones por email, así como cambiar la configuración del servidor de correo
según sea necesario.

3.6.4. Diseño Responsive

El diseño web responsive o diseño web adaptativo es una técnica de diseño web
que prioriza la correcta visualización de una misma página en función de la resolución
de la pantalla del visitante. De este modo, se puede adaptar el contenido del diseño
original a diferentes dispositivos, ya sean ordenadores de escritorio, tablets o móviles,
sin necesidad de tener múltiples sitios web separados. Con ello, se consigue mejorar
la experiencia del usuario a través de una interfaz adaptable, además de facilitar en
gran medida el desarrollo del diseño de la interfaz web.

Por estas razones, se ha decidido aplicar el mencionado diseño responsive, ya que


en la actualidad los smartphones y tablets están cumpliendo muchas de las funciones
que ofrecen los ordenadores convencionales.

A continuación se muestra una figura en la que se puede apreciar de forma clara


el resultado de la aplicación de un diseño web responsive.

Figura 3.17: Muestra del diseño web responsive

Raquel Sedó Sánchez Pág. 31


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Para el caso concreto de la interfaz web desarrollada a lo largo de este proyecto,


el resultado obtenido aplicando esta técnica de diseño adaptable se puede apreciar
en las siguientes dos capturas de imagen desde diferentes dispositivos: un ordenador
portátil y un teléfono móvil. En ellas se muestra claramente el concepto de diseño
responsive comentado a lo largo de este apartado.

Figura 3.18: Interfaz desde un ordenador portátil

Figura 3.19: Interfaz desde un smartphone

Raquel Sedó Sánchez Pág. 32


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

En estas dos imágenes se observa que, tanto el texto de la cabecera como la


ubicación de los botones se ajusta según la resolución de la pantalla del dispositivo
que se está empleando. En el caso de uso teléfono móvil, se pueda apreciar la
recolocación de los elementos visuales para adaptarlos a un tamaño de pantalla
más reducido.

3.6.5. Software para la implementación de la interfaz

Para realizar la interfaz web de usuario se han utilizado varias tecnologías y


lenguajes, tanto para el aspecto visual de la web, como para el comportamiento y
la dinámica de la misma.

La apariencia visual de la interfaz se ha diseñado empleando en conjunto HTML5


y CSS3. El primero de estos determina la estructura del documento y el segundo el
aspecto visual.

Por otro lado, para la generación dinámica de la web se ha utilizado PHP5


en el lado del servidor y Javascript en el lado del cliente. El código PHP se
encarga de realizar las acciones de acceso, envío y recepción de información a la
base de datos. Además, a través del código JavaScript se consigue una interfaz
dinámica, que interactúa con la información presentada al realizar una petición,
por ejemplo seleccionando los botones de las diferentes estancias, se da una pista
visual de su encendido o apagado por medio del mencionado código Javascript. Esto
se complementa con la técnica de desarrollo web denominada AJAX (Asynchronous
Javascript and XML) [27], que posibilita realizar cambios a la página web en función
de los resultados de una petición web a PHP, sin necesidad de recargar toda el
documento web.

Más adelante se describirán posteriormente con mayor profundidad, los


frameworks (marcos de trabajo) que se han empleado para el desarrollo de la interfaz
de gestión.

Bootstrap: para el manejo tanto de CSS como de JavaScript.

JQuery: librería Javascript que, entre otras cosas, nos permite abstraer de
forma sencilla la técnica AJAX antes mencionada.

Raquel Sedó Sánchez Pág. 33


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

SlimPHP: un marco de trabajo PHP utilizado para facilitar el enrutado de las


distintas URLs de la aplicación a sus ficheros .php correspondientes.

PHP

PHP (acrónimo recursivo de PHP Hypertext Pre-processor) [28] es un lenguaje


de programación del lado del servidor de uso general, utilizado mayoritariamente
para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes
de programación del lado del servidor que se podía incorporar directamente en el
documento HTML en lugar de llamar a un archivo externo que procesase los datos.
El código PHP es interpretado por un servidor web con un módulo de procesador
de PHP que genera código HTML como resultado [29].

PHP es además un lenguaje de programación open source y permite la conexión


a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres,
Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.

SlimPHP [30] es un framework (colección de librerías y funciones predefinidas)


que facilita el desarrollo de aplicaciones web utilizando PHP.

SQL

El lenguaje de consulta estructurado o SQL (Structured Query Language) [31] es


un lenguaje declarativo de acceso a bases de datos relacionales que permite realizar
diversos tipos de operaciones en ellas. Una de sus características es el manejo del
álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar
de forma sencilla información de interés desde la bases de datos, así como realizar
cambios en ellas.

MySQL

MySQL [32] es un sistema de gestión de bases de datos relacional, multihilo y


multiusuario. Además, es capaz de manejar múltiples motores de almacenamiento
de datos, de forma que dependiendo de la estructura de los datos a alamacenar

Raquel Sedó Sánchez Pág. 34


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

(coordenadas, grandes textos, valores contables, etc) podremos utilizar un motor


de almacenamiento u otro (MyISAM, InnoDB, Archive, etc), resultando en un
rendimiento óptimo para las aplicaciones.

HTML

HTML (HyperText Markup Language es decir, lenguaje de marcas de hipertexto)


[33], hace referencia al lenguaje de marcado para la elaboración de la estructura
de páginas web. Este es un estándar que, en sus diferentes versiones, define una
estructura básica y un código (denominado código HTML) para la estructuración
de contenido de una página web, tales como texto, imágenes, etc. Es un estándar
a cargo de la W3C, organización dedicada a la estandarización de casi todas las
tecnologías ligadas a la web, y es el lenguaje con el que se definen casi el 100 % de
las páginas web.

CSS

Las hojas de Estilo en Cascada (Cascading Style Sheets) [35], son un mecanismo
simple que describe cómo se va a mostrar un documento en la pantalla, o cómo se
va a imprimir, o incluso cómo va a ser pronunciada la información presente en ese
documento a través de un dispositivo de lectura HTML para invidentes. Se utiliza
para dar estilo a documentos HTML y XML, separando de esta forma la capa de
contenido de la capa de presentación. Cualquier cambio en el estilo marcado para
un elemento en el CSS afectará a todas las páginas vinculadas a dicho CSS en las
que aparezca ese elemento.

CSS funciona conforme a reglas; las hojas de estilo están compuestas por una
o más de dichas reglas aplicadas a un documento HTML o XML. Cada regla tiene
dos partes: un selector y una declaración. A su vez, la declaración está compuesta
por una propiedad y el valor que se le asigne (tamaño, color, etc).

Como se ha mencionado anteriormente, en el desarrollo de la interfaz de usuario


se ha empleado un framework tanto de CSS como de JavaScript denominado
Bootstrap [36], en su versión 3. Una vez instalado este, se pueden emplear numerosas

Raquel Sedó Sánchez Pág. 35


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

clases ya predefinidas en el mismo de forma muy sencilla, tales como cajas, botones,
menús,. . . así como la nomenclatura necesaria para que nuestro diseño sea responsive.

JavaScript

JavaScript es un lenguaje de programación interpretado en el navegador. Se


utiliza principalmente del lado del cliente, implementado como parte del documento
HTML navegador web permitiendo mejoras en la interfaz de usuario y páginas web
dinámicas/animadas [37].

Todos los navegadores modernos interpretan código JavaScript [38],a través de


una implementación del Document Object Model (DOM).

Para facilitar el desarrollo de la aplicación se ha empleado una librería de


JavaScript denominada JQuery [39]. Ésta permite simplificar la interacción con los
documentos HTML, la manipulación del árbol DOM, manejar eventos, desarrollar
animaciones, así como, agregar interacción con la técnica AJAX antes descrita.

3.6.6. Herramientas empleadas para la edición

Para la creación de los scripts PHP y JavaScript, así como para el código HTML
y CSS, se ha empleado un editor de texto, de código libre, denominado NotePad++.

Para las distintas pruebas del correcto funcionamiento de la interfaz web de


usuario se ha hecho uso de distintos navegadores web tales como Mozilla Firefox,
Google Chrome, Opera e Internet Explorer. En el caso particular de Google Chrome,
se ha instalado una extensión llamada Window Resizer [40] ,que permite simular la
resolución de pantalla de distintos dipositivos, para poder comprobar de esta forma
la correcta adaptación a distintos tamaños de pantalla del diseño responsive.

Raquel Sedó Sánchez Pág. 36


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

3.6.7. Seguridad de la interfaz web

Para evitar la intrusión de terceros a la interfaz web del sistema de control


domótico, se utiliza una simple protección Auth Basic que solicita un nombre de
usuario y contraseña antes de permitir el acceso a la misma. Esta funcionalidad la
da integrada de serie el servidor Apache a través de uno de sus módulos, y se define
por dos ficheros: un .htaccess que indica la ruta al fichero de usuarios y contraseña,
y un .htpassword que contiene los pares de usuario y contraseña admitidos. Dichas
contraseñas se almacenan de forma encriptada en el fichero .htpassword.

Figura 3.20: Requisito de autenticación para el acceso a la aplicación

3.6.8. Estructura de la aplicación

El funcionamiento de la interfaz web desarrollada para la gestión del sistema


domótico de la vivienda comienza cuando el usuario desea que, a través de su
navegador web, se le muestre una página informativa del estado de la domótica
de su hogar. Este navegador realiza una petición HTTP al servidor web alojado

Raquel Sedó Sánchez Pág. 37


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

en la Raspberry Pi; a su vez, el servidor web procesa el fichero .php solicitado a


través del intérprete de PHP. Éste, por sus parte, consulta la información de estado
almacenada en la base de datos MySQL, generando el contenido de forma dinámica.
Finalmente, el código HTML generado por el intérprete PHP es enviado de vuelta
al servidor, el cual lo envía a su vez como respuesta a la petición solicitada por el
navegador.

Para mejorar la comprensión del funcionamiento de la interfaz web puede


consultarse el siguiente esquema:

Figura 3.21: Esquema general del funcionamiento de la interfaz web

Para desarrollar la interfaz web planteada en este proyecto en base al diseño


previo propuesto (ver apartado 3.6.3), se han empleado varios ficheros de diferentes
tecnologías: .php, .js y .css. A continuación se realiza una breve descripción de la
funcionalidad de cada uno de ellos.

Raquel Sedó Sánchez Pág. 38


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Archivo Descripción
Este fichero se encarga del enrutado de
index.php las peticiones web hacia su fichero .php
correspondiente.
Este archivo controla el código HTML de
header.php encabezado de todas las secciones, así como la
selección del menú activo en cada momento.
Una vez generado el contenido de cada sección
este fichero cierra las etiquetas que hayan podido
footer.php
quedar abiertas en el header.php, e inyecta los
ficheros .js para el funcionamiento de la aplicación.
Este es el fichero de la sección inicial de la
home.php web, donde se realiza la bienvenida e indican las
instrucciones de uso de la misma.
Desde esta sección se realiza la gestión de las
estancias.php
distintas estancias del sistema domótico.
Este fichero gestiona los tres apartados de
configuración disponibles: nombre de las estancias,
configuracion.php activación y desactivación de alarma y bocina
y configuración de las notificaciones por correo
electrónico.
Este archivo se encarga de las actualizaciones
parciales del contenido dinámico de la interfaz,
modificando colores, iconos, botones, etc,
ajax.php
dependiendo de los nuevos valores de la tabla de
datos que modifica el usuario en su interacción
con las distintas partes de la aplicación.
En él se definen elementos de diseño CSS que se
custom.css
necesitan y que no ofrece el framework Bootstrap.
En este fichero se definen las diferentes funciones
Javascript que controlan la interactividad del
custom.js
usuario con la aplicación; en particular, desde aquí
se realizan las peticiones AJAX al fichero ajax.php

Tabla 3.3: Descripción de los archivos de la aplicación

3.6.9. Resultados del diseño de la interfaz web de usuario

En este último apartado se muestra el resultado obtenido tras desarrollar la


interfaz web de usuario empleando las técnicas de diseño y diferentes tecnologías
descritas a lo largo de este capítulo. Como se puede observar, se ha conseguido una
interfaz intuitiva y accesible desde cualquier dispositivo, capaz de mostrar contenido

Raquel Sedó Sánchez Pág. 39


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

a tiempo real del sistema domótico de la vivienda; todo ello, empleando únicamente
herramientas de código libre.

Para tener acceso a la aplicación, el cliente insertará en la barra de direcciones


de su navegador la IP de la Raspberry Pi (o en nuestro caso, el redireccionador
domopi.ole32.com:88, más sencillo de recordar), en ese momento se solicitará
un nombre de usuario y contraseña, introduciéndose los que se han predefinido:
admin/admin.

Figura 3.22: Acceso a la interfaz web desde un ordenador portátil

Figura 3.23: Acceso a la interfaz web desde un teléfono móvil

Raquel Sedó Sánchez Pág. 40


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Se ha seleccionado el puerto 88 ya que la interfaz web del router disponible


para el desarrollo de este proyecto ya emplea el usual puerto 80. Por tanto, para
no interferir en dicho puerto estándar, se ha elegido uno de mucho menos uso (los
habituales son 80 y 8080, y por ello se ha preferido no utilizarlos, por compatibilidad
con posibles sistemas ya existentes).

Una vez el usuario introduce de forma correcta estos datos, accede a la página
principal de la aplicación, pudiendo iniciar ya la gestión domótica de su hogar.

En esta página encontrará información general acerca de qué posibilidades le


ofrece la aplicación: tanto la manipulación del estado de las estancias, como la
configuración del sistema. Además, podrá acceder a otras secciones de la aplicación
a través del menú de la parte superior. Para guiar al usuario inexperto en el uso de la
aplicación, se coloca un botón call to action con la palabra Empezar de gran tamaño
y centrado en la pantalla, que le llevará de forma directa al menú Estancias. Cabe
mencionar por otra parte, que en todas las secciones de la interfaz se muestra un pie
de página con los datos de contacto (nombre y correo electrónico) que permiten al
usuario solicitar ayuda ante cualquier anomalía en el funcionamiento de la aplicación.

Figura 3.24: Página de inicio de la interfaz desde un ordenador portátil

Raquel Sedó Sánchez Pág. 41


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.25: Página de inicio de la interfaz desde un teléfono móvil

En la sección Estancias, el cliente puede, además de consultar el estado del


sistema instalado en su vivienda, modificar el mismo con solo marcar o desmarcar
los botones asignados a tal efecto. Cabe mencionar que, gracias al empleo de la
tecnología AJAX, no es necesario recargar la URL cada vez que se modifique un
estado, lo cual mejora de forma notable la experiencia de usuario.

Raquel Sedó Sánchez Pág. 42


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.26: Consulta y modificación del estado de las estancias desde un ordenador
portátil

Figura 3.27: Consulta y modificación del estado de las estancias desde un teléfono
móvil

Como se puede observar, siempre buscando la mayor comodidad para el usuario,


se han implementado dos botones para facilitar el encendido o apagada de todos los
dispositivos conectados en un solo clic.

Raquel Sedó Sánchez Pág. 43


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.28: Apagado de todas las estancias desde un ordenador portátil

Figura 3.29: Apagado de todas las estancias desde un teléfono móvil

El apartado de configuración por su parte, contiene un submenú con diferentes


opciones que agrupan las distintas posibilidades de configuración de nuestro sistema
domótico. El primero de estos submenús, ofrece la posibilidad de activar o desactivar
la alarma de la vivienda, así como la bocina; siempre y cuando el usuario haya

Raquel Sedó Sánchez Pág. 44


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

activado previamente la alarma, y se haya detectado un intruso a través del sensor


de presencia, la bocina comenzará a sonar hasta que el propietario la desactive a
través esta sección.

Figura 3.30: Configuración de la alarma y la bocina de aviso desde un ordenador


portátil

Figura 3.31: Configuración de la alarma y la bocina de aviso desde un teléfono móvil

En este otro submenú el usuario puede cambiar el nombre de las distintas

Raquel Sedó Sánchez Pág. 45


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

estancias(o dispositivos) controlados a través del sistema domótico proyectado. Este


tipo de ajustes puede ser de gran utilidad en caso de realizar modificaciones en la
estructurales en la vivienda, o de añadir nuevos dispositivos a la misma.

Figura 3.32: Configuración de las estancias desde un ordenador portátil

Figura 3.33: Configuración de las estancias desde un teléfono móvil

En la imagen siguiente se muestra un ejemplo de esta modificación:

Raquel Sedó Sánchez Pág. 46


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.34: Modificación del nombre de las estancias desde un ordenador portátil

Figura 3.35: Modificación del nombre de las estancias desde un teléfono móvil

En este último submenú el cliente podrá activar o desactivar el envío de avisos


a su correo personal, modificar el email de recepción de éstos y su asunto, así como
configurar diferentes aspectos del servidor de correo necesario para el envío.

Raquel Sedó Sánchez Pág. 47


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.36: Configuración de las notificaciones desde un ordenador portátil

Figura 3.37: Configuración de las notificaciones desde un teléfono móvil

En caso de detectarse un intruso en la vivienda estando activada la alarma,


además de sonar la bocina, se enviará un correo electrónico de aviso al usuario y se
mostrará en la interfaz un panel de notificación con la fecha y hora del evento.

Raquel Sedó Sánchez Pág. 48


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.38: Aviso de detección de intruso desde un ordenador portátil

Figura 3.39: Aviso de detección de intruso desde un teléfono móvil

Por último, se muestra, a modo de ejemplo, una captura del mensaje que el
propietario de la vivienda recibe en su correo electrónico en caso de producirse una
detección de intrusos.

Raquel Sedó Sánchez Pág. 49


Diseño de un sistema domótico de bajo Capítulo 3.
coste basado en Raspberry Pi Desarrollo de la solución propuesta

Figura 3.40: Notificación del sistema de alarma recibida en el correo electrónico

Raquel Sedó Sánchez Pág. 50


Capítulo 4

Conclusiones y líneas futuras de


trabajo

El sistema domótico desarrollado a lo largo de este proyecto ha logrado


alcanzar de forma satisfactoria todos los objetivos iniciales planteados. Se buscaba
principalmente solventar la problemática económica que suponen las instalaciones
domóticas, para poder ofrecer así un sistema funcional a un mayor sector de usuarios.
Además, se ha insistido en realizar el desarrollo de un software eficaz que, en
caso de requerirse modificaciones sobre el hardware, continúa ofreciendo las mismas
funcionalidades, pues únicamente depende de la información almacenada en la base
de datos MySQL.

A través de este trabajo se han estudiado las diferentes posibilidades de conexión


de Raspberry Pi con dispositivos externos para así poder manipular las distintas
señales de entrada/salida discretas que se precisan para la gestión doméstica de
la vivienda. Para su manipulación, se ha diseñado e implementado un programa
en Python encargado de gestionar esta información, a partir de la interacción del
usuario a través del servicio web instalado en Raspberry Pi.

4.1. Conclusiones personales

La consecución de los objetivos planteados al inicio se ha logrado llevar a cabo de


forma completa, dando como resultado un sistema domótico de bajo coste, funcional
y con grandes posibilidades de ampliación.

Además, considero un acierto la elección Raspberry Pi como dispositivo base

Raquel Sedó Sánchez Pág. 51


Diseño de un sistema domótico de bajo Capítulo 4.
coste basado en Raspberry Pi Conclusiones y líneas futuras de trabajo

para el desarrollo de este proyecto. De hecho, me ha sorprendido notablemente la


cantidad de aplicaciones que existen en la actualidad basadas en Raspberry Pi;
muchas de ellas, de gran utilidad práctica y baja complejidad.

Desde un punto de vista más personal, considero que este Trabajo Fin de
Grado me ha aportado, además de nuevos conocimientos sobre tecnologías antes
desconocidas para mí, una grata experiencia personal y profesional en el ámbito
de las ciencias de la computación, la electrónica y la automática. Por ello, creo
apropiado comentar que, pese a haber encontrado al comienzo ciertas dificultades
como principiante en el empleo de lenguajes tales como Pyhton, PHP, HTML,
etc, el enfrentarme a una situación de este tipo ha fomentado en mí la capacidad
de aprendizaje de estas nuevas tecnologías, así como el conocimiento de nuevas
herramientas realmente útiles para su desarrollo.

4.2. Líneas futuras de trabajo

Pese a haber logrado alcanzar los objetivos propuestos para el desarrollo de un


sistema domótico de bajo coste, como cualquier proyecto que se plantee, éste siempre
estará abierto a futuras mejoras y ampliaciones.

Como se ha comentado a lo largo de esta memoria, el diseño del software para


la gestión domótica se ha realizado de forma flexible con vistas a posibilitar una
ampliación en el número de estancias o dispositivos a controlar, ya que en este
proyecto, dicho número queda limitado por las características físicas de la placa de
expansión Pîface Digital empleada. Por tanto, si se deseara utilizar una placa con
mayor número de entradas y salidas, tanto el programa para la manipulación de las
señales (daemon) como la interfaz web continuarían funcionando sin problema, y
bastaría con añadir en la tabla Estancias de la base de datos MySQL tantas filas
como nuevos dispositivos existan.

Además, sería muy sencillo extender las funcionalidades del software para
controlar la temperatura, el nivel de humedad del hogar o detectar humos a través
del uso de diferentes sensores; o también se podría controlar el funcionamiento de
otro tipo de dispositivos domésticos, como por ejemplo la subida o bajada de las
persianas de la vivienda mediante un motor.

Raquel Sedó Sánchez Pág. 52


Diseño de un sistema domótico de bajo Capítulo 4.
coste basado en Raspberry Pi Conclusiones y líneas futuras de trabajo

Se podría instalar también una cámara en alguna estancia del domicilio que
se desee vigilar para, además de ofrecer al usuario la posibilidad de monitorizar el
estado de su vivienda, poder tomar una fotografía en caso de detección de intrusos
facilitando su identificación posterior.

Por último cabe indicar que el uso de dispositivos inalámbricos, aunque


aumentaría ligaremente el coste del sistema, permitiría una mayor flexibilidad, así
como una instalación mucho más rápida y sencilla.

Raquel Sedó Sánchez Pág. 53


Bibliografía y Referencias

[1] interempresas.com. Domótica: un paso más en la construcción de viviendas.

[2] domodanca.com. Ejemplo de instalación domótica.

[3] Diario Sur. La domótica ya no es cosa sólo de ricos.

[4] goteo.org. Sistema de control domótico con Arduino.

[5] es.wikipedia.org, Definición de protocolo de comunicación.

[6] en.wikipedia.org, Protocolo de comunicación X10.

[7] en.wikipedia.org, Protocolo de comunicación LNX.

[8] en.wikipedia.org, Protocolo de comunicación ZigBee.

[9] domintell.es, Presupuesto para una instalación domótica.

[10] goteo.org. Sistema de control domótico con Arduino.

[11] arduino.cc. Documentación sobre Arduino.

[12] retve.es. Sistema domótico basado en un Pentium III.

[13] raspberrypi.org, Documentación sobre Raspberry Pi.

[14] farnell.com, Precio de Raspberry Pi.

[15] kubii.es, Precio de la placa de expansión Piface Digital.

54
[16] adafruit.com, Sensor PIR.

[17] chiark.greenend.org.uk, Putty, para el acceso remoto a la Raspberry Pi

[18] archlinux.org Entorno LAMP.

[19] w3techs.com Información sobre el empleao de servidores Apache a nivel


mundial.

[20] coyan.es Instalación del servidor LAMP en Raspberry Pi.

[21] Acceso SSH.

[22] dnsdynamic.org Servidor DNS.

[23] htpasswdgenerator.net Configuración htpassword.

[24] en.wikipedia.org Servidor de correo SMTP.

[25] Vicente Benjumea García y Manuel Roldán Castro, Fundamentos de


Programación con el Lenguaje de Programación C++ (Licencia CC).

[26] Raúl González Duque, Python para todos (Licencia CC).

[27] Javier Eguiluz Introducción a AJAX (Licencia CC).

[28] es.wikipedia.org/, Definición de PHP.

[29] Georg Richter, Damien Seguy y otros. Manual de PHP (Licencia CC).

[30] slimframework.com Documentación sobre Slim Framework.

[31] w3schools.com Documentación sobre SQL.

[32] Oracle Manual de MySQL (traducción).

[33] es.wikipedia.org Definición del lenguaje HTML.

[34] Javier Eguiluz Introducción a XHTML (Licencia CC).


[35] es.wikipedia.org Documentación sobre CSS.

[36] getbootstrap.com Framework Bootstrap.

[37] es.wikipedia.org Definición de JavaScript.

[38] Javier Eguiluz Introducción a JavaScript (Licencia CC).

[39] /jquery.com Librería JQuery.

[40] chrome.google.com Extensión Window Resizer para Google Chrome


Anexo: Código Fuente

Todo el código fuente desarrollado en este proyecto se encuentra disponible


online en un repositorio GIT alojado en Bitbucket.org; se pone este repositorio a
disposición de los evaluadores para su consulta o sugerencias. Además, se puede
encontrar dicho código en el CD adjunto a este Trabajo Fin de Grado.

57

View publication stats

También podría gustarte