Este documento presenta un proyecto de desarrollo de una aplicación web para control domótico. La aplicación permite el control y monitoreo remoto de dispositivos domóticos que se comunican a través del protocolo Modbus/TCP. El proyecto tuvo como objetivos desarrollar una interfaz gráfica sencilla y adaptable que permita la automatización, programación y visualización de datos. La aplicación fue implementada usando PHP, JavaScript y el framework CodeIgniter, y permite el control de iluminación, calefacción y otros dispositivos de manera
2. Contenido
1. Introducción
2. Domótica y Modbus
3. Objetivos
4. Producto software
5. Herramientas utilizadas
6. Aspectos relevantes del desarrollo
7. Demostración
8. Conclusiones y líneas futuras
9. Preguntas
2
3. 1. Introducción
• Aplicación web para control domótico ¿Qué
es?
• ¿Cómo surge la idea?
• Empresa: freeDôm Ingeniería Domótica y
Telecomunicaciones, empresa especializada
en proyectos de automatización y control de
instalaciones en viviendas y edificios.
3
4. 2. Domótica (I)
• Proviene de la unión de domus: casa (latín) y
automática: que funciona por sí sola (griego).
• Automatización de la vivienda, mediante
control centralizado y/o remoto de
dispositivos.
Ahorro energético
Incremento de la
comodidad
Protección patrimonial
Comunicaciones
4
5. 2. Domótica (II)
Dispositivos
Controladores PLC
Actuadores (750-849)
Sensores
Interconexión entre ellos BUS DOMÓTICO
Arquitectura
Centralizada
Descentralizada
Distribuida
5
6. 2. Modbus (I)
• Protocolo de comunicaciones (nivel 7 - Modelo
OSI) basado en arquitectura maestro/esclavo.
• Características:
– Estándar de facto en la industria.
– Es público.
– Su implementación no presenta grandes
complicaciones.
– Maneja bloques de datos sin suponer restricciones.
6
7. 2. Modbus (III)
Modbus/TCP
• Variante RTU que funciona en Ethernet
• Permite comunicación orientada a conexión
entre dispositivos compatibles
• Independiente del medio de transmisión de
datos
7
9. 3. Objetivos de software
Telecontrol y telemetría
Seguridad
Automatización de tareas
Gestión energética
Futura reutilización y
evolución del sistema
9
10. 3. Objetivos personales
• Abordar un proyecto de amplias
características.
• Unir dos interesantes materias:
domótica e informática.
• Aprender el protocolo Modbus.
• Mantener contacto con el mundo laboral.
• Estudiar diferentes lenguajes de
programación, frameworks, técnicas y herramientas.
• Investigar y estudiar nuevos conceptos: Single Page
Application, Responsive Web Design y AJAX.
10
14. 4. Producto software (IV)
• Óptima estandarización en la visualización y ejecución
en el cliente.
Navegadores
9+
Dispositivos (Responsive
Web Design)
14
15. 4. Producto software (V)
• Control de la iluminación, calefacción, persianas y puerta
del garaje.
• El contenido de la aplicación se gestiona en el navegador
de forma dinámica, sin tener que recargar la página (SPA).
• Gráficas a partir de históricos de mediciones de
temperatura y consumo.
• Sistema de envío de correos.
• Sistema de autenticación de usuarios fiable y seguro.
• Programaciones de control de la automatización.
• Apartado de ayuda.
• Panel de control para integrar una alarma.
15
16. 4. Producto software (VI)
• Visualización de la maqueta a través de una cámara IP
instalada en la oficina (VIVOTEK FD7131).
• Pasarela para integrar otros protocolos de forma sencilla.
• Optimización: caché y compresión de archivos js y css.
• Versión demostración.
• Control de peticiones AJAX si el usuario cambia de
pestaña o ventana de la aplicación.
• Configuración sencilla para adaptar a otras instalaciones.
• Permite comunicarse con varios esclavos (configurando
un archivo XML).
16
17. 4. Producto software (VII)
• Orientada a la reutilización y futura evolución.
• Adaptable para cada tipo de usuario. Es sencillo
construir una versión personalizada para cada supuesto
cliente o cometido.
• Formulario para enviar un correo electrónico al autor.
17
21. 6. Desarrollo (III)
• Patrones de diseño:
– Abstract Factory con Factory Method : integrar de manera
eficiente otros drivers de diferentes protocolos o otros
mecanismos de comunicación.
– Modelo-Vista-Controlador: parte de la aplicación que se ejecuta
en el servidor (PHP).
– Active Record proporcionado por el framework Codeigniter para
realizar consultas a la base de datos.
21
22. 6. Desarrollo (IV)
• Javascript no provee sistema de hilos ni procesos.
Simulación de hilos para mantener el control en tiempo
real mediante AJAX. setInterval()
• Las programaciones se han realizado basadas en
cronjobs, propios de sistemas Unix.
• Arduo trabajo de diseño web.
• Proceso Unificado
• Hitos
22
24. 7. Conclusiones: Resultado
Los objetivos técnicos marcados en el inicio se han
alcanzado:
• Controlar la automatización en tiempo real.
• Posibilidad de realizar programaciones.
• Generar gráficas a partir de mediciones.
• Adaptar un driver que utilice el protocolo Modbus.
• Desarrollar un sistema de autenticación en la app.
• Permitir el envío de emails.
• Construir una interfaz vistosa, moderna y adaptable
Los requisitos han sido suplidos:
• Escalabilidad, modularidad y adaptabilidad
orientados a la reutilización.
• Rapidez, sencillez y usabilidad de la interfaz.
24
25. 7. Líneas futuras
• Backend con interfaz de
usuario para el administrador.
• Añadir otros drivers.
• Envío de emails al usuario para
registrar acciones.
• Principio de CMS (Content Management System).
Construir versiones de la app adaptadas a cada tipo
de instalación domótica.
• Grabar vídeos de la cámara instalada en la vivienda.
25
26. 7. Líneas futuras
• Configuración de la apariencia de la interfaz.
• Mecanismo de comunicación distinto a AJAX.
websockets de HTML5.
• Reutilización del código de Single Page Application para
futuros proyectos web.
• Adaptación a una app metro de Windows 8
26
27. ¡MUCHAS GRACIAS!
Víctor Enrique Elena Redondo
12 de marzo de 2013