Está en la página 1de 176
PROGRAMACIÓN DOMÓTICA BASADA EN SISTEMAS EXPERTOS TRABAJO PROFESIONAL EN INGENIERÍA EN INFORMÁTICA Laboratorio de
PROGRAMACIÓN DOMÓTICA BASADA EN SISTEMAS EXPERTOS TRABAJO PROFESIONAL EN INGENIERÍA EN INFORMÁTICA Laboratorio de

PROGRAMACIÓN DOMÓTICA BASADA EN SISTEMAS EXPERTOS

TRABAJO PROFESIONAL EN INGENIERÍA EN INFORMÁTICA

Laboratorio de Sistemas Inteligentes Facultad de Ingeniería Universidad de Buenos Aires

Alumno: Guillermo Luis FRÍAS

Directores: Prof. Dr. Ramón GARCIA MARTINEZ Prof. M. Ing. Hernán MERLINO Prof. M. Ing. Enrique FERNANDEZ

Septiembre 2009

Programación Domótica Basada en Sistemas Expertos

Indice

1. RESUMEN

1

2. INTRODUCCIÓN

2

2.1. COMPONENTES DEL SISTEMA

3

2.2. TIPOS DE ARQUITECTURA

3

3. PRESENTACIÓN DEL PROBLEMA

4

4. OBJETIVO DEL TRABAJO PROFESIONAL

4

5. ÁREA DE APLICACIÓN

4

6. PRODUCTOS EXISTENTES EN EL MERCADO

5

6.1.

TABLA COMPARATIVA

7

7. REQUISITOS DEL SISTEMA

8

8. SOLUCIÓN PROPUESTA

9

9. CASOS DE VALIDACIÓN

13

9.1. ENCENDER LAS LUCES DEL LIVING A LAS 22:15 HORAS

13

9.2. ENCENDER REGADORES DEL PATIO Y ABRIR EL PORTÓN DEL GARAGE

24

9.3. REDUCIR LA TEMPERATURA DEL DORMITORIO EN 2°C SI LA MISMA SUPERA LOS 23°C

30

10. CONCLUSIÓN

40

11. REFERENCIAS

41

A. METODOLOGÍA

42

A.1. DESARROLLO DE SISTEMAS DE INFORMACIÓN

42

A.1.1. Estudio de Viabilidad del Sistema (EVS)

42

A.1.1.1.

Establecimiento del alcance del sistema

42

A.1.1.2.

Estudio de la Situación Actual

45

A.1.1.3.

Definición de los requisitos del sistema

50

A.1.1.4.

Estudio de Alternativas de Solución

52

A.1.1.5.

Valoración de las Alternativas

58

A.1.1.6.

Selección de la Solución

61

A.1.2.

Análisis del Sistema de Información

63

A.1.2.1.

Definición del Sistema

63

A.1.2.2.

Establecimiento de Requisitos

70

A.1.2.3.

Identificación de Subsistemas de Análisis

75

A.1.2.4.

Análisis de los Casos de Uso

80

A.1.2.5.

Análisis de las Clases

82

A.1.2.6.

Elaboración del Modelo de Datos

92

A.1.2.7.

Elaboración del Modelo de Procesos

92

A.1.2.8.

Definición de Interfases de Usuario

92

A.1.2.9.

Análisis de Consistencia y Especificación de Requisitos

105

A.1.2.10.

Especificación del Plan de Pruebas

106

A.1.2.11.

Aprobación del Análisis del Sistema de Información

110

A.1.3.

Diseño del Sistema de Información

111

A.1.3.1.

Definición de la Arquitectura del Sistema

111

A.1.3.2.

Diseño de la Arquitectura de Soporte

116

A.1.3.3.

Diseño de los Casos de Uso Reales

116

A.1.3.4.

Diseño de Clases

117

Programación Domótica Basada en Sistemas Expertos

A.1.3.5.

Diseño de la Arquitectura de Módulos del Sistema

126

A.1.3.6.

Diseño Físico de Datos

126

A.1.3.7.

Verificación y Aceptación de la Arquitectura del Sistema

131

A.1.3.8.

Generación de las Especificaciones de Construcción

132

A.1.3.9.

Diseño de la Migración

134

A.1.3.10.

Especificación Técnica del Plan de Pruebas

135

A.1.3.11.

Establecimiento de Requisitos de Implantación

137

A.1.3.12.

Aprobación del Diseño del Sistema de Información

139

A.1.4.

Construcción del Sistema de Información

140

A.1.4.1.

Preparación del Entorno de Generación y Construcción

140

A.1.4.2.

Generación del Código de los Componentes y Procedimientos

159

A.1.4.3.

Ejecución de las Pruebas Unitarias

159

A.1.4.4.

Ejecución de las Pruebas de Integración

161

A.1.4.5.

Ejecución de las Pruebas de Sistema

169

A.1.4.6.

Elaboración de los Manuales de Usuario

171

A.1.4.7.

Definición de la Formación de los Usuarios Finales

171

A.1.4.8.

Construcción de los Componentes y Procedimientos de Migración y Carga Inicial de

los Datos

172

A.1.4.9. Aprobación del Sistema de Información

173

Programación Domótica Basada en Sistemas Expertos

1. Resumen

Los actuales soluciones para la programación de los sistemas de hogar (domóticos) existentes en el mercado tienden a mejorar la calidad de vida de los habitantes de una vivienda, proveyendo comodidades para la activación o ajuste de dispositivos a través de controles remotos que requieren de la acción de un individuo.

Dichas soluciones, sin embargo, se tornan demasiado complejas para el usuario promedio si se intenta que el grado de automatización involucre a varios dispositivos, siendo necesarios conocimientos técnicos en sistemas electrónicos y/o de información.

El proyecto en cuestión brinda una solución a la programación de los distintos dispositivos del hogar mediante una forma gráfica e intuitiva para el usuario (convirtiendo los gráficos en reglas ejecutables por un sistema experto) y provee al mismo tiempo una interfaz para su control y verificación en forma remota.

Programación Domótica Basada en Sistemas Expertos

2. Introducción

El término domótica proviene de la unión de las palabras domus (en latín, casa ) y tica (en griego, que funciona por sí misma ). Dicho término agrupa a todas aquellas soluciones destinadas a automatizar ciertos procesos de la vida cotidiana dentro del hogar, entre los que se destacan seguridad, confort, comunicación y ahorro de energía. Para poder llevar a cabo estas funciones, los diversos dispositivos se encuentran interconectados por medio de redes interiores y exteriores de comunicación, cableadas o inalámbricas, y cuyo control goza de cierta comodidad y ubicación conveniente, dentro y fuera del hogar.

De acuerdo a [2], se denomina “Domótica” o Automatización del Hogar a la aplicación de nuevas soluciones tecnológicas basadas en la electrónica y en las telecomunicaciones al ambiente doméstico, con el objetivo de mejorar dispositivos existentes y proveer un mayor número de servicios de utilidad doméstica.

La domótica surgió en los años 70, con el fin de interconectar dispositivos de iluminación y seguridad, otorgando un nivel básico de automatización al usuario. Dicha interconexión persigue como resultado la asistencia y la simplificación de las condiciones de confort para todos sus usuarios.

La domótica tiene diversos usos, entre los cuales se destacan:

Ahorro energético: puede ser alcanzado de diversas maneras, no sólo a través de la instalación de equipos que consuman menos sino también gracias al manejo eficiente de los mismos.

o

Climatización: programación de encendido/apagado de equipos y temperaturas de uso.

o

Racionalización eléctrica: encendido/ajuste/apagado de equipos eléctricos de iluminación y entretenimiento.

Comfort: abarca todos los comportamientos que mejoren la comodidad de los

habitantes de la casa. Esos comportamientos pueden ser activos, pasivos o mixtos.

o

Iluminación: encendido/ajuste/apagado de luces.

o

Generación de macros o programas de forma sencilla para el usuario.

o

Control vía internet

o

Automatización de equipos

Programación Domótica Basada en Sistemas Expertos

Seguridad: comprende las funciones de protección tanto de bienes personales como de sus habitantes.

o

Simulación de presencia

o

Cerramiento de la propiedad

Comunicaciones : la vivienda se comunica con el exterior tanto para regular su control como para notificar de eventos generados.

o

Control por internet vía PC, PDAs o teléfonos celulares

o

Notificación de alarmas

2.1. Componentes del sistema

Controlador: es el dispositivo informático (generalmente una PC) y el conjunto de software que se encarga de recibir las señales provenientes del actuador, procesarlas y generar y transmitir las órdenes apropiadas a los actuadores adecuados.

Sensor: dispositivo que mide una cantidad física y la convierte en una señal eléctrica que puede ser leída por el controlador.

Actuador: componente que se encarga de transformar una señal eléctrica en una acción, generalmente mecánica sobre otro elemento físico.

2.2. Tipos de arquitectura

Desde el punto de vista de donde reside la inteligencia del sistema domótico, existen tres enfoques principales:

Centralizada: un control central recibe información de los distintos sensores y, una vez procesada, genera y transmite las órdenes adecuadas a cada actuador.

Distribuida: la inteligencia del sistema está ubicada en los sensores y actuadores.

Mixta: existen varios dispositivos capaces de recopilar la información de los sensores y transmitir órdenes al resto de los dispositivos.

Programación Domótica Basada en Sistemas Expertos

3. Presentación del Problema

Muchas de las soluciones domóticas existentes en el mercado tienden a mejorar la calidad de vida de los habitantes de una vivienda, proveyendo comodidades para la activación o ajuste de dispositivos a través de controles remotos que requieren de la acción de un individuo. Los ajustes automáticos se reducen a activaciones producto de temporizadores en dispositivos puntuales tales como el aire acondicionado o el DVR (Digital Video Recorder, Grabador de Video Digital). Si se intenta que el grado de automatización involucre a dos o más dispositivos, gran parte de las opciones disponibles requieren conocimientos técnicos de programación y/o electrónica. Además, las capacidades de visualizar el estado de la vivienda o agregar nuevos programas estando fuera del hogar, resultan limitadas. Por ello, queda en evidencia la necesidad de un sistema que permita automatizar (de modo sencillo para un usuario medio) tareas que involucren a varios dispositivos y que permita decidir las condiciones de activación de dichas tareas tales como hora, condiciones externas, etc. tanto desde el hogar como en una ubicación remota.

4. Objetivo del Trabajo Profesional

El Objetivo del presente Trabajo Profesional es desarrollar un sistema que permita programar la automatización de equipos de domótica vía web, representando dicha programación como diagramas de flujo, los cuales se traducirán a código ejecutable de un sistema experto quien será el encargado de actuar sobre los equipos según las condiciones sensadas en las variables del ambiente. En este trabajo, no habrá una conexión real con dichos artefactos sino que los mismos se simularán con un programa con interfaz gráfica.

5. Área de Aplicación

La aplicación está destinada a todo usuario avanzado/semi avanzado de equipos de automatización del hogar o la oficina, que no tenga conocimientos de programación más allá de diagramas de flujo y que desee programar sus equipos más allá del nivel básico que otorgan las interfaces de usuario de cada uno de ellos.

Programación Domótica Basada en Sistemas Expertos

6. Productos existentes en el mercado

X10: estándar internacional abierto para la comunicación entre dispositivos, utilizado en domótica. Utiliza fundamentalmente las líneas eléctricas para señalización y control, aunque define también un protocolo de transporte inalámbrico. Fue desarrollado en 1975 por Pico Electronics, Escocia para permitir el control remoto de artefactos en el hogar. Fue la primera tecnología de propósito general para redes domóticas y aún sigue siendo la más utilizada. Pueden conectarse hasta 256 dispositivos, aprovechando un espacio de direcciones de 8 bits. Este estándar puede considerarse un método de conexión y comunicación de equipos, que aprovecha la red eléctrica para sus comunicaciones, por lo cual no requiere la instalación de un cableado original, reduciendo costos pero también al mismo tiempo podría ser considerado un método de control básico de equipos: por ejemplo, si se pretende prender y apagar una luz en forma remota, basta con conectar

a la lámpara a un dispositivo X10 y a éste último a la red eléctrica, otorgándole un código único dentro de la casa y del otro lado, se conecta otro artefacto compatible con X10, el cual pueda enviar señales para el código de la lámpara. Desde este punto de vista, puede considerarse que X10 otorga una forma de programación básica y de fácil instalación pero al mismo tiempo, bastante limitada.

HEYU: es un programa de consola para Linux y otras Sistemas Operativos derivados de UNIX (Mac OS X, FreeBSD, Solaris, entre otros) para el control de luces y dispositivos en la oficina y el hogar. El sistema es capaz de interactuar con equipos X10, temporizar acciones y de monitorear/registrar los eventos generados.

El software permite asimismo generar scripts de acciones para su posterior ejecución.

En resumen, HEYU actúa como controlador a los sensores y actuadores basados en el protocolo X10, brindando cierto grado de automatización pero teniendo la limitación de ser un producto para línea de comandos con lo cual el espectro de posibles usuarios queda restringido de gran manera. Del mismo modo, cuenta con el inconveniente que es difícil de operar y monitorear en forma remota, cuando el usuario se encuentra

fuera de su casa.

Home Control System (HCS) de Home Automation, Inc (HAI) : este sistema propietario puede funcionar como sistema centralizado (comprando un equipo de hardware que

Programación Domótica Basada en Sistemas Expertos

actúa como módulo central) o como sistema distribuido (ciertos equipos pueden actuar de forma localizada y autónoma). HCS permite la temporización de acciones, el envío de notificaciones y el control de funciones de seguridad, ahorro de energía y entretenimiento. Puede ser operado mediante una interfaz gráfica táctil (que se compra por separado) o vía telefónica. En forma opcional puede ser controlado con control remoto a través de una PC que corra Windows Media Center o vía internet mediante software adicional. En pocas palabras, HCS es un sistema altamente configurable y escalable, a costa de requerir equipo específico de hardware para poder funcionar y software adicional para poder realizar muchas de las tareas que HEYU no permite.

ExDomus: es un software para el Media Center de Windows XP/Vista que permite controlar luces, cortinas, calentadores, cámaras, sistemas de seguridad, etc. usando como protocolo de conexión X10 o KNX, según la versión. Permite la temporización de acciones así como también la ejecución de acciones disparadas por un evento externo, tal como la activación de la alarma. Se trata de un software pago (aunque cuenta con una versión básica gratuita) que permite automatizar ciertas tareas pero dentro del ámbito del hogar (no cuenta con herramientas para la programación o visualización de eventos en forma remota).

Programación Domótica Basada en Sistemas Expertos

6.1. Tabla comparativa

 

X10

HEYU

HCS

 

ExDomus

Arquitectura

Distribuida

Centralizada

Centralizado o Distribuido, si se dispone de pocos dispositivos a automatizar

Centralizada

 

(instalación

 

individual de

equipos)

Facilidad

de

Alta (con sólo

Baja. Requiere

Media

Medio

 

instalación

conectar

los

experiencia en

 

equipos a la red eléctrica y asignarles un código único salen funcionando)

entornos UNIX

(manejo de

Shell scripting y compilación a

partir

del

código fuente)

Facilidad

de

Media.

A

Baja.

Alta

Media Alta

 

uso

través

de

 

múltiples

controles

remotos

Método

de

Controles

No

posee

Se utiliza un control remoto que se comunica con PC Windows Media Center

una

con

Se

utiliza

un

control

remotos X10

interfaz gráfica, es un programa de

línea

de

control remoto

que

se

comunica con

PC

una

con

comandos

Windows Media

Center

 

Control

No disponible

No disponible

Vía telefónica,

No disponible

remoto (fuera

sin

software

en

forma

celulares

o,

del hogar)

adicional

nativa

con software

adicional, vía

Internet

Facilidad

de

Alta

Media.

Alto

Media

 

programación

Requiere

 

generar scripts

Poder

de

Bajo

(muy

Medio Alto

Alto

Media

(se

programación

básico)

pueden generar

secuencias de

acciones desde

la

interfaz

gráfica)

 

Temporización

Sólo utilizando

Si

Si

(en

las

de acciones

equipos

versiones pagas

adicionales

del software)

 

Registro

de

No disponible

Si

No disponible

eventos

sin

software

adicional

Programación Domótica Basada en Sistemas Expertos

7. Requisitos del Sistema

a. Sistema de control domótico centralizado

b. Facilidad de instalación

c. Facilidad de uso, a través de una interface gráfica sencilla pero poderosa

d. Interfaz gráfica como modo de control

e. Visualización y control tanto local como remoto (vía Internet)

f. Simplicidad de programación

g. Capacidad de temporizar acciones

h. Registro de eventos

i. Posibilidad de activar programas por la llegada de señales externas (alarma por ejemplo)

Programación Domótica Basada en Sistemas Expertos

8. Solución Propuesta

Basada en Sistemas Expertos 8. Solución Propuesta La solución propuesta consta de las siguientes

La solución propuesta consta de las siguientes partes:

Programación Domótica Basada en Sistemas Expertos

1. Generador gráfico de programas para la automatización de la casa (editor de diagramas), que puede ser accedido vía Internet desde cualquier lugar

En el trabajo profesional, se decidió que para que este componente cumpliese con el

requisito e, la alternativa más conveniente era desarrollar un programa capaz de ser

accesible mediante un navegador web. Teniendo en cuenta los requisitos cdf, se

decidió que, para mejorar la facilidad de uso, el programa debía estar basado

fuertemente en la manipulación de elementos gráficos. Por ello, se optó por la

programación a partir de la construcción de diagramas de flujo, cuyo concepto es

similar a diagramas aprendidos durante el colegio secundario, con lo cual el grado de

instrucción para su uso inicial se ve reducido considerablemente. Cada diagrama es

almacenado en un servidor dentro de la casa para su eventual posterior edición desde

cualquier lugar. Paralelamente, se convierte el diagrama en un programa ejecutable

(ver 2).

Dentro de las posibilidades para

desarrollo web, se decidió por el

desarrollo utilizando la plataforma

web de Adobe Air/Flex, debido a su

madurez en el mercado, la

documentación disponible, la facilidad

y poder para el desarrollo y la calidad

de los productos construidos bajo la misma.

calidad de los productos construidos bajo la misma. 2. Traductor de los diagramas a código ejecutable

2. Traductor de los diagramas a código ejecutable

Este componente del trabajo profesional, tal como fue mencionado brevemente en 1,

es el encargado de convertir los diagramas de flujo en código ejecutable. Las opciones

disponibles en el mercado para generación de código van desde la generación de un

programa a partir de un lenguaje estructurado tal como C, pasando por lenguajes

orientados a objetos como Java o C++ y lenguajes de sistemas expertos.

Los lenguajes orientados a objetos fueron rápidamente descartados, debido a que los

diagramas de flujo modelan algoritmos que son rápidamente encapsulados dentro de

una única clase (con lo cual las ventajas de abstracción/encapsulamiento al utilizar

múltiples clases queda perdida).

Programación Domótica Basada en Sistemas Expertos

Los lenguajes de sistemas expertos tienen la ventaja de que pueden generar reglas del

estilo SI PRECONDICION ENTONCES POSTCONDICION, que son justamente el tipo de

estructuras que aparecen en forma predominante en los diagramas que se generarán.

Si bien esto también puede hacerse con un lenguaje estructurado, la generación de

reglas SI ENTONCES es una representación más natural. Los lenguajes de sistemas

expertos tienen, respecto a los estructurados, una ventaja adicional: al generar un

programa, el motor del sistema experto tiene herramientas para realizar una ejecución

regla por regla lo cual no sólo facilita la depuración al momento del desarrollo sino que

también provee facilidades para detectar cuando un programa entra en un bucle

infinito (las condiciones de corte no ocurren nunca), esto último es un requisito

fundamental para que la unidad descrita en 3 cumpla eficientemente con su función.

Dentro de los lenguajes de sistema experto, existen distintas opciones, pero se decidió

finalmente por CLIPS por su extensa documentación online, robustez y madurez de la

plataforma, facilidad de integración en múltiples lenguajes, además de la existencia de

múltiples ejemplos de aplicación.

3. Ejecutor de los programas, activados cuando se cumplan las condiciones de inicio definidas por el usuario

De los requisitos g e i se deduce que aquella unidad encargada de ejecutar los

diagramas debe estar disponible las 24 horas del día los 7 días de la semana, con lo

cual dicha unidad deberá estar activa todo el tiempo en un servidor en el hogar. A

medida que se vayan cumpliendo las condiciones de cada programa (hora o día de la

semana, llegada de un evento externo como la activación de la alarma), se encargará

de ejecutar cada programa generado por 2. Es por ello que contará con una instancia

del motor del sistema experto. Esta unidad, se encargará además, de recibir las

notificaciones de eventos provenientes de 5 y de indicarle a éste mismo que acciones

tomar (cambiar temperatura en living, abrir portón, etc.).

4. Simulador que actúe como sustituto de los equipos que se pretenden controlar (actuadores)

Este simulador consiste en una pantalla en donde el usuario puede ver que artefactos

se han ido activando en el hogar así como también ver el registro de los eventos

Programación Domótica Basada en Sistemas Expertos

generados (Requisito h). Si bien este simulador, tal como se dijo en la propuesta del presente trabajo profesional, se desarrolló con el fin de mostrar el resultado de la ejecución de los programas (porque no hay una implementación en dispositivos físicos en la casa) también tiene como finalidad mostrar en una pantalla al usuario el estado actual de la casa. Según los requisitos d y e, este simulador también es una herramienta web, que puede utilizarse desde cualquier navegador, dentro o fuera de la vivienda en cuestión. Por idénticas razones a 1, se desarrolló en Adobe

Flex.

idénticas razones a 1, se desarrolló en Adobe Flex. 5. Emulador de las variables del hogar

5. Emulador de las variables del hogar

Esta unidad se encargará de generar los eventos y valores de variables que en el mundo real provendrían de los sensores. Además, en el mundo real, sería la encargada de comunicarse con los dispositivos reales (termostatos, luces, puertas, etc.) para que realicen las tareas solicitadas por los programas gobernados por 3.

Programación Domótica Basada en Sistemas Expertos

9. Casos de Validación

A continuación, se detallará la construcción de algunos casos de validación (ejemplos de uso) desde la perspectiva del usuario, es decir, la formulación y construcción de los diagramas, la etapa de prueba de los mismos y la verificación de los resultados en el simulador. Hay que destacar que en el servidor debe estar ejecutando los programas correspondientes al inciso 3 y 5 del punto anterior.

9.1. Encender las luces del living a las 22:15 horas

Para poder realizar este programa, es necesario construir un sencillo diagrama, consistente en una figura Comienzo unida a una figura Asignación, unida a una figura Fin. La figura Asignación tiene una llamada a una función que enciende las luces del living a la intensidad deseada.

1. Iniciar el Editor de Diagramas

luces del living a la intensidad deseada. 1. Iniciar el Editor de Diagramas 2. Insertar una

2. Insertar una figura comienzo

Programación Domótica Basada en Sistemas Expertos

Programación Domótica Basada en Sistemas Expertos 3. Mover la figura hasta la ubicación deseada (Mantener

3. Mover la figura hasta la ubicación deseada (Mantener botón izquierdo apretado sobre la figura, mover y luego soltar el botón)

ubicación deseada (Mantener botón izquierdo apretado sobre la figura, mover y luego soltar el botón) 14

Programación Domótica Basada en Sistemas Expertos

4. Configurar las condiciones de inicio del diagrama. Botón derecho sobre la figura Comienzo y seleccionar “Propiedades”

sobre la figura Comienzo y seleccionar “Propiedades” 5. Tildar la opción “A las” para que el

5. Tildar la opción “A las” para que el diagrama se ejecute a la hora especificada. Seleccionar “22” en el cuadro de horas y “15” en el cuadro de minutos. Aceptar para salir del diálogo

“22” en el cuadro de horas y “15” en el cuadro de minutos. Aceptar para salir

Programación Domótica Basada en Sistemas Expertos

6. Insertar una figura Asignación

en Sistemas Expertos 6. Insertar una figura Asignación 7. Mover la figura Asignación 8. Configurar la

7. Mover la figura Asignación

una figura Asignación 7. Mover la figura Asignación 8. Configurar la figura Asignación. Botón derecho

8. Configurar la figura Asignación. Botón derecho sobre la figura y seleccionar “Propiedades”

8. Configurar la figura Asignación. Botón derecho sobre la figura y seleccionar “Propiedades” 16

Programación Domótica Basada en Sistemas Expertos

9. Elegir la función que se pretender ejecutar. Seleccionar “función” en el desplegable.

ejecutar. Seleccionar “función” en el desplegable. 10. Seleccionar “Living” en el desplegable

10. Seleccionar “Living” en el desplegable “Habitación” y “luz” en el desplegable “Función”

10. Seleccionar “Living” en el desplegable “Habitación” y “luz” en el desplegable “Función” 17

Programación Domótica Basada en Sistemas Expertos

11. Seleccionar “intensidad” en el desplegable “Parámetro” y “constante” en el desplegable “Tipo de valor”. Por último ingresar “1” en el cuadro “Valor” y Aceptar dos veces.

“1” en el cuadro “Valor” y Aceptar dos veces. 12. Dibujar una flecha desde Comienzo a

12. Dibujar una flecha desde Comienzo a Asignación. Botón derecho sobre la figura Comienzo y seleccionar “Siguiente”

flecha desde Comienzo a Asignación. Botón derecho sobre la figura Comienzo y seleccionar “Siguiente” 18

Programación Domótica Basada en Sistemas Expertos

13. Elegir como destino de la flecha a la figura Asignación haciendo Click con el botón izquierdo sobre la misma.

a la figura Asignación haciendo Click con el botón izquierdo sobre la misma. 14. Insertar una

14. Insertar una figura Fin

a la figura Asignación haciendo Click con el botón izquierdo sobre la misma. 14. Insertar una

Programación Domótica Basada en Sistemas Expertos

15. Mover la figura Fin. Dibujar flecha desde Asignación a Comienzo por similar procedimiento al punto 12.

a Comienzo por similar procedimiento al punto 12. 16. Guardar el diagrama. 17. Elegir un nombre

16. Guardar el diagrama.

procedimiento al punto 12. 16. Guardar el diagrama. 17. Elegir un nombre para el diagrama creado,

17. Elegir un nombre para el diagrama creado, por ejemplo “living” y Aceptar.

Guardar el diagrama. 17. Elegir un nombre para el diagrama creado, por ejemplo “living” y Aceptar.

Programación Domótica Basada en Sistemas Expertos

18. Probar la ejecución del diagrama actual en el simulador. Abrir el simulador.

diagrama actual en el simulador. Abrir el simulador. 19. En el editor de diagramas, probar el

19. En el editor de diagramas, probar el diagrama actual. (En este modo, se forzará la ejecución sin importar las condiciones de inicio seleccionadas).

sin importar las condiciones de inicio seleccionadas). 20. Verificar el resultado de la ejecución en el

20. Verificar el resultado de la ejecución en el simulador.

las condiciones de inicio seleccionadas). 20. Verificar el resultado de la ejecución en el simulador. 21

Programación Domótica Basada en Sistemas Expertos

21. Activar el diagrama (esto hará que el diagrama se ejecute cuando se cumplan las condiciones especificadas en la figura comienzo).

las condiciones especificadas en la figura comienzo). 22. Seleccionar al diagrama “living” y tildar la

22. Seleccionar al diagrama “living” y tildar la casilla “activado”. Aceptar para finalizar.

comienzo). 22. Seleccionar al diagrama “living” y tildar la casilla “activado”. Aceptar para finalizar. 22

Programación Domótica Basada en Sistemas Expertos

23. A la hora indicada, se verifica que la ejecución del programa fue exitosa.

Basada en Sistemas Expertos 23. A la hora indicada, se verifica que la ejecución del programa

23

Programación Domótica Basada en Sistemas Expertos

9.2. Encender regadores del patio y abrir el portón del Garage

Este programa es similar al anterior aunque muestra la capacidad de establecer secuencias de acciones y cómo se respeta ese orden al momento de la ejecución.

1. Insertar una figura Comienzo.

orden al momento de la ejecución. 1. Insertar una figura Comienzo. 2. Insertar dos figuras Asignación.

2. Insertar dos figuras Asignación.

orden al momento de la ejecución. 1. Insertar una figura Comienzo. 2. Insertar dos figuras Asignación.

Programación Domótica Basada en Sistemas Expertos

3. Insertar una figura Fin.

Basada en Sistemas Expertos 3. Insertar una figura Fin. 4. Unir la figura Comienzo con una

4. Unir la figura Comienzo con una figura Asignación.

4. Unir la figura Comienzo con una figura Asignación. 5. Unir a la primera con la

5. Unir a la primera con la segunda Asignación.

Programación Domótica Basada en Sistemas Expertos

Programación Domótica Basada en Sistemas Expertos 6. Unir a la segunda Asignación con la figura Fin.

6. Unir a la segunda Asignación con la figura Fin.

Programación Domótica Basada en Sistemas Expertos 6. Unir a la segunda Asignación con la figura Fin.

Programación Domótica Basada en Sistemas Expertos

7. Configurar a la primera Asignación.

Sistemas Expertos 7. Configurar a la primera Asignación. 8. Seleccionar “función”. 9. Fijar los regadores

8. Seleccionar “función”.

a la primera Asignación. 8. Seleccionar “función”. 9. Fijar los regadores del patio a intensidad 4,

9. Fijar los regadores del patio a intensidad 4, Aceptar y Aceptar nuevamente.

Seleccionar “función”. 9. Fijar los regadores del patio a intensidad 4, Aceptar y Aceptar nuevamente. 27

Programación Domótica Basada en Sistemas Expertos

10. Configurar a la primera Asignación y elegir “función”.

a la primera Asignación y elegir “función”. 11. Seleccionar “Garage” y “abrirPorton” y luego

11. Seleccionar “Garage” y “abrirPorton” y luego Aceptar dos veces.

y elegir “función”. 11. Seleccionar “Garage” y “abrirPorton” y luego Aceptar dos veces. 28

Programación Domótica Basada en Sistemas Expertos

12. Guardar diagrama con el nombre “abre porton”, por ejemplo.

diagrama con el nombre “abre porton”, por ejemplo. 13. Probar la ejecución del programa 14. Se

13. Probar la ejecución del programa

por ejemplo. 13. Probar la ejecución del programa 14. Se verifica la ejecución del programa, con

14. Se verifica la ejecución del programa, con las acciones especificadas

la ejecución del programa 14. Se verifica la ejecución del programa, con las acciones especificadas 29

Programación Domótica Basada en Sistemas Expertos

9.3. Reducir la temperatura del dormitorio en 2°C si la misma supera los 23°C

Este programa muestra el funcionamiento de una condición lógica y el uso de variables como parámetros de las funciones del sistema.

Para ello,

Comenzar

Asignar el valor de la temperatura del dormitorio a la variable temp.

Comparar si ese valor es mayor a 23

Si es así:

o

Decrementar en 2 el valor de temp

o

Ajustar la temperatura del dormitorio en temp grados.

Fin

(En negrita aparecen las palabras que corresponden a cada figura)

1. Insertar una figura Comienzo.

que corresponden a cada figura) 1. Insertar una figura Comienzo. 2. Insertar tres figuras Asignación 30

2. Insertar tres figuras Asignación

Programación Domótica Basada en Sistemas Expertos

Programación Domótica Basada en Sistemas Expertos 3. Insertar una figura Fin 31

3. Insertar una figura Fin

Programación Domótica Basada en Sistemas Expertos 3. Insertar una figura Fin 31

Programación Domótica Basada en Sistemas Expertos

4. Insertar una figura Condición

en Sistemas Expertos 4. Insertar una figura Condición 5. Unir las figuras como se muestra en
en Sistemas Expertos 4. Insertar una figura Condición 5. Unir las figuras como se muestra en

5. Unir las figuras como se muestra en la siguiente imagen

Expertos 4. Insertar una figura Condición 5. Unir las figuras como se muestra en la siguiente

Programación Domótica Basada en Sistemas Expertos

6. Dibujar la flecha Verdadera desde Condición a la Asignación. Botón derecho sobre la figura Condición y seleccionar “Verdadera”

sobre la figura Condición y seleccionar “Verdadera” 7. Elegir como destino de la flecha a la

7. Elegir como destino de la flecha a la figura Asignación haciendo Click con el botón izquierdo sobre la misma.

Click con el botón izquierdo sobre la misma. 8. Dibujar la flecha Falsa desde Condición al

8. Dibujar la flecha Falsa desde Condición al Fin. Botón derecho sobre la figura Condición y seleccionar “Falsa”

flecha Falsa desde Condición al Fin. Botón derecho sobre la figura Condición y seleccionar “Falsa” 33

Programación Domótica Basada en Sistemas Expertos

9. Elegir como destino de la flecha a la figura Fin haciendo Click con el botón izquierdo sobre la misma.

Click con el botón izquierdo sobre la misma. 10. El diagrama deberá quedar de la siguiente

10. El diagrama deberá quedar de la siguiente manera:

Click con el botón izquierdo sobre la misma. 10. El diagrama deberá quedar de la siguiente

Programación Domótica Basada en Sistemas Expertos

11. Configurar a la Asignación “A”

Escriba en el cuadro de texto el nombre de la variable: “temp” y seleccione en el desplegable “función”

y seleccione en el desplegable “función” Seleccionar la función “obtTemperatura” (obtener

Seleccionar la función “obtTemperatura” (obtener temperatura) de “Dormitorio” y Aceptar dos veces.

Seleccionar la función “obtTemperatura” (obtener temperatura) de “Dormitorio” y Aceptar dos veces. 35

Programación Domótica Basada en Sistemas Expertos

12. Configurar la Condición. Botón derecho sobre la figura Condición y seleccionar “Propiedades”

la figura Condición y seleccionar “Propiedades” En el desplegable superior, elegir “variable”,

En el desplegable superior, elegir “variable”, seleccionar “temp” y Aceptar En el desplegable del medio, seleccionar al operador mayor “>”

del medio, seleccionar al operador mayor “>” En el desplegable inferior, seleccionar “constante”,

En el desplegable inferior, seleccionar “constante”, escribir “23” y dar “Aceptar”

“constante”, escribir “23” y dar “Aceptar” Aceptar nuevamente para establecer las propiedades de

Aceptar nuevamente para establecer las propiedades de la Condición

13. Configurar a la Asignación “B”. Click derecho sobre la figura y elegir “Propiedades”

Programación Domótica Basada en Sistemas Expertos

En el cuadro de texto escribir “temp” y en el desplegable seleccionar “función”

y en el desplegable seleccionar “función” Seleccionar como Habitación a “(General)” y como

Seleccionar como Habitación a “(General)” y como función “resta” Seleccionar como parámetro “minuendo” como tipo de valor “variable” y como nombre “temp”

tipo de valor “variable” y como nombre “temp” Seleccionar como parámetro “sustraendo”, como tipo

Seleccionar como parámetro “sustraendo”, como tipo de valor “constante” y como nombre “2” y Aceptar dos veces.

Programación Domótica Basada en Sistemas Expertos

Programación Domótica Basada en Sistemas Expertos 14. Configurar a la Asignación “C”. Click derecho sobre la

14. Configurar a la Asignación “C”. Click derecho sobre la figura y elegir “Propiedades” Seleccionar “función” en el desplegable. Elegir “Dormitorio” como habitación, “fijarTemperatura” como función, “valor” como parámetro, “variable” como tipo de valor y “temp” como nombre.

“valor” como parámetro, “variable” como tipo de valor y “temp” como nombre. Aceptar dos veces. 38

Aceptar dos veces.

Programación Domótica Basada en Sistemas Expertos

15. Guardar el diagrama, por ejemplo con el nombre “condición”

diagrama, por ejemplo con el nombre “condición” 16. Probar el programa 17. Verificar en el Simulador

16. Probar el programa

con el nombre “condición” 16. Probar el programa 17. Verificar en el Simulador que el programa

17. Verificar en el Simulador que el programa se ejecutó correctamente

el Simulador que el programa se ejecutó correctamente (Se ejecutó la rama verdadera de la condición

(Se ejecutó la rama verdadera de la condición pues en la simulación, el dormitorio inicialmente tiene una temperatura de 24°C)

Programación Domótica Basada en Sistemas Expertos

10. Conclusión

En la presente memoria, se ha hecho una breve introducción a la domótica, los conceptos asociados a la misma, los problemas que ella resuelve, la arquitectura de las posibles soluciones. Se describió la situación que el presente Trabajo Profesional resuelve, cuáles son sus objetivos y la arquitectura de la solución propuesta junto con las justificaciones de las tecnologías adoptadas.

Finalmente, se incluyeron Casos de Validación, que corresponden a ejemplos típicos de uso del sistema, pudiéndose notar que la elaboración de los mismos es sencilla y altamente gráfica, incluso para usuarios poco experimentados.

Como última observación, puede concluirse que el sistema permite una programación flexible y escalable de distintas tareas quedando como línea de expansión para futuros trabajos la implementación de la conexión entre el servidor y los sensores físicos.

Programación Domótica Basada en Sistemas Expertos

11. Referencias

[1] García Martínez, R. y Britos, P. 2004. Ingeniería de Sistemas Expertos. Editorial Nueva Librería. ISBN 987 1104 15 4. [2] Gerhart, J. 1999. Home Automation and wiring. Mc Graw Hill Professional. [3] Karwowski, W. 2006. International Encyclopedia of Ergonomics and Human Factors. CRC Press. [4] Sierra, E., García Martínez, R., Hossian, A., Britos, P. y Balbuena, E. (2006). Providing Intelligent User Adapted Control Strategies in Building Environments. Research in Computing Science Journal, 19: 235 241. [5] Sierra, E., Hossian, A., Britos, P., Rodríguez , D. & García Martínez, R. (2007). Fuzzy Control for Improving Energy Management Within Iindoor Building Environments. Proceedings CERMA 2007 Electronics, Robotics & Automative Mechanics Conference.Pag. 412 416. IEEE Computer Society Press. ISBN 978 0 7695 2974 5. [6] Sierra, E., Hossian, A., García Martínez, R. y Marino, P. (2005). Sistema Experto para Control Inteligente de las Variables Ambientales de un Edificio Energéticamente Eficiente. Proceedings de la XI Reunión de Trabajo en Procesamiento de la Información y Control. Universidad Nacional de Río Cuarto.Pág. 446 452. [7] Sierra, E., Hossian, A., Rodríguez, D., García Martínez, M., Britos, P., García Martínez, R. (2008). Optimizing Building’s Environments Performance Using Intelligent Systems. Lecture Notes on Artificial Intelligence, 5027: 486 491. [8] Velastin, S y otros. 2006. Intelligent distributed video surveillance systems. IET. [9] http://es.wikipedia.org/wiki/Domótica (07/05/09) [10] http://en.wikipedia.org/wiki/X10_(industry_standard) (07/05/09) [11] http://www.exdomus.com (07/05/09) [12] http://www.homeauto.com/P roducts/Products_main.asp (07/05/09) [13] http://www.heyu.org (07/05/09) [14] http://www.smarthome.com/about_x10.html (07/05/09) [15] http://www.xmlme.com/Validator.aspx (validador de XSD al 11/8/09) [16] http://www.csae.map.es/csi/metrica3/index.html (Referencia de Métrica Versión 3 al 11/8/09)

Programación Domótica Basada en Sistemas Expertos

A. Metodología

En el presente apéndice, se describirá el desarrollo del sistema, siguiendo los lineamientos de

la metodología de desarrollo de software Métrica Versión 3.

A.1. Desarrollo de Sistemas de Información