UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA TRABAJO DE GRADUACIÓN PARA OPTAR AL GRADO DE INGENIERO EN CIENCIAS DE LA COMPUTACIÓN DESARROLLO DE UNA PLATAFORMA DE GESTIÓN CENTRALIZADA PARA EL CONTROL DE DISPOSITIVOS DOMOTICOS X10 DENTRO DE UN ENTORNO WEB PRESENTADO POR: CARLOS ENRIQUE LUNA CUEVA XAVIER DE JESUS SALVADOR GONZALEZ ASESOR: ING. JAIME ANTONIO ANAYA HERNÁNDEZ ENERO 2009 EL SALVADOR, CENTROAMÉRICA UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA RECTOR ING. FEDERICO MIGUEL HUGUET SECRETARIO GENERAL ING. YESENIA XIOMARA MARTINEZ DECANO FACULTAD DE INGENIERIA ING. ERNESTO GODOFREDO GIRON ENERO 2009 EL SALVADOR, CENTROAMÉRICA UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA TRABAJO DE GRADUACIÓN PARA OPTAR AL TITULO DE INGENIERO EN CIENCIAS DE LA COMPUTACIÓN DESARROLLO DE UNA PLATAFORMA DE GESTIÓN CENTRALIZADA PARA EL CONTROL DE DISPOSITIVOS DOMOTICOS X10 DENTRO DE UN ENTORNO WEB ING. JAIME ANTONIO ANAYA HERNANDEZ ING. RAUL MARTINEZ RIVAS ASESOR LECTOR ENERO 2009 EL SALVADOR, CENTROAMÉRICA AGRADECIMIENTOS Me gustaría antes que nada agradecer a Dios Todopoderoso por haberme dado la fortaleza de seguir y recordarme que cuando una puerta se cierra, una ventana se abre. Agradecer especialmente a mi padre Carlos Luna Mejía y a mi madre Candelaria del Carmen Cueva, por haberme apoyado, en el camino y darme la libertar de decidir y hacer de mi carrera lo que yo dispusiera, su confianza fue un regalo muy valioso en este proceso. A mis abuelos, que siempre me dieron su cariño incondicional y a mis tíos y tías, que ya sea por ayuda monetaria o moral siempre estuvieron apoyándome hasta el final. Me gustaría mencionar también a mi hermano Daniel Luna y a mi hermana Karla Luna, que de una u otra forma también me apoyaron, a su manera. Vale también mencionar a mis amigos y mis amigas que fueron siempre de vital apoyo, en las buenas y en las malas, en las noches de estudio y de juerga, aquellos que terminaron el estudio antes que yo y los que no lo terminaron también, aquellos amigos/as son los que quedan grabados en el alma y aquellos pocos que siguen a mi lado hasta hoy, gracias porque un poco de ellos queda impregnado en este logro. A mis amigos del alma Juan Carlos y a su papá (que en paz descanse), Gerardo, Erick, Xavier, Andrea, Guadrón, Elisa, ya todos los que estuvieron a la expectativa, a los que llamo amigos, que gracias al cielo son tantos. Agradecimientos también al asesor de la tesis el Ing. Jaime Anaya, quien retomo el proceso con nosotros a medio camino y que siempre nos brindo su apoyo por dura que pareciera la situación. Finalmente me gustaría agradecer a todos los que no menciono aquí, ya sea por olvido o por descuido, ya que el duro trabajo que este trabajo de graduación represento tiene sus cimientos en aquellos a quienes me han ayudado a ser lo que soy. Carlos Enrique Luna Cueva AGRADECIMIENTOS Primero y antes que nada, doy gracias a Dios, por estar conmigo en cada paso y camino que me encuentro, por fortalecer mi corazón e iluminar mi mente. Le agradezco infinitamente a mis padres, Guadalupe de Salvador y Mario Salvador, por apoyarme, por estar presentes en cada momento importante de mi vida. Gracias por darme estabilidad emocional, económica y moral. Simplemente, sin ellos nada de esto fuera posible. A ellos les dedico esta tesis. Agradezco mis hermanos, Mario e Ingrid, que yo se que siempre cuento con ellos, en las buenas y en las malas. Gracias por sus consejos, por su apoyo y por ser tan buen ejemplo en mi vida. Gracias abuelita Lita, sé que me ves y estas orgullosa de mí. Le doy gracias a mi familia, mi gran familia, por darme el apoyo moral y siempre hacerme sentir en cualquier parte como si estuviera en casa. Gracias totales a Rossy, por estar siempre pendiente de mí y darme la motivación necesaria para la culminación exitosa de mi tesis y de mi carrera. Gracias monita. Le agradezco a mis amigos, mis verdaderos amigos, por estar siempre pendientes de mi y por convertir todas mis tristezas en alegrías, por hacer de todo lo malo algo bueno. Gracias Edgardo, Gerardo, Erik y Luna, mi compañero de tesis, gracias por soportarme y por mantenerme con los pies sobre la tierra en este largo y difícil proceso. De igual manera mi más sincero agradecimiento a la escuela de computación a quienes les debo el realizar la ingeniería en una Universidad tan prestigiosa como lo es la Universidad Don Bosco; ingeniero Jaime Anaya, licenciado Coto, ingeniero Martínez, pilares importantes en la finalización con éxito de esta tesis. Gracias por su confianza. En general quisiera agradecer a todas y cada una de las personas que han vivido conmigo la realización de esta tesis, con sus altos y bajos les agradezco el haberme brindado todo el apoyo, colaboración, ánimo y sobre todo cariño y amistad. Xavier de Jesús Salvador González INDICE Introducción …………………………………………………………………….. i Capitulo I. Generalidades 1.1 Antecedentes ……………………………………………………… 1 1.2 Definición del tema ……………………………………………………… 3 1.3 Justificación …………………………………………………………….. 4 1.4 Planteamiento del problema ………………………………………………. 6 1.5 Objetivos ……………………………………………………………………. 7 1.6 Alcances y Delimitaciones 1.6.1 Alcances ……………………………………………… 8 1.6.2 Delimitaciones ……………………………………………… 8 Capitulo II: Marco Teórico 2.1 Conceptos básicos de la tecnología ……………………………………… 10 2.1.1 Software de control ……………………………………………… 10 2.1.2 Unidad de control ……………………………………………… 10 2.1.3 Medio de transmisión ……………………………………… 10 2.1.4 Sensores ……………………………………………………… 10 2.1.5 Actuadores ……………………………………………………… 10 2.1.6 elementos externos ……………………………………………… 11 2.2 Procesos de codificación del protocolo X10 sobre el medio Transmisor hasta el aparato actuador ………………………………. 11 2.2.1 Componentes de la interfase de comunicación ………………. 11 2.2.1.1 Puerto serial ……………………………….……… 11 2.2.1.2 Unidad de control ……………………………...………. 12 2.2.2 Power line carrier o transmisor sobre línea de corriente ……… 12 2.2.3 Módulos receptores ………………………………………………. 16 2.2.3.1 Modulo de lámpara ……………………………………… 16 2.2.3.2 Modulo electrodoméstico ………..……………………… 16 2.3 Tipos de acceso del Protocolo X10 2.3.1 Modo de acceso local ……………………………………… 17 2.3.2 Modo de acceso remoto ……………………………………... 18 2.4 Topología de Implementación del protocolo X10 ……………………… 20 2.4.1 Topología en bus ……………………………………………………… 20 2.4.2 Topología de estrella ……………………………………………… 21 2.4.3 Topologías mixtas ……………………………………………………… 22 Capitulo III: Metodología y técnicas de la Investigación 3.1 Fase investigativa ……………………………………………………… 22 3.1.1 Investigación bibliografiíta ……………………………………… 22 3.1.2 Investigación de Internet ……………………………………… 22 3.2 Fase de prueba ……………………………………………………… 22 3.3 Fase de diseño ……………………………………………………… 23 3.4 Fase de desarrollo ……………………………………………………… 23 Capitulo IV: Planteamiento del desarrollo del proyecto 4.1 Sistema de control local de dispositivos X10 ……………………… 24 4.2 Sistema de Control remoto de dispositivos X10 ……………………… 25 Capitulo V. Herramientas de solución en un entorno de software libre 5.1 Licencia pública general …………………………………………….. 27 5.2 Servidor Web Apache Tomcat …………………………………….. 27 5.3 Servidor web Apache v.40 ……………………………………………… 28 5.4 lenguaje de marcas de hipertexto ……………………………………… 28 5.5 servidor de base de datos MySql ……………………………………… 28 5.6 Lenguaje de programación de paginas web en jsp ………………. 29 5.7 Lenguaje de programación Java ……………………………………… 29 5.8 Servidor FTP ……………………………………………………………… 30 Capitulo VI. Análisis y diseño 6.1 Diagrama de flujo de datos ……………………………………………… 31 6.2 Diagramas de flujo de datos ………………………………………………… 32 6.2.1 Sistema Cliente ………………………………………………... 39 6.2.2 Sistema servidor ………………………………………………... 49 6.3 Diseño de la base de datos ………………………………………………… 61 Capitulo VII. Desarrollo de la solución 7.1 Sistema servidor ……………………………………………………….. 66 7.2 Sistema Local ………………………………………………………………. 70 7.3 Sincronización de datos …………………………………………………….. 72 Capitulo VIII. 8.1 Presupuesto ………………………………………………………………. 74 Conclusiones ………………………………………………………………. 75 Recomendaciones ………………………………………………………………. 76 Fuentes de Información ……………………………………………………….. 77 Glosario ………………………………………………………………………. 78 ANEXOS ……………………………………………………………………… 81 Manual de usuario ……………………………………………………… I Manual técnico ……………………………………………………… II Índice de figuras Figura 1. Estructura de solución de acceso centralizado ……………… 5 Figura 2. Dispositivos de unidad de control CM11A ……………………… 11 Figura 3. Modulación de la onda ……………………………………………... 12 Figura 4. Onda modulada resultante ……………………………….......... 13 Figura 5. Codificación de la trama X10 ………………………………...…… 14 Figura 6. Código binario de la transmisión ………………………...…… 15 Figura 7. Algunos dispositivos actuadotes ……………………………... 16 Figura 8. Estructura de función local ……………………………………… 17 Figura 9. Ejemplo de software de control local ……………………………… 18 Figura 10. Estructura de implementación para el acceso remoto ……… 19 Figura 11. Acceso remoto ……………………………………………………… 19 Figura 12. Diagrama de topología en bus ……………………………… 20 Figura 13. Diagrama de topología en estrella ……………………………… 21 Figura 14. Diagrama de logeo ……………………………………………… 31 Figura 15. Diagrama de sesión ……………………………………………… 32 Figura 16. Diagrama de sesión de cliente ………………………........... 33 Figura 17. Diagrama de reseteo de contraseña ……………………… 34 Figura 18. Diagrama control de dispositivos ……………………….…….. 35 Figura 19. Diagrama de evento ……………………………………………… 36 Figura 20. Diagrama de agregar dispositivo ……………………………… 37 Figura 21. Diagrama de sincronización de datos ……………………… 38 Figura 22. Diagrama de caso de uso. Sistema cliente ……………………… 39 Figura 23. Diagrama de caso de uso. Manipulación de dispositivo ……… 41 Figura 24. Diagrama de caso de uso. Programación de evento ……… 44 Figura 25. Diagrama de Manipulación de dispositivo ……………………… 48 Figura 26. Diagrama de caso Ingreso cliente ……………………….…….. 49 Figura 27. Diagrama de registro de nuevo usuario ……………………… 51 Figura 28. Diagrama de acceder al sitio ……………………………………… 53 Figura 29. Diagrama manipulación de dispositivos ……………………… 55 Figura 30. Diagrama de manipulación de eventos ……………………… 57 Figura 31. Tabla de empleados ……………………………………………… 62 Figura 32. Tabla de InfoUsuario ……………………………………………… 63 Figura 33. Tabla de sesión ……………………………………………… 64 Figura 34. Tabla de Empleados ……………………………………………… 65 Figura 35. Modelo entidad relación ……………………………………… 65 Figura 36. Pantalla de inicio ……………………………………………… 66 Figura 37. Elección de usuario ……………………………………………… 66 Figura 38. Impresión final de datos ……………………………………… 66 Figura 39. El usuario se logra con la información ……………………… 67 Figura 40. Iniciada la sesión el usuario cambia contraseña ……………… 67 Figura 41. Formulario de información ……………………………………… 67 Figura 42. El usuario se logea con la información ……………………… 68 Figura 43. Pantalla principal ……………………………………………… 68 Figura 44. Pantalla de eventos ……………………………………………… 68 Figura 45. Reseteo de contraseña ……………………………………… 69 Figura 46. Pregunta secreta ……………………………………………… 69 Figura 47. Actualización de contraseña ……………………………………… 69 Figura 48. Inicio ……………………………………………………………… 70 Figura 49. Seguridad ……………………………………………………… 70 Figura 50. Controles X10 ……………………………………………………… 70 Figura 51. Módulos X10 ……………………………………………………… 71 Figura 52. Eventos ……………………………………………………………… 71 Figura 53. Conexión ……………………………………………………… 71 Figura 54. Ayuda X10 ……………………………………………………… 71 Figura 55. Acceso de control ……………………………………………… 72 Figura 56. Activación de acceso ……………………………………………… 72 Figura 57. Diagrama de solución final ……………………………………… 73 Índice de tablas Tabla 1. Presupuesto cliente ……………………………………………… 74 Tabla 2. Presupuesto servidor ……………………………………………… 74 1 CAPITULO I: GENERALIDADES 1.1 ANTECEDENTES La investigación para el desarrollo del sistema está basada en los estudios sobre la domótica. El término proviene de las palabras domus y robótica y se entiende como el conjunto de sistemas capaces de automatizar una vivienda al proporcionarle servicios de gestión de energía, seguridad, bienestar, entre otras cosas, y pueden ser integrados por medio de redes locales y externas de comunicación, cableadas o inalámbricas. La domótica aplicada es relativamente nueva en El Salvador. Existen compañías nacionales que prestan servicios de seguridad a edificios por medio de diversos censores y alarmas, que al ser activadas, ponen en marcha una serie de mecanismos automatizados como es generar una llamada de alerta a la policía, al dueño del edificio y/o a la compañía encargada de la seguridad o también generar una alarma estridente para alertar a los vecinos, entre otras cosas que el usuario desee programar. Los esquemas utilizados por estas compañías utilizan un cableado dedicado para la comunicación entre su equipo y en los modernos, el uso de tecnología inalámbrica. Por ello es necesario adaptar el edificio para que se acomode a las necesidades que implica tener un sistema de seguridad. Existe un tipo de tecnología domótica conocida como Power Line Carrier (PLC) o transmisor sobre línea de corriente. Como su nombre lo indica, se basa en la utilización de la red eléctrica existente en cualquier tipo de edificio como medio físico para la comunicación interna de los distintos componentes del sistema domótico. Para la realización de este proyecto utilizaremos el protocolo X10, un estándar de facto en sistemas basados en PLC. Esta opción adquiere una viabilidad fundamental 2 debido a que se cubren grandes distancias y no se necesita cableado extra. Desde el punto de vista de donde reside la inteligencia del sistema domótico existen diferentes tipos de arquitecturas: centralizada, distribuida y mixta. La arquitectura centralizada se basa en un controlador que recibe información de múltiples censores y una vez procesada genera las órdenes oportunas a los aparatos domóticos. En la arquitectura distribuida, toda la inteligencia está separada en varios módulos que toman decisiones por cuenta propia; este modelo es típico en redes inalámbricas. La arquitectura mixta recoge lo mejor de las arquitecturas antes mencionadas. La mayoría de sistemas de gestión domóticos están basados en plataforma Windows, con el fin de mantener oculta y cerrada a modificaciones la programación utilizada en dichos programas; de esta forma, las compañías garantizan que sus clientes regresen. Debido a la apertura existente a nivel mundial con respecto al desarrollo de software, este tipo de estructura deja completamente de lado cualquier intento de desarrollo sobre el mismo programa. Sin embargo, proyectos como el GNU, de la Fundación para el Software Libre, han venido a cambiar estos esquemas de software comercial. Al acoger conceptos como “Free Software” y “Open Source”, se entiende que el usuario tiene libertad de modificar el programa para adaptarlo a sus necesidades y distribuir versiones modificadas del mismo, de tal manera que la comunidad pueda beneficiarse con sus mejoras. Una vez definidos los protocolos y herramientas a utilizar, es necesario explicar el porqué de un sistema de domótica en una casa o compañía. La domótica aporta a la vivienda tradicional la posibilidad de controlar y gestionar de forma eficiente los sistemas existentes y equipos ya instalados mediante un sistema de gestión técnica inteligente, con el objetivo de permitir una mejor calidad de vida al usuario de dicha vivienda. A nivel empresarial, se pone mayor énfasis en la seguridad y consumo de energía para disminuir costos y aumentar la productividad de la compañía. 3 1.2 DEFINICIÓN DEL TEMA DESARROLLO DE UNA PLATAFORMA DE GESTIÓN CENTRALIZADA PARA EL CONTROL DE DISPOSITIVOS DOMOTICOS X10 DENTRO DE UN ENTORNO WEB La idea principal de este tema es desarrollar un sistema para el control central de dispositivos domóticos, basados en el protocolo Standard X10, dividido en dos partes, el control local el cual permitirá manipular directamente los dispositivos, y el gestor remoto que permitirá hacerlo desde una pagina de Internet. En el diseño actual del funcionamiento de la mayoría de gestores, el usuario posee un conjunto de dispositivos domóticos que suplen las funciones básicas de encendido/apagado. Estos dispositivos pueden ser manipulados tanto remotamente como localmente. Para poder controlarlos de forma remota, se tiene que acceder directamente al equipo por medio de su IP pública. Cualquier computadora con acceso a Internet puede ingresar al sistema de gestión local, solamente digitando su IP en un navegador. Lo que hasta cierto punto tiene sus limitaciones, ya que esto obliga a tener una IP pública estática. La idea, entonces, consiste en sustituir dicho esquema para que los clientes, en vez de acceder directamente a su equipo, ingresen primero a un servidor central, en el cual se puedan gestionar todos los procesos de sus dispositivos, de forma tal que el cliente tenga que autenticarse primero mediante un usuario y un password para poder acceder al mantenimiento de control de los dispositivos X10. Una vez dentro del sitio, podrá programar las funciones de los aparatos; entonces, el servidor central enviará las órdenes al servidor local. El servidor local podrá gestionar tanto las órdenes que el servidor central le mande como las órdenes que se ejecuten de forma local. 4 1.3 JUSTIFICACIÓN Existen dos grandes razones por las cuales el proyecto debe ser desarrollado. La primera es que no existe un sistema que provea un gestor centralizado de control en el mercado salvadoreño, cosa que acarrearía muchas ventajas tanto al proveedor del servicio como al usuario del sistema, ya que un sistema centralizado de gestión, el usuario podría autenticarse en un sitio seguro, provisto por el mismo sistema central, para poder programar las funciones que sus dispositivos pueden o están destinadas a hacer, desde una plataforma remota. Ahora, al estar la gestión de procesos en un servidor central, abrirá las puertas del desarrollo para la consolidación de nuevas tecnologías de comunicación. Por ejemplo, una vez teniendo una plataforma central, esta podría adecuarse para comunicarse y enviar mensajes de texto a un número celular específico cada vez que alguno de los dispositivos se accione. Otra forma de unir tecnologías puede ser mediante el correo electrónico que pueda ser enviado a una dirección smtp configurada por el usuario, cada vez que algún dispositivo sea activado, o cuando el usuario lo defina tras un evento controlado por el sistema. Para poder entrar en la domótica de forma efectiva, se pretende hacer por medio del protocolo X10, ya que este es un estándar de facto reconocido mundialmente, y los comandos de control ya están definidos en el mismo protocolo de forma estándar. La segunda gran razón para este proyecto tiene que ver con el mundo del “open source”. Actualmente el software que se vende es bajo una licencia comercial, sus códigos están permanentemente ocultos a sus usuarios, no permiten una flexibilidad en cuanto a cambiar ciertos aspectos de su funcionamiento; por lo tanto, se pretende desarrollar un sistema en código abierto en una plataforma GNU/Linux. Con esto se tendrá la ventaja de que el nuevo sistema podrá ser modificado desde su código fuente. Esto, quiérase o no, abre las puertas a las manos conocedoras para que puedan hacerle mejoras al sistema. 5 La experiencia del cliente final se verá ahora fortalecida tras estos nuevos enfoques, ya que se trata de un nuevo sistema, con seguridad de acceso provista por el sistema centralizado de control. Se generaría un ahorro en la inversión de compra de licencias comerciales, además de tener finalmente un software flexible que incluso el usuario final tiene la posibilidad de modificar en sus propios gestores, al ser desarrollados estos en un ambiente Web. El punto novedoso e innovador de este nuevo diseño no es el estudio o desarrollo de una nueva tecnología, ni tampoco poner en práctica un nuevo protocolo; lo novedoso es proporcionarle un nuevo enfoque: la centralización de procesos, aparte de sentar un precedente de un programa de código abierto que presente una mayor flexibilidad y confianza al usuario final del sistema. El proyecto integra áreas en las que un ingeniero en sistemas debe ser versátil, el manejo de software y hardware, al tratar de utilizar un lenguaje que pueda comunicar los servicios Web con el protocolo de control de hardware X10. Internet Red Red Red Figura 1. Estructura de solución de acceso centralizado. 6 1.4 PLANTEAMIENTO DEL PROBLEMA Muchos de los sistemas domóticos que se utilizan en el país suelen ser sistemas cerrados y poco flexibles. La problemática del diseño de control mediante un gestor local obliga a que los usuarios que deseen generar un acceso remoto lo hagan mediante una IP pública fija. Asimismo, los programas que manejan los dispositivos domóticos, por lo general, no son sistemas que pueden evolucionar, solo están diseñados para dispositivos específicos; obviamente se pueden comprar actualizaciones de ser necesario, pero los códigos continúan siendo cerrados. Por el hecho de estar diseñados, en su mayoría, en plataformas windows, no es posible la modificación del código, siendo programas completamente inflexibles en este aspecto. Otra de las problemáticas encontradas, es algo que ya se dejó entrever, son las consolas de control especialmente diseñadas en plataformas de windows. Esto hace que el usuario final tenga que invertir en licencias comerciales, tanto para su software de control de dispositivos X10, como es en este caso, licencias de windows y de cualquier otro software que necesite implementarse dentro del computador. Actualmente no existe ninguna solución en el país que permita un control de acceso remoto centralizado para la manipulación de dispositivos domóticos. 7 1.5 OBJETIVOS 1.5.1 OBJETIVO GENERAL Desarrollar un sistema capaz de controlar dispositivos X10 de forma local y remota e integrar esta última a una plataforma de acceso centralizada. 1.5.2 OBJETIVOS ESPECÍFICOS 1. Desarrollar un software local, de código abierto, que permita el control de los dispositivos X10, el cual manipulará los servicios de los dispositivos eléctricos conectados. 2. Diseñar un sistema servidor que permita la comunicación de forma remota con el programa cliente controlador de los dispositivos domóticos. 3. Crear una interfaz que permita al usuario programar tareas para los dispositivos X10. 4. Investigar e implementar un método adecuado para lograr una efectiva comunicación tripartita entre servidor de acceso remoto, servidor de control local y usuario remoto. 8 1.6. ALCANCES Y DELIMITACIONES 1.6.1 ALCANCES El programa cliente que se desarrollará y vendrá a sustituir al esquema actual no solamente podrá asumir las mismas funciones, sino que también incluirá otras que facilitarán la comunicación con el servidor, dejando de ser entonces un sistema aislado. El desarrollo de la aplicación cliente será lo suficientemente flexible como para no tener que depender de un sistema operativo específico. Utilizando lenguajes multiplataformas tales como Java, PHP, entre otros. A través de un usuario y contraseña relacionada con su servicio domótico, el usuario podrá administrar sus dispositivos por medio un ambiente Web. La interfase en la que el usuario introducirá su información, usuario y contraseña estará protegida con algoritmos criptográficos, con el objetivo de alcanzar un mejor parámetro de seguridad en los dispositivos que se encuentran instalados en hogares u oficinas. Programar un sistema de respuesta de dispositivos por evento en el cual un usuario pueda ingresar la secuencia de tareas que desee: encendido y apagado de dispositivos específicos a cierta hora, para que los dispositivos respondan sin intervención humana todo el tiempo. 1.6.2 DELIMITACIONES No se harán mejoras al protocolo x10, por lo que deberán considerarse las limitaciones propias del mismo: o Excesiva atenuación entre dos conductores vivos utilizados en una típica construcción residencial. o Es susceptible al ruido. o Las señales del X10 solo pueden ser transmitidas una a la vez, entre otros. El sistema estará destinado únicamente a los dispositivos diseñados para soportar el protocolo X10. 9 El sistema se limitará al envío de órdenes hacia los dispositivos, la red interna eléctrica, los dispositivos domóticos. El diseño de la red eléctrica interna dependerá de los subscriptores correspondientes y del cliente final. Para este proyecto se manejaran los siguientes dispositivos: o Active Home Computer Interface (CM11A) o Lamp Module (LM465) o Appliance Module (AM466) Solo utilizaremos el puerto serial para poder mandar las órdenes de control a los distintos dispositivos X10, desde el gestor local, ya que el kit proporcionado solo cuenta con este puerto. 10 CAPITULO II: MARCO TEÓRICO 2.1 CONCEPTOS BÁSICOS DE LA TECNOLOGIA X10 El protocolo X-10 consta de varios elementos, que son fundamentales en toda estructura basada en tecnología X10, y se encuentran compuestos por los siguientes elementos: 2.1.1 SOFTWARE DE CONTROL Un programa, que permitirá la visión del manejo para el usuario, desde la interfaz Web o del control remoto. Comunica las señales al controlador por medio del puerto serial del computador. 2.1.2 UNIDAD DE CONTROL Permite actuar sobre el sistema y emite las órdenes por un medio de transmisión. Interpreta las instrucciones recibidas del computador y las convierte en impulsos modulados para distribuirlas al los receptores de la casa a través del cableado eléctrico. 2.1.3 MEDIO DE TRANSMISIÓN El medio de transmisión de comandos X-10 desde el controlador a los módulos, es la red eléctrica de 120 V de la vivienda. Las órdenes son propagadas en todas direcciones; aunque llega a todos los módulos conectados, solo al que va dirigido lo interpreta. 2.1.4 SENSORES Es el módulo de adquisición de datos por radiofrecuencia del sistema. Captura las órdenes provenientes del control remoto que van previamente a la central domótica, desde la que el software envía la orden final al Actuador correspondiente. 2.1.5 ACTUADORES Reciben las señales X-10 por la red eléctrica de la casa y hacen lo que la señal les dice que hagan (Enciende / Apaga). 11 2.1.6 ELEMENTOS EXTERNOS Los elementos y/o sistemas instalados en el hogar que son controlados por el sistema domótico. Se manejan dos tipos: Aparato electrodoméstico: Equipo de sonido, televisión, cafeteras, etc.; Lámpara: encendido y apagado de luces. 2.2 PROCESO DE CODIFICACIÓN DEL PROTOCOLO X10 SOBRE EL MEDIO TRANSMISOR HASTA EL APARATO ACTUADOR. 2.2.1 COMPONENTES DE LA INTERFACE DE COMUNICACIÓN. 2.2.1.1 PUERTO SERIAL (RS-232) Un puerto serial es un interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, en donde la información es transmitida bit a bit enviando un solo bit a la vez. El puerto serie RS-232 (también conocido como COM) es el que utiliza cableado simple desde 3 hilos hasta 25 y que conecta computadores o microcontroladores a todo tipo de periféricos, desde terminales a impresoras y módems. En nuestro caso es el medio de conexión para la comunicación entre la computadora y la unidad de control del protocolo X10 como lo muestra la figura 1. Figura 2. Dispositivo de unidad de control CM11A, junto a un cable serial. 12 2.2.1.2 UNIDAD DE CONTROL (CM11A) Es un modulo de interfaz que funciona como controlador de los equipos X10, conectados al rededor de la vivienda, y trabaja en conjunto con el software de control, permitiéndole al usuario tener un entorno visual de los comandos enviados por el dispositivo. Este dispositivo se conecta a la computadora a través del puerto serial (RS-232) o a un convertidor de puerto serial a USB, para computadoras que no posean este puerto, y sirve para codificar la trama x10 dentro de la onda de corriente alterna. 2.2.2 POWER LINE CARRIER O TRANSMISOR SOBRE LÍNEA DE CORRIENTE El protocolo X-10 es un estándar para la transmisión de información por corrientes portadoras. Utiliza modulación de ondas, siendo la señal de red de 110 VAC la onda portadora. Como moduladora se utilizará una señal de muy bajo voltaje a 120 Khz. El resultado es una onda modulada como la de la figura 2. La onda modulada actúa a lo largo de los ciclos como generadora de código digital. El protocolo X-10 se sirve de 11 ciclos de tensión de 110 VAC, la misma de Figura 3. Modulación de onda. La señal portadora del X10 (A), se modula con la frecuencia eléctrica de la casa (B), generando la señal modulada de X10. B C 13 red, para insertar o no en cada ciclo la señal de 120 Khz. En general, la existencia de esta señal representa un uno y su ausencia un cero. Los primeros cuatro bits representan el código de inicio. Son especiales en el sentido de que la ausencia de señal de 120 Khz. en un semiciclo representa un cero y lo contrario un uno. Casi todos los protocolos tienen unos bits en su comienzo, que se utilizan para la sincronización y el alineamiento del transceptor, con un número de codificación en binario que define al protocolo y lo mismo ocurre en el X-10. Para una mayor claridad, las señales de la figura anterior se muestran a continuación tal como se verían a través de un filtro paso-alto en la figura 3. La forma de la curva de 60 Hz sólo se muestra como referencia. El protocolo X-10 usa una modulación muy sencilla comparada con las que usan otros protocolos de control por ondas portadoras. El transciever X-10 está pendiente de los pasos por cero de la onda senoidal de 60Hz típica de la alimentación eléctrica para insertar un instante después una ráfaga muy corta en una frecuencia fija. Se puede insertar esta señal en los semiciclos positivos y negativos de la onda senoidal. La codificación de un bit 1 o de un bit 0, depende de cómo se incluye esta señal en los dos semiciclos. Un 1 binario se representa por un pulso de 120 Khz. durante 1ms y el 0 binario se presenta por la ausencia de ese pulso de 120 Khz. En un sistema trifásico el pulso de 1ms se transmite tres veces para que coincida con el paso por el cero de cada una de las tres fases. Figura 4. Onda modulada resultante. La señal de 60 Hz (corriente), alimenta los receptores y la señal de 120 Khz. (de información) se filtra y es recibida por los receptores. 14 Por lo tanto, el Tiempo de Bit coincide con los 20ms que dura el ciclo de la señal, de forma que la velocidad binaria de 60bps (bits por segundo) viene impuesta por la frecuencia de la red eléctrica que se tiene en Europa1. En América la velocidad binaria es de 60bps (bits por segundo), ya que la frecuencia de la red eléctrica es 60 Hz. La transmisión completa de una orden X-10 necesita once ciclos de corriente. Esta trama se divide en tres campos de información: • Dos ciclos representan el código de inicio. • Cuatro ciclos representan el código de casa (letras A-P). • Cinco ciclos representan o bien el código numérico (1-16) o bien el código de función (encender, apagar, aumento de intensidad, etc.). En la figura 4, la línea vertical en cada cresta representa la señal de 120 Khz. Además se puede observar que inmediatamente después de los primeros dos ciclos que representan el código de inicio, cuatro bits, se tiene dos bloques: el primero representa el llamado código de casa y comprende otros cuatro bits y el segundo representa el llamado código de unidad y comprende los últimos cinco bits del protocolo. Las tablas en la figura 5 demuestran los códigos binarios que se transmiten para cada código de la casa y el código del dispositivo actuador. El código del 1 La principal diferencia entre el sistema estadounidense y el sistema europeo es que en EEUU se utiliza 110VAC/60Hz y en Europa normalmente es 230VAC/50hz. Figura 5. Codificación de la trama X10 dentro de la onda de corriente alterna. 15 comienzo es siempre 1110 que es un código único y es el único código que no sigue la relación complementaria verdadera en medios ciclos alternos. La forma de extraer la codificación en estos dos últimos bloques es ligeramente distinta a como se hace en el primero. Mientras en el código de inicio se toman en cuenta los semiciclos, en el código de casa y en el de unidad sólo se extrae la información del primer semiciclo de cada ciclo, aprovechando el segundo Figura 6. Códigos binarios de la transmisión 16 semiciclo para transmitir la señal del primero pero complementada. Esto se hace por seguridad. Así, en un ciclo de cualquiera de estos dos últimos bloques no puede haber dos ceros o dos unos seguidos, sí entre ciclos distintos. Para aumentar la fiabilidad del sistema, esta trama (código de inicio, código de casa y código de función o numérico) se transmite siempre dos veces, separándolas por tres ciclos completos de corriente. Hay una excepción, en funciones de regulación de intensidad se transmiten de forma continuada (por lo menos dos veces) sin separación entre tramas. 2.2.3 MÓDULOS RECEPTORES Los módulos receptores son los encargados de ejecutar las órdenes recibidas a través de la red eléctrica de la casa. En nuestro proyecto manejamos de dos tipos: El modulo de lámpara y el modulo de electrodoméstico. La diferencia radica en la cantidad de Watts que soporta cada dispositivo. 2.2.3.1 MÓDULO DE LÁMPARA (LAMP MODULE LM465) Este modelo es utilizado en el proyecto y fue escogido para fines de demostración y esta diseñado para controlar lámparas lumínicas de hasta 300watts como lámparas de pie, focos, etc. Y pueden encenderse desde sus interruptores como además manipularlo de forma remota desde el controlador X10. Responde a las funciones de apagado y encendido en general. Figura 7. Algunos dispositivos actuadores: Lamp module y Appliance module, prácticamente idénticos con la diferencia que uno soporta mas poder que el otro. 17 2.2.3.2 MÓDULO DE ELECTRODOMÉSTICO (APPLIANCE MODULE AM466) Este tipo de dispositivos también lo incluye el proyecto. Soporta hasta 15Amp y 500Watts de poder, permitiendo controlar el encendido de aparatos domésticos como ventiladores, cafeteras, televisores, radios, lámparas alógenas, etc. Permitiendo activarlos remotamente y programarlos para cumplir las necesidades diarias de una familia u empresa. 2.3 TIPOS DE ACCESO DEL PROTOCOLO X10 Es importante entrever que para un sistema X10, es necesario tener un control central que permita controlar todos los dispositivos, por lo que es necesario tener también una interfaz que permita la manipulación de éstos. La solución actual plantea dos tipos de accesos al control de dispositivos: Modo de acceso local y modo de acceso remoto 2.3.1 MODO DE ACCESO LOCAL En este modo de acceso, es necesario que el usuario este presente en las instalaciones donde esta la red eléctrica a la cual están conectados sus dispositivos domóticos; de esta forma, el usuario accede a la interfaz de control, instalada en la computadora, y mediante el puerto serial manda las señales portadoras ya sea a cada o a un dispositivo especifico conectado en la red eléctrica. Red eléctrica Figura 7. Estructura de función local. Figura 8. Estructura de Función local. 18 Figura 9. Ejemplo de software de control local. Por lo general para acceder al control de los dispositivos se hacer por medio de un programa instalado en la computadora. Esta interfaz suele ser proporcionada por la empresa con la cual se contrata el servicio, por lo tanto atienden a una licencia comercial de uso. Pero el usuario puede utilizar cualquier software de control X10 siempre y cuando dicho programa soporte los dispositivos que actualmente se poseen. En el mercado actual existen muchas opciones de las cuales poder elegir, aunque muchos de esos trabajan bajo una licencia comercial. Entre esos programas tenemos: Homeseer, Hall 2000, Home Control Assitant, Doberman, SmartHome, PowerHome, Zeus, entre otros. 2.3.2 MODO DE ACCESO REMOTO El acceso remoto es una característica que no todo el software propietario posee, la función principal de éste es, como su nombre lo indica, hacer un acceso hacia el sistema sin la necesidad de estar presente en la vivienda. La estructura de esta tecnología es la siguiente: 19 El funcionamiento es de la siguiente forma, el usuario debe tener un número de IP fija para poder hacer dicho acceso, éste solamente debe de digitar su número de IP en un buscador cualquiera para poder acceder a su computadora, esto implica también que la seguridad de acceso depende únicamente del usuario final del sistema. Una vez autenticado, el usuario accede a la misma ventana de trabajo que se visualiza en el gestor local. Internet Red eléctrica Figura 10. Estructura de implementación para el acceso remoto. Figura 11. Acceso remoto. El usuario digita en el navegador su dirección IP para luego acceder a su software de control. 20 2.4 TOPOLOGIAS DE IMPLEMENTACION DEL PROTOCOLO X10 Las topologías de cableado para redes eléctricas, en conjunto con dispositivos X10 dentro de un edificio son: Bus, centralizada y Mixta. 2.4.1 TOPOLOGIA EN BUS Un sólo cable recorre todos los dispositivos para controlar o extraer información de los distintos dispositivos. Esta estructura tiene en sí sus ventajas y desventajas, ya se necesita menos cableado para conectar los dispositivos de forma lógica, pero mientras más dispositivos hay conectados en el bus de datos, más difícil es manejarlos cada uno de ellos, así que este sistema se utiliza cuando el número de puntos a controlar es reducido y no se necesitan velocidades grandes de respuesta, ya que todos los dispositivos comparten el mismo medio. 2.4.2 TOPOLOGIA EN ESTRELLA Desde el núcleo central de proceso de datos sale una línea a cada sensor o actuador del sistema de gobierno. La desventaja principal de este tipo de sistema estriba en la mayor cantidad de cableado, y entre sus ventajas, la de simplificar la electrónica, la de permitir independizarse e identificar rápidamente las averías, el multiplicar la velocidad de transmisión de la información, el incremento de la seguridad, así como sus posibilidades de expansión Unidad de Control Sensor Sensor Actuador Actuador Sensor Figura 12. Diagrama de la topología en Bus. Esta topología es denominada de acceso descentralizado. 21 2.4.3 TOPOLOGIAS MIXTAS Aparecen combinadas las tecnologías anteriores: • Mixta bus/estrella: se tiene varias estrellas unidas por un bus. Ejemplo, un edificio donde cada planta tiene una estrella y la unión entre las plantas se realiza mediante una sola línea. • Mixta estrella-estrella o súper estrella: cada planta tiene una estrella y todas las estrellas están unidas a un núcleo, formado una súper estrella. Con este tipo de infraestructura se pretende combinar las ventajas de las dos anteriores topologías, al combinarlas. Unidad de Control Actuador Sensor Sensor Sensor Sensor Actuador Actuador Actuador Figura 13. Diagrama de la topología en estrella. Esta topología es denominada de acceso centralizado, ya que todos los dispositivos se comunican constantemente con una unidad de control central. 22 CAPITULO III: METODOLOGÍA Y TÉCNICAS DE LA INVESTIGACIÓN Al ser este un proyecto de desarrollo y no de investigación, la metodología a ocupar es un poco más cerrada en su estructura, ya que esta será básicamente en cuatro fases. 3.1 FASE INVESTIGATIVA. Esta comprende la investigación de productos y alternativas que existen en el medio, así como también se investigará un poco más acerca de los comandos de control del protocolo X10, dejando sentada la base para poder definir el lenguaje de programación que más se adecue a dicho estándar. 3.1.1 INVESTIGACIÓN BIBLIOGRAFICA Esta se refiere a la consulta de información escrita, la cual ayudara al desarrollo del proyecto. Para ello se busco información sobre definiciones de interfaces X10, lenguajes de programación, libros de análisis de diseño, y lenguajes de programación de tal manera que nos permitiera determinar cual era más factible para el desarrollo de nuestro proyecto. 3.1.2 INVESTIGACIÓN DE INTERNET Este ha sido la principal fuente de información, puesto que el tema no es muy conocido en nuestro país y no se encuentra bibliografía que haga referencia a los distintos medios de automatización de una casa como sus dispositivos, a través de Internet Se obtuvo información bastante actualizada sobre el tema. 3.2 FASE DE PRUEBA Una vez formado el grupo de las distintas alternativas en el medio, se pasará a la fase de pruebas con dicho producto. De esta forma se identificarán sus ventajas y desventajas en base a su funcionamiento y respuesta con los distintos dispositivos 23 X10, para poder descubrir sus fortalezas, carencias y debilidades, y formar una base más firme sobre la cual se instaure un mejor diseño de la plataforma de control local. 3.3 FASE DE DISEÑO En esta etapa se ejecutará el diseño para el gestor local y remoto, en donde, tomando en cuenta los resultados de la fase de investigación y de la fase de prueba, se definirá un diseño de todas las funciones y características que incorporará el sistema. Será aquí donde se definirá finalmente cuál será el mejor lenguaje de programación a utilizar. 3.4 FASE DE DESARROLLO Una vez teniendo el diseño del sistema, se empezará al desarrollo, el que también se ejecutará en fases. Dicho de otra forma, se pretende empezar con el desarrollo del módulo de gestión local, lo cual se estima que abarque una mayor parte del tiempo de desarrollo en comparación con las otras fases. Una vez se tenga desarrollado este módulo, se realizarán las respectivas pruebas con los dispositivos. Dada por exitosa esta sub fase, se dará comienzo al desarrollo del servidor central, y se tomará en cuenta cualquier modificación en la estructura surgida en el desarrollo del módulo de gestión local. Después vendría la fase de las respectivas pruebas del sistema centralizado. Al tener éxito en dichas pruebas, se avanzaría a la fase de documentación, dando por concluido el proyecto. 24 CAPITULO IV: PLANTEAMIENTOS PARA EL DESARROLLO DEL PROYECTO El proyecto presentado anteriormente tiene varios puntos susceptibles de trabajo y desarrollo entre ellos se presentan puntos clave para su debida solución. Primero el sistema deberá de estar divido en dos partes que tengan la posibilidad de trabajar en conjunto en algún momento, estamos hablando de un sistema local de control y un sistema servidor de gestión remota. 4.1 SISTEMA DE CONTROL LOCAL DE DISPOSITIVOS X10 El sistema local, deberá tener la mayoría de controles y procesos que poseen los gestores actuales de control, es decir poder apagar y encender los equipos X10, control eventos entre otros; por otro lado, este desarrollo implica diferentes elementos de gestión que el usuario final deberá de tener instalados en su computador para llegar al satisfactorio desempeño del sistema, estamos hablando obviamente de los drivers de los equipos X10, requerimiento que todo hardware posee. Pero aparte de esto, y para que los comandos de manipulación de hardware a través de un ambiente Web, sea posible. Analizando el problema anterior, el usuario deberá, por consiguiente, instalar un servidor que logre levantar un sistema basado en lenguaje Java, dichos programas son: • El servidor TOMCAT, el cual servirá de compilador para los comandos de control de hardware. • La Plataforma JRE (JAVA RUN ENVIROMENT), requerimiento que prácticamente todas en las computadoras poseen, esta plataforma contiene los Api de comunicación. La descripción específica de cada uno de estos elementos básicos se hará con más detalle un poco mas adelante. 25 La elección de estas herramientas permite, además, alcanzar uno de los objetivos principales que este trabajo de graduación, que es la implementación de una solución en un lenguaje abierto, de esta forma los usuarios expertos no solo pueden modificar los códigos fuente de sus gestores locales con la instalación de las adecuadas herramientas de desarrollo, Eclipse o Netbean por ejemplo, y también abre las puertas a una compatibilidad de mayor alcance hacia las diferentes plataformas, ya que es ampliamente conocido que lenguajes tales como Java y PHP son compatibles con cualquier sistemas operativo en el mercado. 4.2 SISTEMA DE CONTROL REMOTO DE DISPOSITIVOS X10 Para continuar con el análisis del problema es necesario recalcar que para hacer un sistema centralizado de gestión será necesario montar un servidor que entienda lo que el gestor local del cliente pueda hacer, y además de eso poder gestionar una base de datos lo suficientemente buena como para poder manejar la información básica de los clientes. Para poder darle la debida solución se ha de implementar una solución bastante ambiciosa; se han de instalar dos servidores Web que trabajen conjuntamente: APACHE y TOMCAT, el primero servirá para compilar los comandos PHP y el segundo servirá de compilador de comandos Java. Como gestor de base de datos se implementará MySql, la cual presenta gran compatibilidad con PHP, un gran poder de gestión y proceso información. Apache actuara cómo control de flujo y gestión de usuarios, utilizando el sitio desarrollado en PHP, para el control de datos. TomCat servirá para que el Server comprenda los procesos que el programa de gestión local pueda llegar a tener, de esa forma también se protegerá la información y los procesos de control de dispositivos. 26 En la descripción de flujo de datos se podrá apreciar como la comunicación entre el primer y segundo servidor se hará a través del cambio de puertos, esto conlleva a una mayor seguridad contra posibles ataques al flujo de información. Finalmente la realización de la comunicación local y remota. La comunicación entre ambos entes, se hará mediante el intercambio de archivos de control entre el servidor y el cliente. Valga la aclaración que el sistema del cliente final funciona mediante el almacenamiento en un archivo binario la mayor parte de eventos a ejecutarse, por ejemplo, si el cliente programa a cierta hora que una luz en su casa encienda, ésta instrucción es guardada en dicho archivo binario y es monitoreada constantemente por el monitor de ejecución de eventos. Idealmente cuando el usuario autorice o active el acceso remoto, este enviara un archivo con toda la configuración que tiene el cliente, el servidor lo leerá y activará sus configuraciones para ese usuario correspondiente. La implementación de esta solución se hará mediante la instalación de un servidor FTP en el Server principal; aprovechando el hecho de que el cliente final deberá tener instalado TOMCAT, el programa de autorización de intercambio de archivos se hará mediante una aplicación desarrollada para tal fin. Dicho servidor FTP podrá tener activado únicamente un repositorio de archivos en el cual estarán almacenadas las modificaciones que el usuario haga desde la Web. Esto deja entre ver que la comunicación entre cliente y servidor será de una manera asíncrona. Es decir, que en el programa cliente impondrá la pauta de cada cuanto tiempo se hará el intercambio de archivos, y depende de a velocidad que el programa cliente imponga para esto. Si el tiempo de establecido por el cliente es demasiado alto, las actualizaciones podrían no ser del todo satisfactorias ni inmediatas. Por otra parte, si la actualización de los archivos es bastante rápida, esta podría parecer incluso una comunicación completamente sincronizada, pero esto dependerá también de la velocidad de descarga que tenga el cliente, la saturación del ancho de banda y por ultimo del rendimiento del propio computador. 27 CAPITULO V: HERRAMIENTAS DE SOLUCION EN UN ENTORNO DE SOFTWARE LIBRE La solución al problema de investigación requirió la unificación de dos componentes de rasgos diferentes, pero juntos conforman el sistema completo. Primero, el software de control del sistema con la interfaz del usuario, para la interacción entre el cliente a través de una interfaz Web, y segundo, el hardware que recibe las instrucciones y las envía al computador para su ejecución. El software, se creó siguiendo la metodología de análisis y diseño orientado a objetos, y se utilizaron Casos de uso basados en diagramas de flujo de eventos. Y realizado bajo la licencia GNU GPL. 5.1 LICENCIA PÚBLICA GENERAL (GENERAL PUBLIC LICENSE) EL GNU, es una licencia creada por la Free Software Foundation a mediados de los 80, y está orientada principalmente a proteger la libre distribución, modificación y uso de software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. 5.2 SERVIDOR WEB APACHE TOMCAT Utilizado para almacenar y administrar las páginas Web basada en Java, se utilizo el proyecto Tomcat de apache, como solución al acceso. Para esto el lenguaje de programación JSP, fue necesario para programar las interfaces de solicitudes http. Este servidor compila en tiempo real todos los comandos java que se ejecuten en una determinada pagina para luego ser convertidas en clases y así mejorar el tiempo de ejecución. Este servidor esta disponible tanto para sistema operativo Windows como para Linux. En nuestro caso utilizamos el sistema operativo Windows como plataforma de prueba. 28 5.3 SERVIDOR WEB APACHE V 4.0 Apache es un servidor Web, que permite el alojamiento de páginas Web en una computadora con recursos mínimos. El servidor HTTP Apache es un software de código abierto para plataformas Unix, Windows, Macintosh y otras, que implementa el protocolo HTTP y la noción de sitio virtual. Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido. Esta herramienta tiene varias funciones tales como: restricción a determinados sitios Web, conexiones seguras, configuración de módulos de programación como Perl, PHP, Javascript etc. Fue utilizado para montar el servidor para el acceso de usuarios remotos. 5.4 LENGUAJE DE MARCAS DE HIPERTEXTO (HTML) Utilizado para el desarrollo de las páginas Web estáticas. HTML, siglas de HyperText Markup Language (Lenguaje de Marcas de Hipertexto), es el lenguaje predominante para la construcción de páginas Web. Es usado para describir la estructura y el contenido en forma de texto, así como para complementar el texto con objetos tales como imágenes. HTML también puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un código de programación el cual puede afectar el comportamiento de navegadores Web y otros procesadores de HTML. 5.5 SERVIDOR DE BASES DE DATOS MYSQL Escogido para el almacenamiento y modificación de los datos del sistema servidor. MYSQL es uno de los servidores más rápidos de bases de datos actuales. Ofrece al programador todo un arreglo de opciones y capacidades difícilmente encontradas en otro de su clase, teniendo en cuenta principalmente que es un software libre. Es un servidor de bases de datos SQL multiusuarios y multihilos (capacidad para ejecutar varias tareas simultáneamente). Las principales ventajeas son su velocidad, robustez y facilidad de uso. 29 5.6 LENGUAJE DE PROGRAMACION DE PÁGINAS WEB EN JSP Utilizado para agregar instrucciones embebidas dentro del código HTML e interactuar con los dispositivos x10. Java Server Pages (JSP) es una tecnología Java que permite generar contenido dinámico para Web, en forma de documentos HTML, XML o de otro tipo. Esta tecnología es un desarrollo de la compañía Sun Microsystems. Las JSP's permiten la utilización de código Java mediante scripts. Además es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. El rendimiento de una página JSP es el mismo que tendría el servidor equivalente, ya que el código es compilado como cualquier otra clase Java. A su vez, la máquina virtual compilará dinámicamente a código de máquina las partes de la aplicación que lo requieran. Esto hace que JSP tenga un buen desempeño y sea más eficiente que otras tecnologías Web que ejecutan el código de una manera puramente interpretada. La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de propósito general que excede el mundo Web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de una manera detallada. Esto permite separar en niveles las aplicaciones Web, dejando la parte encargada de generar el documento HTML en el archivo JSP. 5.7 LENGUAJE DE PROGRAMACIÓN JAVA Desarrollado para elaborar la estructura de conexión entre los puertos paralelo y serial, y la interfaz del usuario. Java es un lenguaje de programación orientado a objetos. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria. Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible. 30 5.8 SERVIDOR FTP Utilizado para la transferencia del archivo de configuración y de control de eventos entre el modulo cliente y el acceso remoto. FTP (File Transfer Protocol) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP, basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo. El Servicio FTP es ofrecido por la capa de Aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Para nuestro proyecto se escogió el software de licencia libre Win FTP Server Standard, que es un servidor FTP extremadamente simple y poderoso. Soporta varios lenguajes de programación y gracias a sus configuraciones personalizadas, se pueden tapar varios agujeros de seguridad que siempre acompaña al protocolo FTP. Con estos requerimientos, el servidor quedó en capacidad de manejar una aplicación de comunicación entre el usuario en Internet y el sistema domotico. El sistema es enlazado a través del puerto serial con el módulo de control CM11A, que se encarga de hacer la comunicación por la red eléctrica hacia los otros módulos específicos de los electrodomésticos. 31 CAPITULO VI: ANÁLISIS y DISEÑO 6.1 DIAGRAMAS DE FLUJO DE DATOS Los diagramas de flujo nos dieron la base de la solución final del sistema, en ellos están basados la descripción especifica de los casos de uso descritos mas adelante. Estos nos darán en un plano más general el flujo de información y el desarrollo de la solución del problema. Diagrama de Flujo de Logeo En una visión general nos muestra a grosso modo el proceso de logeo en el sistema, cuyo cada caso específico se muestran en los casos de uso. Figura 14. Diagrama de Logeo 32 Diagrama de sesión servidor Figura 15. Diagrama de sesión 33 Diagrama de sesión cliente Figura 16. Diagrama de sesión de cliente 34 Reseteo de Contraseña Figura 17. Diagrama de Reseteo de contraseña 35 Controlar equipo Controlar dispositivo Inicio Encender dispositivo Fin Encender Finalizar Proceso SI NO SI NO Apagar dispotivo Apagar Si Inicio Fin Finalizar Proceso NO SI NO Figura 18. Diagrama Control de dispositivo 36 Evento Evento Inicio Agregar evento Borrar Evento Modificar Evento Finalizar modulo Agregar Evento Borrar Evento Modificar Evento Fin Si SI SI No Inicio Finalizar modulo Fin No Inicio Finalizar modulo Fin No Figura 19. Diagrama de Evento 37 Agregar Equipo Inicio Agregar Dispositivo Agregar dispositivo Finalizar Modulo Agregar dispositivo Fin No Si Si No Borrar dispositivo Borrar dispositivo Si Inicio Finalizar Modulo Fin No Si No Figura 20. Diagrama de Agregar dispositivo 38 Diagrama de sincronización de datos Sincronización de datos Servidor Cliente Ha habido Cambios Inicio Se solicita enviar Archivo Finalizar conexión Modificar Archivo de configuracion Fin Enviar archivo a cliente Si No Si No No Hay conexion Inicio Enviar archivo local Finalizar sesion Fin Error Descargar Archivo modificado Sustituir Archivo Modificado Figura 21. Diagrama de sincronización de datos 39 6.2 DIAGRAMAS DE FLUJO DE DATOS 6.2.1 SISTEMA CLIENTE Figura 22. Diagrama de caso de uso sistema cliente 40 Escenario iniciar sistema Actor: Usuario de gestor local Descripción general del escenario: Cuando el usuario se disponga a ocupar el sistema se empleara este escenario para inicializar el programa. Caso de Uso: Acceder al programa Descripción: El usuario seleccionara el icono de acceso directo y ejecutara el sistema. Automáticamente se iniciaran todos los servicios requeridos para hacer funcionar al sistema. Resultado: El programa tendrá listos todos los módulos necesarios para poder ser manipulado completamente por el usuario de gestor local. 41 Figura 23. Diagrama de caso de uso manipulación de dispositivo 42 Escenario de manipulación básica de dispositivos. Actor: Usuario de gestor local Descripción general del escenario: Este escenario esta ambientado en el momento en el que el usuario se dispone a interactuar con un nuevo dispositivo x10 o cuando desee modificar configuraciones realizadas anteriormente. Caso de Uso: Agregar dispositivo Descripción: Esta opción permitirá al usuario agregar un nuevo dispositivo, entre un listado de aparatos predeterminados que cumplen con el estándar x10, para poder ser reconocido por el sistema. Resultado: El usuario tendrá listo el nuevo dispositivo instalado listo para realizar cualquier configuración o programación que desee realizar. Caso de Uso: Remover dispositivo Descripción: Permite al usuario eliminar un componente previamente instalado. Resultado: El dispositivo previamente instalado dejara de ser reconocido por el sistema. Caso de Uso: Modificar configuración de dispositivo Descripción: Cambiara la manera de ser reconocido por el sistema cualquier dispositivo instalado previamente, dentro de las opciones que podrá modificar será descripción, nombre y estado del equipo Resultado: El usuario después de haber realizado los cambios, se verá reflejados en el sistema de inmediato. 43 Caso de Uso: Organizar dispositivos Descripción: El usuario es capaz de organizar los dispositivos instalados en el sistema por medio de filtros de ordenamiento. Resultado: El usuario ordena los dispositivos instalados en el sistema a su conveniencia. 44 Figura 24. Diagrama de caso de uso Programación de evento 45 Escenario Programación de eventos Descripción general del escenario: En este escenario el usuario, una vez teniendo agregados los dispositivos que el posee, podrá dar una manipular el aparato sin la necesidad de que el este presente, es decir encenderlo, apagarlo, modificar su comportamiento, todo dependiendo de las capacidades del dispositivo, en una fecha y hora específica, a esto se le llamará evento. El usuario tendrá la posibilidad de crear, modificar y eliminar el perfil de ejecución del evento Caso de Uso: Agregar evento Actor: Usuario de gestor local Descripción: El usuario, una vez teniendo la lista de dispositivos que utilizara, el usuario podrá dar clic sobre la opción de programación de evento, en la pantalla principal, dependiendo del aparato elegido, el cliente podrá elegir la función que dicho aparato podrá hacer; entre las funciones básicas están: encender o apagar el dispositivo, regular la intensidad de corriente que este recibe, entre otros. Una vez elegida la acción o evento a realizar, se deberá elegir la fecha y hora de ejecución, los cuales podrán ser: una vez y en un periodo de tiempo. Finalmente, el usuario guardará las configuraciones hechas al evento recién programado. Resultado: Se generará un nuevo evento que controlará un dispositivo sin la necesidad de una manipulación directa en ese momento. 46 Caso de uso: Elegir fecha única Actor: Usuario Descripción: El caso de uso es iniciado por el caso de Agregar Evento, ya que en el momento de que el usuario programa un nuevo evento, este deber elegir el la hora y el día en el cual sucederá el evento mencionado. En este caso el usuario una vez elegido el evento a realizar. Idealmente el usuario deberá de escribir la hora de realización en formato HH:MM, y elegir el día de ejecución. Resultado: El usuario genera una fecha específica para la realización del evento. Caso de Uso: Elegir intervalo Actor: Usuario Descripción: El usuario, con el fin de dar a su evento una ejecución regular, deberá elegir los días que desea que ocurran sus eventos. Al elegir esta opción el usuario podrá elegir una hora en la que inicia el evento. Valga la aclaración que los eventos será gestionados uno a uno decir para apagar y encender por eventos un foco, de deberá ingresar el evento de encendido y el evento de apagado del mismo. Resultado: El usuario genera un periodo específico para la realización del evento. Caso de uso: Quitar evento Actor: Usuario Descripción: E. usuario, una vez teniendo la lista de eventos que se ha programado podrá fácilmente remover un evento, simplemente dando clic en la opción de remover evento localizado al final de la descripción general de cada evento. Una vez escogida esta opción, aparecerá una ventana de confirmación, si el usuario confirma su borrado, el evento se eliminará automáticamente de la lista, sino, el evento continuará estando presente en el listado de ejecuciones. Resultado: El usuario eliminará un evento que no necesitará más. 47 Caso de uso: Modificar evento Actor: Usuario Descripción: El usuario, una vez teniendo la lista de programación de eventos que utilizara, el usuario podrá dar clic sobre el nombre del evento listado para poder modificar su configuración. De entre los cambios que se pueden hacer están: modificar fecha de ejecución o intervalos de tiempo y evento a ejecutarse. Resultado: El usuario modifica el perfil de ejecución de un evento. Caso de uso: Elegir fecha única Actor: Usuario Descripción: El caso de uso es iniciado por el caso de Modificar Evento, ya que en el momento de que el usuario programa un nuevo evento, este deber elegir de entre tres opciones: Fecha una vez y en un periodo de tiempo. En este caso el usuario una vez elegido el evento a realizar, deberá elegir la opción de fecha única, ingresando un formato de día/mes/año, en la casilla correspondiente, dentro del la programación del evento. Resultado: El usuario modificará la ejecución de su evento para que se realice en una fecha específica. Caso de Uso: Elegir intervalo Actor: Usuario Descripción: El usuario, con el fin de dar a la modificación de su evento una ejecución regular, deberá elegir la opción de intervalo de tiempo en la programación de su evento. Al elegir esta opción el usuario podrá elegir una fecha y hora en la que inicia el evento y una fecha y hora en la que el evento dejará de activarse diariamente; esta elección se hará mediante la elección de fechas en el programa. Resultado: El usuario modificará su evento para que se realice dentro de un periodo específico de tiempo. 48 Escenario control de dispositivos Descripción general del escenario: Este escenario abarca todas las acciones en donde el usuario tiene el control de cada dispositivo x10, de manera inmediata. Caso de uso: Encender Dispositivo Descripción: El usuario tiene la capacidad de encender cualquier aparato manejado por el sistema y previamente instalado. Resultado: El dispositivo se mantendrá encendido hasta que se indique lo contrario. Caso de uso: Apagar dispositivo Descripción: El usuario tiene la capacidad de apagar cualquier aparato manejado por el sistema previamente encendido. Resultado: El dispositivo se mantendrá apagado hasta que se indique lo contrario. Figura 25. Diagrama de manipulación de dispositivos 49 6.2.2 SISTEMA SERVIDOR Ingreso de Cliente Empleado Cliente Ingreso de nuevo usuario Creación de usuario y Contraseña Escenario: Ingreso de Cliente Descripción general del escenario: En este escenario, un usuario del sistema de ingreso clientes, es decir un ejecutivo de ventas autorizado para ingresar nuevos clientes al sistema, ingresa la información básica del cliente, dando como resultado la información que el cliente necesitará para el registro. Figura 26. Diagrama de caso Ingreso cliente 50 Caso de Uso: Ingreso de nuevo usuario Actor: Empleado Descripción: El empleado de la compañía ingresará la información básica del cliente para que esta información quede almacenada en la base de datos y de esa forma el cliente pueda registrar su producto en línea. Resultado: Ingreso exitoso de la información del cliente en la base de datos. Caso de Uso: Creación de usuario y contraseña Actor: Empleado Descripción: El empleado de la compañía en el ingreso de un nuevo cliente al sistema, tendrá la posibilidad de activar un nuevo nombre de usuario para su cliente, este a su vez podrá elegir entre 3 opciones válidas para dicho nombre de usuario, por otra parte, una vez seleccionado este nombre de usuario, el sistema automáticamente generará una contraseña, la cual se podrá actualizar la primer vez que ingrese al sitio Web. Resultado: Generación exitosa del nombre de usuario y de la contraseña del cliente para su futuro registro en el sistema 51 Figura 27. Diagrama de registro de nuevo usuario 52 Escenario: Registro de usuario Descripción general del escenario: En este escenario, se asume que el cliente es un nuevo cliente y va a acceder al sitio por primera vez, por lo que es necesario que complete la modificación del perfil de uso. Caso de Uso: Registro de nuevo usuario Actor: Usuario Descripción: En este caso de uso, el usuario va a ingresar por primera vez al sitio, por lo que previamente se le ha proporcionado un usuario que el ha de haber elegido al momento de comprar el producto. Deberá ingresar el password temporal que se le ha proporcionado también. Hecho esto pasará directamente al caso de uso Modificar password. Resultado: El usuario ingresa por primera vez al sistema confirmando el funcionamiento de su perfil previamente creado por la compañía. Caso de Uso: Modificar Password Actor: Usuario Descripción: Este caso de uso es generado por Registro de nuevo usuario, al ingresar el password temporal, el usuario será llevado a la modificación de su password temporal. Este password temporal será válido solamente la primera vez que el usuario ingrese al sistema. En el mantenimiento que al usuario se le presentará se le pedirá actualizar su password, ingresando el viejo password y a continuación el nuevo password requerido, además de esto se le pedirá completar una pregunta de seguridad que servirá mas adelante para actualizar un nuevo password en caso de bloqueo. Una vez hecho esto, ingresará a la pagina principal, donde se le desalegrará, la configuración de su perfil de uso. Resultado: El usuario actualiza su password para mayor seguridad de la cuenta. 53 Figura 28. Diagrama Acceder al sitio 54 Escenario acceder al sitio Descripción general del escenario: En este caso de uso el usuario ya con su perfil creado y con la información básica actualizada, podrá acceder a los datos que su perfil contiene digitando únicamente su usuario y su password en la pantalla de bienvenida. Caso de Uso: Acceder al sitio Actor: Usuario Descripción: el usuario accederá a la página que la empresa ofrece para el acceso remoto de sus equipos, y deberá introducir su usuario y su password para poder ingresar en su perfil. Si el usuario se equivoca en digitar sus datos podrá hacer dos intentos mas para colocarlos bien, de otra forma el usuario se bloqueara y tendrá que resetear su password. El usuario no se bloqueará siempre y cuando éste no haya completado el caso de uso modificar password, en el escenario de registro de usuario. Si el usuario digita bien sus datos accederá a los datos de su perfil mediante el caso de uso enlace con el cliente local. Resultado: El usuario se logea en la página para acceder a su perfil de uso. Caso de Uso: Enlace con el cliente local Actor: Usuario Descripción: Una vez que el usuario ha accedido con su usuario y su password, el sistema iniciará una búsqueda en su base de datos para ver si la el agente local del cliente se encuentra en línea, si este se encuentra en línea, cargará el acceso a su perfil, en donde el cliente podrá hacer todo lo que hace en su manejo local. Resultado: El sistema remoto se comunica con el sistema local. 55 Caso de Uso: Resetear password Actor: Usuario Descripción: Si el usuario ha bloqueado su Userid. Cuando este quiera ingresar se le hará una pregunta de seguridad que el mismo usuario, si la pregunta es contestada exitosamente se le llevará a una pagina para fijar un nuevo password, su confirmación y nuevamente una pregunta de seguridad, para prevenir futuros bloqueos. Resultado: El usuario resetea su password. Escenario de manipulación básica de dispositivos. Actor: Usuario Remoto Descripción general del escenario: Este escenario esta ambientado en el momento en el que el usuario se dispone a interactuar con un nuevo dispositivo x1, la configuración y la descripción Figura 29. Diagrama manipulación de dispositivos 56 de cada aparato aquí es fija, el usuario solamente podrá apagar o encender su equipo. Caso de uso: Encender aparato Descripción: El usuario tiene la capacidad de encender cualquier aparato manejado por el sistema y previamente instalado. Resultado: El dispositivo se mantendrá encendido hasta que se indique lo contrario. Caso de uso: Apagar Aparato Descripción: El usuario tiene la capacidad de apagar cualquier aparato manejado por el sistema previamente encendido. Resultado: El dispositivo se mantendrá apagado hasta que se indique lo contrario. 57 Manipulación de Eventos Usuario Usuario Agregar Evento Modificar Evento Quitar Evento Elegir Fecha Unica Elegir Intervalo Elegir Fecha Unica Elegir Intervalo Escenario Programación de eventos Descripción general del escenario: En este escenario el usuario, una vez teniendo agregados los dispositivos que el posee, podrá dar una manipular el aparato sin la necesidad de que el este presente, es decir encenderlo, apagarlo, modificar su comportamiento, todo Figura 30. Diagrama de Manipulación de eventos 58 dependiendo de las capacidades del dispositivo, en una fecha y hora específica, a esto se le llamará evento. El usuario tendrá la posibilidad de crear, modificar y eliminar el perfil de ejecución del evento Caso de Uso: Agregar evento Actor: Usuario remoto Descripción: El usuario, una vez teniendo la lista de dispositivos que utilizara, el usuario podrá dar clic sobre la opción de programación de evento, en la pantalla principal, dependiendo del aparato elegido, el cliente podrá elegir la función que dicho aparato podrá hacer; entre las funciones básicas están: encender o apagar el dispositivo. Una vez elegida la acción o evento a realizar, se deberá elegir la fecha y hora de ejecución, los cuales podrán ser: una vez y en un periodo de tiempo. Finalmente, el usuario guardará las configuraciones hechas al evento recién programado. Resultado: Se generará un nuevo evento que controlará un dispositivo sin la necesidad de una manipulación directa en ese momento. Caso de uso: Elegir fecha única Actor: Usuario Descripción: El caso de uso es iniciado por el caso de Agregar Evento, ya que en el momento de que el usuario programa un nuevo evento, este deber elegir de entre tres opciones: Fecha una vez o en un periodo de tiempo. En este caso el usuario una vez elegido el evento a realizar, deberá elegir la opción del día y la hora únicamente. Resultado: El usuario genera una fecha específica para la realización del evento. 59 Caso de Uso: Elegir intervalo Actor: Usuario Descripción: El usuario, con el fin de dar a su evento una ejecución regular, deberá elegir los días de uso en la programación de su evento. Además de elegir los días, se deberá elegir también la hora en la que el evento dejará de activarse diariamente; esta elección se hará mediante la elección de fechas en el programa. Resultado: El usuario genera un periodo específico para la realización del evento. Caso de uso: Quitar evento Actor: Usuario Descripción: El usuario, una vez teniendo la lista de eventos que se ha programado podrá fácilmente remover un evento, simplemente dando clic en la opción de remover evento localizado al final de la descripción general de cada evento. Una vez seleccionada esta opción, aparecerá una ventana de confirmación, si el usuario confirma su borrado, el evento se eliminará automáticamente de la lista, sino, el evento continuará estando presente en el listado de ejecuciones. Resultado: El usuario eliminará un evento que no necesitará más. Caso de uso: Modificar evento Actor: Usuario Descripción: El usuario, una vez teniendo la lista de programación de eventos que utilizara, el usuario podrá dar clic sobre el parámetro del evento que desea modificar listado en la ventana de eventos. De entre los cambios que se pueden hacer están: modificar el día de ejecución o intervalos de tiempo. Resultado: El usuario modifica el perfil de ejecución de un evento. 60 Caso de uso: Elegir fecha única Actor: Usuario Descripción: El caso de uso es iniciado por el caso de Modificar Evento, ya que en el momento de que el usuario programa un nuevo evento, este deber elegir de entre tres opciones: Fecha una o en un periodo de tiempo. En este caso el usuario una vez elegido el evento a realizar, deberá elegir la opción de fecha única y la hora de realización. Resultado: El usuario modificará la ejecución de su evento para que se realice en una fecha específica. Caso de Uso: Elegir intervalo Actor: Usuario Descripción: El usuario, con el fin de dar a la modificación de su evento una ejecución regular, deberá elegir los días en los que quiere que ocurra su evento. Al elegir esta opción el usuario podrá elegir el día y hora en la que inicia el evento. Resultado: El usuario modificará su evento para que se realice dentro de un periodo específico de tiempo. 61 6.3 DISEÑO DE LA BASE DE DATOS La base de datos será manejada por el gestor de base de datos MySql, cuyas características fueron oportunamente descritas anteriormente. La única instancia que manejara realmente una base de datos será el servidor principal. Dicha base de datos contará de únicamente 4 tablas, de las cuales 3 serán para el manejo de la información del usuario el registro de sesiones y la cuarta será una tabla completamente independiente de las otras que será en el caso que el sistema desee ser agrandado para el poder ser ocupado a nivel empresarial, anticipándose de esa forma a una posible expansión del sistema y un posible nuevo foco comercial. Esta base de datos esta enfocada a trabajar en el nivel más básico de gestión de usuarios y administradores del sistema, pero fácilmente esta base de datos puede ser adaptada para trabajar a un nivel mas empresarial y serio, agregando mas tablar para poder obtener los informes requeridos por una empresa seria. Así mismo la tabla Cliente, puede incluso ser utilizada para mostrar y desarrollar todo un mayor sistema de control interno, de esta forma esta base de datos presenta una flexibilidad de crecimiento tremenda. Las tablas correspondientes a la base de datos son: • Cliente. Esta tabla se encarga de manejar la información básica de los clientes y consta de los siguientes campos: o IdCliente: Considerado campo llave, y es un identificador del número de cliente. Es del tipo numérico. o Nombre: Campo que almacenará el nombre del cliente. Es del tipo cadena. o Apellido: Campo que almacenará el apellido del cliente. Es del tipo cadena. o Dirección: Campo que almacenará la dirección del cliente. Es del tipo texto. 62 o Ciudad: campo que almacena el nombre de la ciudad al que el cliente pertenece. Es del tipo cadena. o Depto: Almacenará el nombre del departamento al cual el cliente pertenece. Es del tipo cadena. o Telefono: Almacenará el teléfono del cliente. Es del tipo cadena • InfoUsuario. Esta tabla almacenará la información de seguridad del cliente y cuenta con los siguientes campos: o Idcliente: es un identificador del número de cliente. Es del tipo numérico. o User: Almacenará el nombre de usuario que tendrá el cliente del sistema y es considerado campo primario. Es del tipo cadena. o Pass: Almacenará el password del cliente. Como característica especial, los datos de este campo serán guardados en formato md5, de esta forma nos aseguramos que nadie conozca esta información. Es del tipo cadena. o Pregunta: Almacenará una pregunta de seguridad relacionada a su cuenta, de esta forma si el usuario pierde su password podrá resetear su contraseña a través de esta pregunta. Es del tipo texto. o Respuesta: Respuesta a la pregunta de seguridad. Es del tipo texto. Figura 31. Tabla de empleados 63 o Activo: Es un campo de tipo numérico que indicará el estado de un cliente relacionando su valor con un numero. 0 significa cliente nuevo 1 significa cliente activo 2 significa cliente inactivo • Sesión. Esta tabla se utilizará para llevar registro de las sesiones que el usuario tenga. Esta tabla consta con los siguientes campos: o User: nombre de usuario de cliente. Es del tipo cadena. o IdSesion: Campo de tipo numérico y considerado id principal de la tabla ya que este identificara una sesión específica del usuario. o Logeado: Campo que servirá únicamente para saber si el usuario esta logeado en ese momento o no en el sitio remoto. Este dato es del tipo numérico. o FechaLogeo: Guarda la fecha en la cual un usuario ha iniciado sesión. Este dato es del tipo fecha. o FechaDeslogeo: Guarda la Fecha en la cual el usuario guardo su sesión correctamente. Dato del tipo fecha. Figura 32. Tabla de InfoUsuario 64 • Empleado. Tabla que almacenará los datos de los empleados autorizados a usar el sistema. Esta tabla no tiene un uso real en el sistema y simplemente esta puesta pensando en una posible expansión del mismo. Consta de los siguientes datos: o IdEmpleado. Considerado llave primaria de la tabla y almacena un numero de identificador de usuario. Es del tipo numérico. o Nombre. Almacena el nombre del empleado. Es del tipo cadena. o Apellido. Este campo almacenará el apellido del empleado. Es del tipo cadena. o Usuario. Almacena el nombre de usuario del empleado. Este campo también es del tipo cadena. o Password. Almacena el password del empleado y siguiendo la misma línea de acción con respecto a la seguridad, esta también pude almacenar datos md5. o Rol. es un campo de tipo numérico que almacenará el rol que puede tener el usuario. A nivel de sugerencia se plantean dos posibles: 1 equivalente a usuario básico, y 2 equivalente a un usuario administrador o Activo: Dato numérico que representará si el empelado esta activo o no en el sistema. Figura 33. Tabla de Sesión 65 Diagrama Entidad Relación Cliente IdCliente Nombre Apellido Dirección Ciudad Depto Telefono InfoUsuario User IdCliente Pass Pregunta Respuesta Activo Sesion IdSesion User Logeado FechaLogeo FechaDeslogeo Empleados IdEmpleado Nombre Apellido Usuario Password Rol Activo 1 1 1 ∞ Figura 34. Tabla Empleados Figura 35. Modelo entidad relación 66 CAPITULO VII: DESARROLLO DE LA SOLUCION Finalmente, después de basarnos en el diseño de la solución expuestas anteriormente, flujo gramas, los casos de uso y base de datos, el sistema fue programado apegándose lo mas posible con la propuesta anteriormente descrita. Dando como resultado un los siguientes controles: 7.1 SISTEMA SERVIDOR Ingreso de Clientes Proceso basado en los casos de uso del mismo nombre, aquí se puede ver como el sistema, a partir del ingreso de la información genera el resto de datos necesarios y los almacena en la base de datos Figura 36. Pantalla de Inicio. Aquí el empleado ingresa la información del cliente Figura 37. Elección de Usuario. El sistema genera automáticamente el usuario y la contraseña. Figura 38. Impresión final de datos. El cliente tiene su nombre de usuario y su contraseña temporal. 67 Registro de Nuevo Usuario Este flujo de proceso se basa en el desarrollo del caso de uso del mismo nombre. La idea principal de estas pantallas es la actualización de la contraseña temporal proporcionada por el sistema previamente, e iniciar de esta forma la sesión del cliente Figura 39. El usuario se logea con la información proporcionada anteriormente, en este caso con la información de la figura anterior. Figura 40. Una vez iniciada la sesión, el usuario cambia la contraseña por la que el quiera. Figura 41. Formulario de Información. Una vez actualizado el password el cliente, deberá llenar esta información. Valga la aclaración que después de ingresar esta información, el cliente verá un mensaje de error de que no ha iniciado sesión, cosa completamente normal ya que el password ha expirado y ha sido activado. 68 Escenario acceder al sitio En esta representación de flujo de proceso el cliente ya es un usuario activo y simplemente se logeada en el sitio ingresando su usuario y contraseña, se incluye aquí el proceso de olvidar contraseña. Figura 42. El usuario se logea con la información. Figura 43. Pantalla Principal. El usuario ha iniciado la sesión Figura 44. Pantalla de eventos. En esta pantalla el usuario programa remotamente los eventos que desee que sucedan. 69 Resetear Contraseña Esta basada en el flujograma de datos expuesto anteriormente y en sus respectivos casos de uso, con la diferencia que aquí se han agregado unos cuantos pasos más, los cuales se utilizan para agregarle seguridad al sitio. Figura 45. Reseteo de contraseña. Solo es necesario poner el nombre de usuario y presionar Olvido Contraseña para poder resetearla Figura 46. Pregunta secreta. El usuario debe responder bien para poder proseguir. Figura 47. Actualización de contraseña. El usuario después de escribir la respuesta correcta podrá actualizar el password de su cuenta. 70 7.2 SISTEMA LOCAL Al igual que el gestor remoto de control, este sistema esta basado completamente en los casos de uso. Las pantallas que se muestran a continuación hacen una navegación a través del mapa del sitio propiamente dicho. Figura 48. Inicio. La figura nos muestra la pantalla de bienvenida del sistema, esta nos pedirá posteriormente el usuario y el password de administración para poder acceder a cualquiera de sus otras pestañas. Figura 49. Seguridad La figura nos muestra el sistema de seguridad integrado al sistema local, el cual nos pide el usuario y el password de administración. Figura 50. Controles X10. Nombre de. la primer ventana de control del sistema, en la cual se podrán ejecutar los casos de uso de apagar y encender dispositivo. A 71 Figura 51. Módulos X10. Modulo basado en los casos de uso de agregar dispositivos. Este mantenimiento esta basado en los casos de uso de agregar, borrar y modificar dispositivo. Figura 52. Eventos. Modulo basado en los casos de uso de agregar manipulación de eventos, tiene las mismas propiedades descritas en dichos casos de uso: agregar, borrar y/o modificar evento. Figura 53. Conexión. Este módulo no esta contemplado en los casos de uso y sirve para la configuración del puerto serial. Esta viene configurada con las propiedades por defecto que hacen que sin mayor modificación el sistema funcione. Figura 54. Ayuda X10. No esta baso en ningún caso de uso específico. Hace únicamente una descarga del manual de usuario. A 72 7.3 SINCRONIZACIÓN DE DATOS Para finalizar la demostración de la solución se muestran a continuación las pantallas que acompañan a los casos de uso para la conexión a Internet del sistema y así mismo la sincronización de datos. Valga la aclaración que la mayor parte de los procesos el usuario no los verá debido a que el sistema hará automáticamente toda la sincronización una vez ingresado el usuario que utiliza este utiliza al momento de lograrse por Internet. Con estas ultimas presentaciones, aunque no muestran una mayor visibilidad son los mantenimientos que hacen posible la sincronización de trabajo entre el sistema remoto con el sistema local. Figura 55. Acceso de control. Esta pantalla nuevamente esta basada en los casos de usos, y lo único que tendrá que hacer el cliente es escribir su nombre de usuario y contraseña que ocupa para logearse en el sitio de Internet. Si aprueba la selección entonces se autoriza el control de dispositivos. Figura 56. Activación de acceso. En esta pantalla se muestra activado el control de acceso, y se desactiva presionando el botón de desactivar. 73 Ya que se hace un trabajo asíncrono, el diagrama final de intercambio de información quedará esquematizado de esta forma: De esta forma se completa la implementación del análisis y diseño del sistema, cubriendo así todos los objetivos planteados en el presente documento. Envío de Información Envío de Información Envío de actualización Figura 57. Diagrama de solución final. Podemos ver como el usuario remoto solamente puede enviar órdenes al servidor, tales como modificación de eventos, etc. Por otra parte el usuario local puede intercambiar los archivos de configuración de un lado para otro. Usuario Remoto Usuario Local 74 CAPITULO VII 8.1 PRESUPUESTO El presupuesto de implementación del proyecto es el siguiente: Kit Básico $110 + IVA, e incluye: COSTO DE IMPLEMENTACIÓN PARA EL CLIENTE Articulo Precio Kit Básico $110 Lamp Module Appliance Module CM11A Software cliente Total $110 Tabla 1. Presupuesto Cliente COSTO DE IMPLEMENTACIÓN PARA EL SERVIDOR Articulo Precio Servidor $1,500 Licencias $0 Desarrollo Horas Hombre 2 $4,800 Sub-Total $6,300 100 Kits de usuario final $90 (por unidad) Sub-Total $900 Total $7900 Tabla 2. Presupuesto servidor 2 Esto es por cuatro meses de trabajo con 2 desarrolladores a $600 c/u 75 8.2 CONCLUSIONES El software desarrollado para esta tesis es capaz de controlar los dispositivos X10 tanto de forma local como remota sin la necesidad de tener una IP estática y a través de un acceso centralizado. Se cumplieron los requisitos de ocupar código abierto, sin necesidad de estar atado a una plataforma específica, que aunque para objetos de demostración nos apegamos a un sistema operativo, el sistema es capaz de adaptarse a cualquier plataforma de desarrollo. Comprobamos las ventajas del código abierto, pues cualquier persona puede manejar el código de acuerdo a sus necesidades, pues se utilizaron herramientas GNU para el desarrollo de la plataforma, en búsqueda de soluciones económicas para la realización del proyecto. El usuario tiene una interfaz agradable, intuitiva y fácil de usar para controlar y programar los dispositivos X10 de modulo de lámpara y de modulo de electrodoméstico, dando la pauta para que futuros programadores puedan agregar nuevos módulos y nuevos equipos X10, tomando como base nuestro proyecto. 76 8.3 RECOMENDACIONES Se podrían desarrollar controles para los diferentes dispositivos X10, como lo son censores, cámaras de video y sistemas de seguridad que ocupan una diferente perspectiva de programación, pero que se pueden añadir a los módulos creados. Implementar al proyecto un instalador para plataformas Unix (BSD, GNU/Linux, etc.), Macintosh, Solaris y otras, con la finalidad de tener la opción de escoger la plataforma que posea el cliente. Poseer en la vivienda o empresa, en donde se implemente el proyecto, un sistema de respaldo de corriente para mantener en constante comunicación con la unidad de control y al mismo tiempo implementar un sistema de recuperación de fallas automático para que el equipo pueda estar siempre activo. Al estar trabajando con un servidor en un sistema centralizado, un ISP podría implementar un sistema de mensajerías más eficiente, mediante distintos tipos de notificaciones hacia el usuario, ya sea un correo electrónico o un mensaje al celular al momento que ocurra algún fallo, algún evento inesperado en el sistema, la activación de algún sensor de movimiento o simplemente con la notificación de algún evento programado realizado con éxito, todo esto a elección de activación por parte del usuario. Para un uso mas comercial, se podría desarrollar todo un sistema gerencial del lado del servidor, que pueda manejar, no solo las sesiones de los empleados, sino que en base a la proyección que deja la base de datos, se podrían aprovechar la estructura de los roles que se plantea en el documento, así como el desarrollo de mas módulos de trabajo para los distintos roles, generadores de reportes, entre otros. 77 8.4. FUENTES DE INFORMACIÓN LIBROS DE CONSULTA o X10 PRO – security & Automation for the Professional (2005). Manual de referencia. o Morales, C.R., Serrano F.V. y Lozano C.C., (2005). Domótica e Inmotica – Viviendas y Edificios Inteligentes. Alfaomega RA-Ma, Mexico. o Steven Holzner, (2003). Java 2. Anaya Multimedia, Mexico. MATERIAL CONSULTADO EN INTERNET - X10 Wireless Technology, Inc. (2007). X10 Home Solution. Seattle, USA. [Documento WWW]. URL http://www.x10.com. - Domótica Viva, S.L. (2007). Domótica Viva. Integración de sistemas con domotica avanzada. Barcelona, España. [Documento WWW]. URL http://www.domoticaviva.com/temas.htm. - Home Systems (2005). Home Systems - Domotica y Sistemas de Control. Madrid, España. [Documento WWW]. URL http://www.homesystems.es - Hogar Digital S.L. (2007). Domotica Net - Edificios y casas inteligentes. Madrid, España. [Documento WWW]. URL http://www.domotica.net - X10 Wireless Technology, Inc. (2007). X10 Home Solution. Seattle, USA. [Documento PDF]. URL ftp://ftp.x10.com/pub/manuals/technicalnote.pdf 78 8.5 GLOSARIO DE TÉRMINOS Ambiente Web: Es un sistema informático desarrollado con lenguajes de programación especialmente orientados a servicios de Internet. Atenuación: se denomina atenuación de una señal a la pérdida de potencia sufrida por la misma al transitar por cualquier medio de transmisión. Domótica: El término domótica proviene de la unión de las palabras domus (que significa casa en latín) y robótica (de robota, que significa esclavo, sirviente en checo). Se entiende por domótica al conjunto de sistemas capaces de automatizar una vivienda, aportando servicios de gestión energética, seguridad, bienestar y comunicación, y que pueden estar integrados por medio de redes interiores y exteriores de comunicación, cableadas o inalámbricas, y cuyo control goza de cierta ubicuidad, desde dentro y fuera del hogar. Se podría definir como la integración de la tecnología en el diseño inteligente de un recinto. Estándar de facto: Es aquel patrón o norma que se caracteriza por no haber sido consensuada ni legitimada por un organismo de estandarización al efecto. Por el contrario, se trata de una norma generalmente aceptada y ampliamente utilizada por iniciativa propia de un gran número de interesados. Free Software: Traducción del Inglés de Software libre. Es un software que no requiere de una licencia pagada para poder ser utilizado. GNU: Proyecto nacido en 1984 para desarrollar un sistema operativo similar a UNIX, pero bajo el concepto de software libre. En sí, GNU es un acrónimo recursivo que significa "GNU No es Unix". ISP: Siglas que significan Internet Services Provider ó Proveedor de servicios de Internet. Básicamente un ISP es una compañía que permite a sus usuarios tener acceso a Internet, normalmente a través de líneas telefónicas. 79 Módulo de Gestión Local: En este proyecto en particular se define como módulo de gestión local al software instalado en la computadora del usuario final que permitirá controlar los dispositivos X10 instalados en la misma red electrónica local donde está instalada dicha computadora. Módulo de Gestión remota: En este proyecto en particular se define como el software que permitirá la manipulación de los dispositivos domóticos sin la necesidad de estar frente al gestor local. Open Source: Traducción del Inglés de Código Abierto. Los programas de código abierto son aquellos cuyo código raíz puede ser modificado por cualquier persona. Power Line Carrier (PLC): Traducción al inglés de Trasmisor sobre línea de corriente. Protocolo de comunicaciones: Es el conjunto de reglas que especifican el intercambio de datos u órdenes durante la comunicación entre las entidades que forman parte de una red. Protocolo de Internet (IP): Es un protocolo no orientado a conexión usado tanto por el origen como por el destino para la comunicación de datos a través de una red de paquetes conmutados. Protocolo X10: Es un protocolo de comunicaciones para el control remoto de dispositivos eléctricos. Utiliza la línea eléctrica (220V o 110V) para transmitir señales de control entre equipos de automatización del hogar en formato digital. PYME: Acrónimo de Pequeñas y Medianas Empresas Ruido: se considera ruido a todas las perturbaciones eléctricas que interfieren sobre las señales transmitidas o procesadas. 80 Servidor central: En este proyecto en particular es en el servidor donde estará almacenada la base de datos, servicios de red. También estarán instalados los servicios de gestión remota y además será la puerta de enlace entre el módulo de gestión remoto y local para el manejo de los dispositivos X10. SMTP: Protocolo simple de transferencia de correo (Simple Mail Transfer Protocol). Es un protocolo utilizado para enviar correo electrónico en Internet. 81 Versión Windows 200/NT/Xp ¡BIENVENIDOS AL FACINANTE MUNDO DE LA DOMOTICA EN TU CASA! En el siguiente manual aprenderemos a: • Configurar el servidor Web para el control de los módulos X10. • Agregar dispositivos X10 dentro de tu hogar. • Crear eventos programados para sus dispositivos eléctricos. Entusiasta del software libre y desarrollador de Software. Te damos la bienvenida a nuestro software GNU de desarrollo