domtica residencial - Universidad San Buenaventura

Anuncio
DISEÑO E IMPLEMENTACIÓN DEL PROTOTIPO DE UN SISTEMA DE
CONTROL POR TCP/IP Y X-10 PARA UN INMUEBLE
Lucero Sabogal Hoyos
Manuel Felipe Torres Santofimio
Oscar Alberto Montaño Piracún
UNIVERSIDAD DE SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
PROGRAMA DE ELECTRÓNICA
BOGOTÁ D.C.
2007
DISEÑO E IMPLEMENTACIÓN DEL PROTOTIPO DE UN SISTEMA DE
CONTROL POR TCP/IP Y X-10 PARA UN INMUEBLE
Lucero Sabogal Hoyos
Manuel Felipe Torres Santofimio
Oscar Alberto Montaño Piracún
Proyecto de grado para optar al título de ingeniero electrónico
Asesor
LUÍS MIGUEL ROMERO
UNIVERSIDAD DE SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
PROGRAMA DE ELECTRÓNICA
BOGOTÁ D.C.
2007
Nota de aceptación:
____________________________________________
____________________________________________
____________________________________________
____________________________________________
____________________________________________
____________________________________________
Firma del presidente del Jurado
____________________________________________
Firma del Jurado
____________________________________________
Firma del Jurado
Bogota D.C., Noviembre 2007
AGRADECIMIENTOS
Agradecemos a Dios, a Camila Torres Sabogal, a nuestros padres, por
Incentivarnos y apoyarnos en el desarrollo de este logro tan importante para el
comienzo de nuestra vida como profesionales y al Ingeniero Luís Miguel Romero,
por aportar su conocimiento en el desarrollo del proyecto, dando un buen uso de
todas las herramientas que conoce y que fueron de vital importancia para el
desarrollo del mismo.
iv
CONTENIDO
Pág.
INTRODUCCIÓN ...................................................................................................19
1. PLANTEAMIENTO DEL PROBLEMA................................................................20
1.1 ANTECEDENTES............................................................................................20
1.1.1 Contexto Internacional: .................................................................................20
1.1.2 Contexto Nacional:........................................................................................23
1.2 DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA ....................................25
1.2.1 Descripción ...................................................................................................25
1.2.2 Descripción y formulación del problema .......................................................26
1.3 JUSTIFICACIÓN..............................................................................................26
1.4 OBJETIVOS DE LA INVESTIGACIÓN ............................................................28
1.4.1 Objetivo general............................................................................................28
1.4.2 Objetivos específicos ....................................................................................28
v
1.5 ALCANCES Y LIMITACIONES DEL PROYECTO ...........................................29
1.5.1 Alcances .......................................................................................................29
1.5.2 Limitaciones ..................................................................................................29
2. MARCO DE REFERENCIA................................................................................30
2.1 MARCO CONCEPTUAL ..................................................................................30
2.1.1 Domótica.......................................................................................................30
2.1.2 Protocolo X-10 ..............................................................................................32
2.1.3 Corrientes portadoras ...................................................................................33
2.2 MARCO LEGAL O NORMATIVO.....................................................................34
2.2.1 FCC (Comisión federal de comunicaciones).................................................34
2.2.2 UL (Underwriters laboratories) ......................................................................35
2.3 MARCO TEÓRICO ..........................................................................................36
2.3.1 Módulos X-10................................................................................................36
2.3.2 Protocolo TCP/IP .........................................................................................36
2.3.3 Direccionamiento IP......................................................................................37
vi
2.3.4 Programación Java .......................................................................................40
2.3.4.1 Desarrollo rápido de aplicaciones ..............................................................41
2.3.4.2 Compiladores Java ....................................................................................42
•
Java Studio Creador .......................................................................................42
•
Java Netbeans................................................................................................43
•
Paquetes adicionales de NetBeans ................................................................43
•
Java development kit ......................................................................................45
2.3.5 Software RS232 Hex Com tool .....................................................................46
2.3.6 Aplicaciones RMI ..........................................................................................46
2.3.6.1 Ventajas de la carga dinámica de código...................................................49
2.3.6.2 Interfaces, objetos y métodos remotos ......................................................49
2.3.6.3 Compilar las fuentes y generar stubs.........................................................50
2.3.6.4 Hacer accesibles las clases en la red ........................................................51
2.3.6.5 Escribir un servidor RMI.............................................................................51
2.3.6.6 Definir el constructor ..................................................................................51
vii
2.3.6.7 Crear un Programa Cliente ........................................................................52
2.3.7 Puerto serial..................................................................................................54
3. METODOLOGÍA ................................................................................................57
3.1 ENFOQUE DE LA INVESTIGACIÓN...............................................................57
3.2 LÍNEA DE INVESTIGACIÓN DE USB / SUB-LÍNEA DE FACULTAD / CAMPO
TEMÁTICO DEL PROGRAMA...............................................................................58
3.3 TÉCNICAS DE RECOLECCIÓN DE INFORMACIÓN .....................................58
3.4 HIPÓTESIS......................................................................................................59
3.5 VARIABLES .....................................................................................................60
3.5.1 Variables Independientes..............................................................................60
3.5.2 Variables Dependientes ................................................................................60
4. PRESENTACIÓN Y ANÁLISIS DE LOS RESULTADOS...................................61
4.1 COMPARACIÓN DE LOS MÓDULOS.............................................................63
4.1.1 Modulo de lámpara X-10 modelo S110110...................................................63
4.1.2 Modulo de lámpara con cable X-10 modelo S110112 ..................................64
4.1.3 Modulo de lámpara stanley modelo Lightmaker 370-2474 ...........................65
viii
4.1.4 Modulo receptor radio frecuencia X-10 modelo S110128 .............................66
4.1.5 Modulo receptor radiofrecuencia RF X-10 modelo PAT01............................67
4.1.6 Modulo receptor de empotrar modelo PAO11...............................................68
4.1.7 Sensor inalámbrico para puertas/ventanas X-10 modelo PDS01 .................69
4.1.8 Sensor de movimiento PR511 ......................................................................70
4.1.9 Interfaz bidireccional PSC05.........................................................................71
4.2 SELECCIÓN Y DESCRIPCIÓN DE LOS MÓDULOS X-10 .............................72
4.2.1 Interfaz CM11A-C .........................................................................................72
4.2.2 Módulo LM465 ..............................................................................................73
4.2.3 Mini Transceiver TM751-C............................................................................74
4.2.4 Sensor de movimiento MS14A-C..................................................................76
4.3 COSTOS Y MATRIZ COMPARATIVA .............................................................77
5. DISEÑO INGENIERIL........................................................................................78
5.1 CONEXIÓN DE LOS MÓDULOS X-10 ............................................................79
5.2 SONDEO DE LOS CÓDIGOS .........................................................................81
ix
5.3 CÓDIGOS HEXADECIMALES PARA OPERAR LOS MÓDULOS X-10 ..........85
5.4 SOFTWARE RS232 HEX COMM TOOL .........................................................88
5.5 DESARROLLO DEL SOFTWARE ...................................................................89
5.5.1 Diagrama de flujo programa cliente ..............................................................90
5.5.2 Diagrama de flujo programa servidor ............................................................92
5.5.3 Diseño y funcionamiento del programa.........................................................93
5.5.4 Descripción del programa cliente..................................................................94
5.5.5 Descripción del programa servidor ...............................................................96
5.5.6 Requisitos para ejecutar el software ............................................................99
5.5.7 Características del software........................................................................100
5.6 ENCENDIDO DEL PC EN FORMA AUTOMÁTICA .......................................100
6. CONCLUSIONES ............................................................................................102
7. RECOMENDACIONES ....................................................................................103
BIBLIOGRAFÍA BÁSICA......................................................................................104
BIBLIOGRAFÍA COMPLEMENTARIA .................................................................106
x
LISTA DE TABLAS
Pág.
Tabla 1. Clase de direcciones IP. ..........................................................................40
Tabla 2. Pines del puerto serial..............................................................................55
Tabla 3. Descripción de puerto serial.....................................................................55
Tabla 4. Interés de sistemas automáticos por estrato............................................61
Tabla 5. Datos técnicos modulo S110110 .............................................................64
Tabla 6. Datos técnicos modulo S110112 .............................................................65
Tabla 7. Datos técnicos modulo stanley ................................................................66
Tabla 8. Datos técnicos modulo receptor de radiofrecuencia ................................67
Tabla 9. Datos técnicos modulo receptor de radiofrecuencia PAT01 ....................68
Tabla 10. Datos técnicos modulo receptor de empotrar ........................................69
Tabla 11. Datos técnicos sensor inalámbrico PDS01 ............................................70
Tabla 12. Datos técnicos sensor de movimiento PR511........................................71
Tabla 13. Presupuesto y costo final de los módulos implementados.....................77
xi
Tabla 14. Comparación de las variables de los módulos y precio. ........................78
Tabla 15. Pines usados en la entrada del cable serial...........................................84
Tabla 16. Pines usados en salida 1 y 2 del cable serial.........................................85
Tabla 17. Funciones por cada Dato hexadecimal. .................................................86
Tabla 18. Dirección y funciones del código para cada módulo. .............................87
Tabla 19. Diferente dirección para cada código de casa .......................................88
xii
LISTA DE FIGURAS
Pág.
Figura 1. Vivienda domótica. .................................................................................31
Figura 2. Portadora de la señal..............................................................................33
Figura 3. La transmisión completa de un código X-10. ..........................................33
Figura 4. Programador Java Studio creator. ..........................................................42
Figura 5. Programador Net beans..........................................................................44
Figura 6. Programa RS232 Hex Comm Tool. ........................................................46
Figura 7. Diagrama RMI.........................................................................................48
Figura 8. Diagrama ejemplo...................................................................................54
Figura 9. Conectores seriales macho y hembra.....................................................54
Figura 10. Modulo de lámpara X-10 modelo S110110...........................................63
Figura 11. Modulo de lámpara X-10 modelo S110112...........................................64
Figura 12. Modulo de lámpara stanley...................................................................65
Figura 13. Modulo receptor de radio frecuencia.....................................................66
Figura 14. Modulo receptor de radio frecuencia PAT01.........................................67
xiii
Figura 15. Modulo receptor de empotrar................................................................68
Figura 16. Sensor inalámbrico PDS01...................................................................69
Figura 17. Sensor de movimiento PR511 ..............................................................70
Figura 18. Interfaz bidireccional PSC05.................................................................71
Figura 19. Home Automation Interfaz, CM11A-C...................................................73
Figura 20. Lamp Module, LM465. .........................................................................74
Figura 21. Preparación del Mini-transceiver, TM751-C..........................................75
Figura 22. Mini-transceiver TM751-C....................................................................76
Figura 24. Instalación de la interfaz. ......................................................................80
Figura 25. Módulos funcionando............................................................................81
Figura 26. Cable cruzado PC-PC...........................................................................82
Figura 27. Terminales del cable cruzado PC-PC. ..................................................83
Figura 28. Extensor del conector serial..................................................................84
Figura 29. Transmisión por el software RS232 Hex Comm Tool ...........................89
Figura 30. Vista principal entorno del programa. ...................................................94
xiv
Figura 31. Inicio línea de código ............................................................................95
Figura 32. Configuración de los botones y la imagen. ...........................................95
Figura 33. Códigos en Hexadecimal. .....................................................................96
Figura 34. Inicio programa servidor. ......................................................................97
Figura 35. Sistemas operativos soportados. ..........................................................98
Figura 36. Configuración del puerto.......................................................................99
Figura 37. Hibernación en Windows XP. .............................................................101
xv
LISTA DE ANEXOS
Pág.
ANEXO A: FEDERAL COMMUNICATIONS COMMISSION (FCC) .....................107
ANEXO B: UNDERWRITERS LABORATORIES (UL) .........................................116
ANEXO C: MANUALES DE USUARIO MÓDULOS X-10 ACTIVEHOME............118
ANEXO D: LINEA DE CODIGO PROGRAMA CONTROLADOR MÓDULOS .....131
xvi
GLOSARIO
Api: Application programmers interface, interfaz de programador de aplicaciones.
RMI: Remote method invocation, Método de invocación remota.
Abstract: Abstracto. Aplicable a clases o métodos.
Array: Variable que posee varias posiciones para almacenar un valor en cada
Array.Vector.
ASCII: Acrónimo en ingles de código estadounidense estándar para el intercambio
de información.
AWT: Abstract Windowing Toolkit, Kit de Herramientas de Ventana Abstracta, es
un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas
independiente de la plataforma original de Java.
Break: Palabra clave que finaliza la ejecución de un bucle o de una instrucción
switch.
Bucles: Tipo de estructura iterativa, que permite repetir un conjunto de
instrucciones un número variable de veces.
BDK: Beans Developer Kit, Conjunto de herramientas para desarrollar JavaBeans.
Bitio: Unidad mínima de información digital que puede tomar los valores lógicos
de 0 o de 1.
xvii
Bloque: Código localizado entre corchetes.
Bolean: Tipo de datos bi-estado, que puede tomar valor de cierto (true) o falso
(false).
Byte: Secuencia de 8 bitios.
Clase: Estructura que define como son los objetos, indicando sus atributos y sus
acciones.
Cadena: Secuencia de caracteres.
Caracter: Símbolo que representa información, o la codificación en una
computadora. Normalmente letras de alfabeto, números o signos ASCII.
Clase base: Clase de la cuál se hereda para construir otra clase, denominada
derivada.
Classpath: Variable de entorno que permite a la máquina virtual Java saber
dónde localizar sus clases.
Constructor: Función especial empleada para inicializar a los objetos, cada clase
posee sus propios constructores.
Dimmer: Regulador de intensidad luminosa.
Domótica: Tecnología que integra todos los aparatos y electrodomésticos de un
hogar con funciones de comunicaciones, seguridad, energía, comodidad, etc.
xviii
Excepcion: Objeto empleado para representar una situación de excepción (error)
dentro de una aplicación Java.
Hibernación: Cuando el PC pasa a un estado de hibernación se guarda una
imagen del escritorio con todos los archivos y documentos abiertos y después, se
apaga el equipo. Al encenderlo, los archivos y documentos se abren en el
escritorio en el mismo estado en que se encontraban anteriormente.
Inmótica: Es la incorporación al equipamiento de edificios de uso terciario o
industrial (oficinas, edificios corporativos, hoteleros, empresariales y similares), de
sistemas de gestión técnica automatizada de las instalaciones, con el objetivo de
reducir el consumo de energía, aumentar el confort y la seguridad de los mismos
JRE: Java Runtime Environment, Entorno de Ejecución Java.
JVM: Java Virtual Machine.
JAVA: Lenguaje orientado a objetos y desarrollado por Sun Microsystem.
Comparte similitudes con C y C++. El principal objetivo de Java es hacer un
lenguaje capaz de ser ejecutado de una forma segura a través de Internet. En el
World Wide Web casi todos los browsers interpretan código Java.
Java Virtual Machine (JVM): El intérprete de Java que ejecuta los códigos de
byte en una plataforma particular.
JavaBeans: Paquete que permite escribir componentes software Java, que se
puedan incorporar gráficamente a otros componentes
xix
Luz: La luz es un fenómeno de naturaleza corpuscular y ondulatoria generado por
unos fotones que se mueven de manera ondulatoria según diversas longitudes de
onda. La velocidad de la luz es de 300.000 Km/seg. Los objetos sobre los que
incide la luz acostumbran a absorber unas determinadas longitudes de onda y
reflejar otras. Las ondas que refleja un objeto son las que le dan el color que
vemos.
Navegador Web: Software que permite al usuario conectarse a un servidor de
Web utilizando Hypertext Transfer Protocol (HTTP). Microsoft Internet Explorer,
Netscape Navigator, HotJava de Sun, son populares navegadores de Web.
Navegador: Navegador Web.
Null: Valor de Java que significa vacío.
Port: (puerto) Número que identifica servicios de Internet. (i.e. Port 23 Telnet, etc).
RF: Radio frecuencia.
String: La clase String es utilizada para mostrar texto; se repasan algunos de sus
métodos más importantes.
Verificador de código de byte: Rutinas en la máquina virtual de Java, que
aseguran que las instrucciones en el archivo de clase no violan ciertas
restricciones de seguridad.
TCP/IP: Transmission Control Protocol/Internet Protocol. Unión de dos protocolos
de comunicaciones. TCP protocolo de control de transmisión, se ocupa del envío y
xx
del orden de los paquetes de información. IP identificación de máquina
(transmisora/receptora). Equivale a un sobre con destinatario y remitente.
Telnet: Protocolo estándar que permite el acceso remoto desde una máquina a
otra, ambas conectadas a Internet.
X-10: Protocolo de comunicación que utilizan los productos compatibles X-10 para
hablarse entre ellos y que le permiten controlar las luces y los electrodomésticos
del hogar, aprovechando para ello la instalación eléctrica existente en casa.
xxi
INTRODUCCIÓN
Los mayores adelantos en tecnología que llegan al mercado están presentando
soluciones como soportes lógicos y protocolos de comunicaciones, razón por la
cual los sistemas inteligentes logran hacer la vida más fácil a personas que se
encuentren con discapacidades y de igual manera a personas que buscan
seguridad y control de su inmueble de una forma muy sencilla y eficiente.
La domótica bien entendida y realmente útil aporta algo más que un simple
encender/apagar, aporta control en el momento y en el tiempo mediante
programación y en la distancia, de forma remota; en Colombia sólo se ha
empleado para las grandes construcciones y edificios, alejando a las viviendas de
los beneficios que solo goza la industria.
En este proyecto se implementará un sistema de control de módulos X-10 desde
Internet; el desarrollo del prototipo tendrá una importancia de acuerdo al estilo de
la persona que lo use. Si el usuario es una persona ocupada y sin tiempo para el
hogar, esta es una herramienta muy eficiente que reducirá costos de energía y
aumentará el nivel de seguridad gracias a una plataforma que se controla desde
cualquier parte del inmueble e incluso desde fuera por Internet.
El programa es desarrollado completamente en el entorno Java orientado a
objetos, a base comandos y librerías que permiten hacer la comunicación serial e
invocación entre el cliente y el servidor vía TCP/IP, facilitando el control del
inmueble desde cualquier lugar del mundo dando al usuario plena seguridad y
control de sus electrodomésticos u otros elementos como bombillos y lámparas.
1. PLANTEAMIENTO DEL PROBLEMA
1.1 ANTECEDENTES
La domótica ya no es solo una idea; existen en la actualidad, y es común verlo
implementado desde su construcción en apartamentos y casas de los estratos
mas altos de la ciudad. De hecho existen compañías que fabrican sistemas para
automatizar hogares y electrodomésticos desde Internet y una variedad de
artículos que hacen que la vivienda permanezca siempre atenta a órdenes de
mando, pues este es el resultado de una idea con un poco más de 30 años de
evolución.
Para el control de procesos y seguridad tanto en viviendas como en al lugar de
trabajo se ha visto la necesidad de instalar sistemas que proporcionen un manejo
a distancia y una completa información del estado en que se encuentran los
inmuebles, siendo estos sistemas de muy alto costo y poco comunes en Colombia.
1.1.1 Contexto Internacional:
En cuanto a la situación internacional el protocolo X-10 de corrientes portadoras
fue desarrollado entre 1976 y 1978 por ingenieros en Pico Electronics Ltd, en
Glenrothes, Escocia.
Proviene de una familia de chips, que son los resultados de los proyectos X (la
serie X). Esta empresa comenzó a desarrollar el proyecto con la idea de obtener
un circuito que se pudiera implementar en un dispositivo para ser controlado
remotamente.
20
El primer módulo podía controlar cualquier dispositivo a través de la línea de
corriente doméstica (120 ó 220 v. y 50 ó 60 Hz), modulando impulsos de 120 KHz
(ausencia de este impulso=0, presencia de este impulso=1).
Con un protocolo sencillo de direccionamiento se podía identificar cualquier
elemento de la red, en total 256 direcciones. El protocolo contemplaba 16 grupos
de direcciones llamados housecodes y 16 direcciones individuales llamadas unit
codes.
A este protocolo se le añadieron tiras de comandos llamados control strings que
no son más que ceros y unos agrupados formando comandos; en total eran 6:
encendido, apagado, reducir, aumentar, todo encendido, todo apagado. Estas
señales las podían recibir todos los módulos, pero sólo actuaba sobre aquel al que
iba. La frecuencia de transmisión era la de la corriente eléctrica (50 ó 60 Hz), y la
señal completa incluyendo dirección y función ocupaba 48 bitios. Se hicieron muy
populares, y hubo un gran distribuidor llamado Radio Shack que los vendió hasta
que en 1979 los fabricó por su cuenta y los llamó Plug 'n' Power, y más tarde X10 1 .
A partir de 1984, cuando ya era evidente que existían suficientes avances
tecnológicos como para integrar y programar aparatos y funciones, sale al
mercado el proyecto de la National Association of Home Builders, llamado Smart
House. El elemento fundamental del Smart House era un sistema de cableado
unificado que reemplazaba a los siete tradicionales de una casa: electricidad,
1
DOMODESK.COM. El sistema estándar X-10. [en línea]. [consultado julio 4 de 2006]. Disponible en:
<http://www.domodesk.com/content.aspx?co=47&t=146&c=43>
21
calefacción, antenas, periféricos de audio-video, teléfono, informática y sistemas
de protección. Como innovación destacaba su sistema de control de circuito
cerrado, que permitía controlar cualquier aparato por medio de una señal
apropiada y conocer en todo momento lo que estaba ocurriendo dentro de la casa.
Otro proyecto destacado fue el Home Manager, de la sociedad Unity Systems Inc.,
fundada en 1983. Su sistema estaba orientado en primer lugar hacia el confort y
adicionalmente hacia el control de la energía y del medio ambiente. Sus
principales aplicaciones en orden a controlar los diferentes aparatos funcionaban
por medio del teléfono y se reducen a apagado/encendido. Un ordenador IBM
central regulaba todas esas funciones por medio del contacto del dedo sobre una
pantalla táctil.
Un tercer sistema de importancia fue el Tranxetext. Se trataba de un sistema que
buscaba ante todo la facilidad para su uso explotando tanto la televisión como el
teléfono. Este sistema estaba inspirado en el modelo telemático francés, aunque
sin Minitel, es decir, un módem integrado en la línea telefónica, y la utilización de
la pantalla del televisor como receptor. Su defecto era la pobreza de los diálogos
telemáticos al estar éstos centralizados en el televisor y no sobre un ordenador.
En cuanto a la Comunidad Europea no tenía una política concreta dirigida
específicamente al hogar inteligente, de ahí que se desarrollaran diferentes
programas como lo fueron el programa ESPRIT (European Scientific Programmer
for Research & Development in Information Technology) el cual era un programa
de investigación cuyo principal objetivo se basaba en crear estándares
ampliamente aceptados a nivel internacional, el programa EUREKA, este fue
creado en 1985 y centraba sus objetivos en crear productos comerciables de las
tecnologías de la información y de las telecomunicaciones, la robótica, los
materiales y las técnicas de montaje entre otros.
22
En Francia, desde 1998, se han venido realizando importantes aportes prácticos
como la Casa Lyon Panorama, proyecto HD2000.
Desde los inicios del nuevo milenio y con los nuevos descubrimientos, el
desarrollo de la domótica, utilizando el protocolo X-10, ha acelerado su
crecimiento dejando ver proyectos tan grandes, costosos y de alta tecnología
como son:
•
Vivienda de demostración de Hidroeléctrica de Cataluña, en Premia de Mar.
•
Proyecto y ejecución de ocho viviendas unifamiliares domóticas / todo
eléctrico situadas en Malla 2 .
Hoy en día, el protocolo X-10 es un estándar y a la vez un fabricante de estos
mismos productos y productos compatibles con X-10 y desde que empezó su
comercialización en el año 1978, millones de instalaciones en todo el mundo
avalan este sistema técnicamente conocido por Power Line Carrier.
1.1.2 Contexto Nacional:
En Colombia desde aproximadamente el año 2001 están trabajando e
incursionando muchas empresas comerciales con ofertas muy interesantes en el
área de los electrodomésticos, de la climatización, del riego y otras, pero todas
ellas provienen de fabricantes extranjeros. En Colombia, no hay suficientes
personas entrenadas para satisfacer las demandas de automatización y
2
CUEVAS, Víctor. Edificios Inteligentes y Casas domóticas. En: Título de la publicación. [en línea].
[consultado Febrero de 2007]. Disponible en:
<http://casafutura.diatel.upm.es/rrssmd/trabajos/2004/word/05_-Edificios y casas inteligentes V_Cuevas>
23
producción, y es poco el interés e importancia que se le da a un tema de
desarrollo con tecnología de punta.
Por otra parte es importante resaltar que estas nuevas tecnologías son poco
asequibles para el consumidor promedio, por ser desarrollos realizados fuera del
país.
24
1.2 DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA
1.2.1 Descripción
A medida que la tecnología avanza, las comunicaciones y los sistemas
informáticos han permitido que la prestación de servicios a través de Internet
cubra las diferentes necesidades de telecomunicación, y a su vez las empresas,
han podido utilizar este medio para la operación de procesos a larga distancia,
generando una modalidad de tele-control.
Sin embargo aunque en Colombia los hogares han encontrado soluciones que
permiten la administración de sistemas instalados, como aparatos, luces o
sensores; ni los equipos ni el soporte de programación son de manufactura propia
del país, aunque si se han encontrado estudios y propuestas en cuanto a equipos
es muy escaso el desarrollo de software y sistemas de comunicación con los
dispositivos eléctricos de las casas.
No se encuentra en el mercado un sistema de monitoreo hecho en Colombia que
brinde seguridad, respaldo y economía para proteger la vivienda.
Por lo tanto, es necesario desarrollar redes privadas para el manejo remoto de los
electrodomésticos y un sistema de monitoreo y control, modelado para la
estructura eléctrica de una vivienda colombiana, utilizando herramientas y
materiales de bajo costo, para suplir la insuficiencia de un sistema domótico
económico en el mercado local.
25
1.2.2 Descripción y formulación del problema
Hoy en día muchos hogares Colombianos desean tener un sistema de seguridad
cuando se van de sus viviendas ya sea de viaje o por el día buscando la forma de
disimular que se encuentra alguien dentro del inmueble, además de poder
encender o apagar ciertos dispositivos eléctricos desde el lugar en que se
encuentren para tener una mayor comodidad y funcionalidad de sus viviendas.
Existen muchas formas de controlar un inmueble, teniendo en cuenta la velocidad
con que aumenta la tecnología se puede apreciar como se crea la necesidad de
mejorar el estilo de vida de las personas, y aprovechando que existen dispositivos
que ayudan a automatizar procesos en un hogar, oficina o empresa.
Además la domotica en Colombia no es muy comercial y para realizar aplicaciones
se necesita importar los módulos y su respectivo software, dependiendo de
caracteristicas como el voltaje y frecuencia de las líneas alternas que transportan
la energía.
1.3 JUSTIFICACIÓN
Este proyecto se plantea con el fin de lograr que hoy en día una vivienda
inteligente sea algo que este al alcance de todos los hogares, Colombia es un país
en vía de desarrollo y lo que se quiere es traer una tecnología flexible, a un bajo
costo que tenga una interfaz de fácil acceso, amigable y muy funcional para los
usuarios a los que esta dirigido este proyecto.
26
El control integrado de estos sistemas en una vivienda es algo necesario; las
tecnologías actuales, aplicadas a las viviendas, requieren un esmerado control.
Hasta el momento, en un edificio todos los sistemas eran independientes, hoy la
domótica ofrece soluciones que integran y relacionan entre sí dichos elementos
suponiendo una clara ventaja para el usuario.
En todos los campos de la tecnología siempre ha tenido como fin mejorar la
calidad de vida de todos los seres humanos, para ello se han creado nuevos,
mejorados, y diminutos sistemas que permitan realizar este fin. Para satisfacer
algunas necesidades del hogar se han desarrollado varios medios que facilitan
tareas para ahorrar tiempo, seguridad, control entre otros, estos se han
denominado sistemas domóticos que hoy en día avanzan a pasos inmensos y los
cuales han tenido gran acogida globalmente.
Para lograr un buen funcionamiento y optimización en la creación de estos
sistemas se ha elegido la implementación de varias tecnologías actuales como la
comunicación de módulos X-10 usando la red eléctrica que ofrece múltiples
ventajas, además los adelantos en la informática ofrecen innumerables
aplicaciones y facilidades para el control de estos sistemas haciendo menos
compleja la implementación y utilización de los mismos.
En Colombia los módulos X-10 son controles sectorizados y nos ofrecen una
mayor flexibilidad, mas no es un sistema que se pueda controlar desde cualquier
punto del hogar como lo es el desarrollo de este proyecto, además ofrece mayores
ventajas y servicios los cuales se ven reflejados en la satisfacción del usuario final.
Otras soluciones se deben tener en cuenta, como la accesibilidad de estos
sistemas hacia otros tipos de sociedades de más bajos recursos y que requieran
estos servicios, esto se logra unificando y acoplando toda la tecnología posible.
27
1.4 OBJETIVOS DE LA INVESTIGACIÓN
1.4.1 Objetivo general
Diseñar e implementar el prototipo de un sistema de control por software de
módulos X-10, utilizando el Internet como medio de transmisión y el lenguaje Java
como medio de programación para controlar dispositivos ON/OFF y control de
variación de voltaje en un inmueble, teniendo en cuenta aspectos fundamentales
como lo son bajo costo y fácil implementación.
1.4.2 Objetivos específicos
• Escoger los módulos X-10 que mejor se ajusten a las características del
proyecto.
• Analizar el tipo de datos que envía y recibe la interfaz de comunicación con el
PC.
• Desarrollar el software necesario para realizar la comunicación entre PC`s.
• Diseñar la plataforma de comunicación por protocolos TCP/IP.
• Diseñar la interfaz de comunicación entre el cliente y el servidor.
28
1.5 ALCANCES Y LIMITACIONES DEL PROYECTO
1.5.1 Alcances
El propósito de este proyecto es impulsar nuevas tecnologías en la población
Colombiana, diseñando un sistema completo de control a larga distancia por
medio de protocolos IP y programación en Java.
Se implementaron dos módulos X-10, los cuales estarán comunicados por medio
de una interfaz al computador por puerto serial, comandados a través de Internet.
Los módulos X-10 manejan específicamente control encendido - apagado, estos
fueron programados para que controlen la luz de la sala, encendido y apagado del
equipo de sonido de la vivienda, esto realizándolo a larga distancia.
1.5.2 Limitaciones
El equipo en el cual se instaló el software que controla los equipos tiene unas
características mínimas como memoria y velocidad, de esto depende el buen
funcionamiento del proyecto.
Este proyecto es de investigación y programación, debido a que los datos a enviar
por el puerto serie son parte de la investigación, la programación se llevó a cabo
utilizando el modelo cliente servidor y RMI (Remote Method Invocation),
basándose en el lenguaje java.
29
2. MARCO DE REFERENCIA
2.1 MARCO CONCEPTUAL
2.1.1 Domótica
Un sistema domótico está formado por una unidad central que gestiona distintos
elementos periféricos destinados a realizar determinados servicios en el ámbito
doméstico.
Se trata de aplicar la tecnología de la automatización y el control al hogar. Un
mercado emergente de infinitas posibilidades enfocado a mejorar la calidad de
vida aumentando la comodidad, la seguridad y el confort, consiguiendo al mismo
tiempo un considerable ahorro del consumo de energía.
Una vivienda será Domótica si incluye una infraestructura de cableado y los
equipos necesarios para disponer de servicios avanzados en la misma.
La configuración de un sistema domótico está íntimamente ligada a los
procedimientos de transmisión de información que posibilitan el diálogo entre
dichos periféricos y la unidad central. Los terminales suelen ser equipos
convencionales a los que se aporta una inteligencia o capacidad de comunicación
a través de una interfaz. Todos los elementos de campo envían y reciben señales
a través de una red de comunicaciones (bus domótico), para comunicarse entre
ellos y con la unidad central encargada de gestionar los intercambios de
información. Estas señales de control están codificadas de una determinada forma
(protocolos de comunicación), por lo que se necesitan elementos que pasen las
30
señales bus y a su vez, de señales bus a señales de salida que irán a los
actuadores (relés, interruptores, etc.). Estos elementos se suelen denominar de
diferentes formas: módulos de entrada/salida, acopladores, interfaces, etc.
Figura 1. Vivienda domótica.
¿Qué es domótica? [Sitio en Internet]. Disponible en www.domodesk.com
La domótica se centra en cuatro aspectos fundamentales:
• La mejora de la comodidad.
• Aportar más seguridad.
• Nuevas formas de comunicación.
• Reducción de los gastos energéticos.
31
2.1.2 Protocolo X-10
El protocolo X-10 es el sistema estándar de tantos sistemas de corrientes
portadoras ya que es el que mas extendido. Este sistema se creo hace más de 20
años y sus antiguos componentes siguen funcionando igual que el primer día con
nuevos modelos. Ha sido desarrollado para ser flexible, con lo que sus
aplicaciones pueden ser muy diversas. Este sistema puede gobernar luces,
electrodomésticos, sistemas de seguridad.
Su total control se realizó por medio un PC, control por acceso remoto. Sus
componentes son de sencilla instalación, ya que no precisan de cableados
especiales, va instalado en la propia instalación actual de una vivienda de 120 V a
60 Hz.
- Es un sistema descentralizado; configurable, no programable.
- De instalación sencilla (conectar y funcionar).
- De fácil manejo por el usuario.
- Compatibilidad casi absoluta con los productos de la misma gama, obviando
fabricante y antigüedad.
- Flexible y ampliable.
32
2.1.3 Corrientes portadoras
Figura 2. Portadora de la señal.
Corrientes
portadoras.
[Sitio
en
Internet].
Disponible
en
www.electronred.iespana.es/corrportadoras.htm
Es un código binario (unos y ceros). Un 1 binario del mensaje se representa por un
pulso de 120 Khz. durante 1 mseg, en el punto cero, y el O binario del mensaje se
representa por la ausencia de ese pulso de 120 Khz. El pulso de 1 mseg se
transmite 3 veces para que coincida con el paso por cero de las tres fases para un
sistema trifásico.
Figura 3. La transmisión completa de un código X-10.
Teoría sistema X-10. [Sitio en Internet]. Disponible en www.domodesk.com
33
La transmisión completa de un código X-10 necesita once ciclos de corriente. Los
dos primeros ciclos representan el Código de Inicio. Los cuatro ciclos siguientes
representan el Código de Casa (letras A-P), los siguientes cinco representan o
bien el Código Numérico (1-16), o bien el Código de Función (Encender, Apagar,
Aumento de intensidad, etc.). Este bloque completo (Código de Inicio, Código de
Casa y Código de Función o Numérico) se transmite siempre dos veces,
separando cada dos códigos por tres ciclos de la corriente, excepto para funciones
de regulación de intensidad, que se transmiten de forma continua (por lo menos
dos veces) sin separación entre códigos.
2.2 MARCO LEGAL O NORMATIVO
Para Colombia, los módulos de domótica necesariamente deben tener
especificaciones técnicas, como su voltaje que para líneas alternas es 120 V AC y
su frecuencia es de 60 Hz. Ya que algunos módulos de X-10 están diseñados para
el sistema europeo que son 220 V AC y frecuencia de 50 Hz.
2.2.1 FCC (Comisión federal de comunicaciones)
La Comisión Federal de Comunicaciones (FCC, por sus siglas en inglés) fue
creada por la Ley de Comunicaciones de 1934 y es una agencia independiente del
gobierno de los Estados Unidos. La FCC tiene a su cargo la reglamentación de las
comunicaciones interestatales (entre los estados) e internacionales por radio,
televisión, teléfono, satélite, y cable en todos los 50 estados, el Distrito de
Columbia, y los territorios de los Estados Unidos.
Cinco Comisionados dirigen la FCC. Todos ellos son nombrados por el Presidente
y ratificados por el Senado. Solo tres de los Comisionados pueden ser del mismo
34
partido político y ninguno puede tener un interés financiero en ninguno de los
negocios relacionados con la Comisión. De los Comisionados, el Presidente
selecciona a uno para que funja como Presidente de la Comisión. Todos los
Comisionados, incluyendo al Presidente, tienen un término de cinco años, excepto
cuando entran para cubrir un período inconcluso. Ver Anexo 1.
2.2.2 UL (Underwriters laboratories)
Underwriters Laboratories Inc. (UL) es un organismo independiente de pruebas /
ensayos de seguridad y certificación, que evalúa productos, materiales y sistemas
trabajando por la seguridad de los consumidores y sus bienes desde 1894. UL es
líder mundial en el desarrollo de normas de seguridad de productos, las cuales
son frecuentemente actualizadas y revisadas para responder a los cambios en la
tecnología o responder a nuevos usos de estos productos.
Con el avance de la globalización, los fabricantes están encontrando
oportunidades de vender sus productos en nuevos mercados. Sin embargo, para
poder ingresar en esos mercados, los productos deben cumplir con diversos
requisitos técnicos nacionales, regionales e internacionales. UL posee los
conocimientos y la experiencia necesarios para apoyar a sus clientes a fin de
conseguir su acceso a los mercados internacionales de forma más simple y
oportuna.
A través de esquemas de certificación internacionales y acuerdos de cooperación
con organizaciones de normas internacionales, pruebas / ensayos y, certificación
de gestión de calidad, UL está en condiciones de evaluar productos según las
35
normas de otros países, facilitando su aceptación por las diferentes agencias de
certificación, mediante un sometimiento único del producto.
2.3 MARCO TEÓRICO
2.3.1 Módulos X-10
Los módulos X-10 son los encargados de ejecutar las órdenes recibidas a través
de la red eléctrica de 120V. Hay dos tipos básicos: El módulo de lámpara que
permite regular la intensidad de las luces, y el módulo de aparato que funciona
como un interruptor encendiendo y apagando el electrodomestico que a él se
encuentra conectado.
2.3.2 Protocolo TCP/IP
El protocolo de control de transmisión protocolo Internet (TCP/IP) es el conjunto de
protocolos de trasporte tradicionales para Internet y sistemas UNIX. Tiene una
gran capacidad para redes de área amplia y su desarrollo esta abierto y sostenido
por toda la industria de computadoras. Como resultado, TCP/IP se ha convertido
en un protocolo aceptado por la industria, que puede conectar casi todas las
redes. El Protocolo de Internet (IP) es el soporte lógico básico empleado para
controlar este sistema de redes. Este protocolo especifica cómo las computadoras
de puerta encaminan la información desde el ordenador emisor hasta el ordenador
36
receptor. Otro protocolo denominado Protocolo de Control de Transmisión (TCP)
comprueba si la información ha llegado al ordenador de destino y, en caso
contrario, hace que se vuelva a enviar. La utilización de protocolos TCP/IP es un
elemento común en las redes Internet e intranet.
2.3.3 Direccionamiento IP
Una dirección IP es un número que identifica de manera lógica y jerárquica a una
interfaz de un dispositivo (habitualmente una computadora) dentro de una red que
utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red o nivel 3
del modelo de referencia OSI 3 . Dicho número no se ha de confundir con la
dirección MAC que es un número hexadecimal fijo que es asignado a la tarjeta o
dispositivo de red por el fabricante, mientras que la dirección IP se puede cambiar.
Es habitual que un usuario que se conecta desde su hogar a Internet utilice una
dirección IP. Esta dirección puede cambiar al reconectar; y a esta forma de
asignación de dirección IP se denomina una dirección IP dinámica (normalmente
se abrevia como IP dinámica).
Los sitios de Internet que por su naturaleza necesitan estar permanentemente
conectados, generalmente tienen una dirección IP fija (se aplica la misma
reducción por IP fija o IP estática), es decir, no cambia con el tiempo. Los
servidores de correo, DNS, FTP públicos, y servidores de páginas Web
3
Interconexión de Sistemas Abiertos por sus siglas en ingles (OSI) disponible en:
http://es.wikipedia.org/wiki/Modelo_OSI [16 Septiembre, 2007 2:43pm]
37
necesariamente deben contar con una dirección IP fija o estática, ya que de esta
forma se permite su localización en la red.
A través de Internet, los ordenadores se conectan entre sí mediante sus
respectivas direcciones IP. Sin embargo, a los seres humanos nos es más
cómodo utilizar otra notación más fácil de recordar y utilizar, como los nombres de
dominio; la traducción entre unos y otros se resuelve mediante los servidores de
nombres de dominio DNS.
Existe un protocolo para asignar direcciones IP dinámicas llamado DHCP
(Dynamic Host Configuration Protocol); en su versión 4, una dirección IP se
representa mediante un número binario de 32 bitios (IPv4). Las direcciones IP se
pueden expresar como números de notación decimal: se dividen los 32 bitios de la
dirección en cuatro octetos. El valor decimal de cada octeto puede ser entre 0 y
255 (el número binario de 8 bitios más alto es 11111111 y esos bitios, de derecha
a izquierda, tienen valores decimales de 1, 2, 4, 8, 16, 32, 64 y 128, lo que suma
255 en total).
En la expresión de direcciones IPv4 en decimal se separa cada octeto por un
carácter punto (.). Cada uno de estos octetos puede estar comprendido entre 0 y
255, salvo algunas excepciones. Los ceros iniciales, si los hubiera, se pueden
obviar.
Ejemplo de representación de dirección IPv4: 164.12.123.65
Hay tres clases de direcciones IP que una organización puede recibir de parte de
la Internet Corporation for Assigned Names and Numbers (ICANN): clase A, clase
B y clase C. En la actualidad, ICANN reserva las direcciones de clase A para los
gobiernos de todo el mundo (aunque en el pasado se le hayan otorgado a
empresas de gran envergadura como, por ejemplo, Hewlett Packard) y las
38
direcciones de clase B para las medianas empresas. Se otorgan direcciones de
clase C para todos los demás solicitantes. Cada clase de red permite una cantidad
fija de equipos (hosts).
En una red de clase A, se asigna el primer octeto para identificar la red,
reservando los tres últimos octetos (24 bitios) para que sean asignados a los
hosts, de modo que la cantidad máxima de hosts es 224 (menos dos: las
direcciones reservadas de broadcast [tres últimos octetos a 255] y de red [tres
últimos octetos a 0]), es decir, 16 777 214 hosts.
En una red de clase B, se asignan los dos primeros octetos para identificar la red,
reservando los dos octetos finales (16 bitios) para que sean asignados a los hosts,
de modo que la cantidad máxima de hosts es 216 (menos dos), o 65 534 hosts.
En una red de clase C, se asignan los tres primeros octetos para identificar la red,
reservando el octeto final (8 bitios) para que sea asignado a los hosts, de modo
que la cantidad máxima de hosts es 28 (menos dos), o 254 hosts.
•
La dirección 0.0.0.0 es utilizada por las máquinas cuando están arrancando o
no se les ha asignado dirección.
•
La dirección que tiene su parte de host a cero sirve para definir la red en la que
se ubica. Se denomina dirección de red.
•
La dirección que tiene su parte de host a unos sirve para comunicar con todos
los hosts de la red en la que se ubica. Se denomina dirección de broadcast.
•
Las direcciones 127.x.x.x se reservan para pruebas de retroalimentación. Se
denomina dirección de bucle local o loopback.
39
Tabla 1. Clase de direcciones IP.
Clase
Dirección
Bitios de red Bitios de host
10.0.0.0 a 10.255.255.255
8 bitios
24 bitios
A
172.16.0.0 a 172.31.255.255
16 bitios
16 bitios
B
192.168.0.0 a 192.168.255.255
24 bitios
8 bitios
C
2.3.4 Programación Java
Sun Microsystems, líder en servidores para Internet, uno de cuyos lemas desde
hace mucho tiempo es "the network is the computer" (lo que quiere dar a entender
que el verdadero ordenador es la red en su conjunto y no cada máquina
individual), es quien ha desarrollado el lenguaje Java, en un intento de resolver
simultáneamente todos los problemas que se le plantean a los desarrolladores de
software por la proliferación de arquitecturas incompatibles, tanto entre las
diferentes máquinas como entre los diversos sistemas operativos y sistemas de
ventanas que funcionaban sobre una misma máquina, añadiendo la dificultad de
crear aplicaciones distribuidas en una red como Internet.
Las características principales que nos ofrece Java respecto a cualquier otro
lenguaje de programación, son:
Simple, orientado a objetos, distribuido, robusto, arquitectura neutral, seguro,
portable y dinámico.
40
2.3.4.1 Desarrollo rápido de aplicaciones
Hace años, se decía que los programadores pronto desaparecerían. Los
generadores automáticos de programas, eliminarían a los generadores humanos y
el mundo sería un lugar mejor para vivir. Desafortunadamente, quienes decían
esto, no tuvieron en cuenta una acelerada demanda de software de calidad para
muy diferentes aplicaciones.
Sin embargo, la tecnología de objetos pronto llego a intentar facilitar la tarea,
adoptando el modelo de "generar parte de un programa", así, generando la parte
básica de un programa (los objetos), se podría conectar con otras partes para
proporcionar diferentes utilidades al usuario.
Visual Basic y NextStep, se acercan cada vez más al poder de los objetos. Java
facilita la creación de entornos de desarrollo-aplicaciones de modo similar, pero
además es flexible, poderoso y efectivo. Los programadores ahora disponen de
herramientas de programación de calidad beta, que apuntan hacia esa meta,
como son el Java WorkShop de SunSoft, el entorno Java de Borland, el Café de
Symantec y pronto, herramientas más sofisticadas como Netcode o FutureTense.
Esto proporciona una gran progresión a los entornos de desarrollo Java.
41
2.3.4.2 Compiladores Java
• Java Studio Creador
El Editor Java es un editor de texto completo integrado con el Diseñador visual, el
compilador, el depurador y otras partes del programa.
Se puede crear un programa con interfaz visual y programar sus diferentes fichas,
etiquetas, tablas y demás conceptos visuales, las ventajas de este programador
de java son su facilidad de manejar el entorno de programación con diferentes
imágenes, permitiendo ver su línea de código para así modificarla si es necesario.
Figura 4. Programador Java Studio creator.
.
42
• Java Netbeans
Este programador es desarrollado por sun Microsystems y es una plataforma para
el desarrollo de aplicaciones de escritorio usando Java y a un entorno integrado de
desarrollo (IDE) desarrollado usando la Plataforma NetBeans.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir
de un conjunto de componentes de software llamados módulos. Un módulo es un
archivo Java que contiene clases de java escritas para interactuar con las APIs de
NetBeans y un archivo especial (manifest file) que lo identifica como módulo.
Las aplicaciones construidas a partir de módulos pueden ser extendidas
agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados
independientemente, las aplicaciones basadas en la plataforma NetBeans pueden
ser extendidas fácilmente por otros desarrolladores de software.
• Paquetes adicionales de NetBeans
a. NetBeans enterprise pack
Provee Soporte para la creación de aplicaciones Orientadas a Servicios (SOA),
incluyendo herramientas de esquemas XML, un editor WSDL, y un editor BPEL
para Web services.
43
b. Pack de movilidad de NetBeans
El Pack de Movilidad de NetBeans es una herramienta para desarrollar
aplicaciones que se ejecutan en teléfonos móviles
El Pack de Movilidad puede ser usado para escribir, probar, y depurar aplicaciones
para la plataforma Java ME, tecnología existente en dispositivos móviles.
Figura 5. Programador Net beans.
44
c. Profiler de NetBeans.
El Profiler de NetBeans es una herramienta para la optimización de aplicaciones
Java: Ayuda a encontrar cuellos de botella en la memoria y a optimizar la
velocidad de las aplicaciones.
d. El C/C++ Native Development Module
Soporta
proyectos
de
C/C++,
mas
algunos
archivos
de
información
http://www.netbeans.org/kb/55/1/cnd-index.html. El Visual Web Pack Permite
rápida y visualmente, construir aplicaciones Web estándar, incluyendo Soporte
para AJAX y componentes JSF.
• Java development kit
El Java Development Kit, JDK por sus siglas en ingles, es un compilador y
conjunto de herramientas de desarrollo para la creación de programas
independientes y applets java.
Los programas java Studio creador, netbeans y el java development kit, compilan
el Remote method invocated y de esta forma fusionar el entorno visual con la línea
de código del programa.
45
2.3.5 Software RS232 Hex Com tool
Este programa recibe y transmite en códigos ASCII y hexadecimal, permite
modificar la velocidad de los bitios, paridad, puerto y bitios por parada.
Figura 6. Programa RS232 Hex Comm Tool.
2.3.6 Aplicaciones RMI
Las aplicaciones RMI normalmente comprenden dos programas separados: un
servidor y un cliente. Una aplicación servidor típica crea objetos remotos, hace
accesibles referencias a dichos objetos remotos, y espera a que los clientes
46
llamen a estos métodos u objetos remotos. Una aplicación cliente típica obtiene
una referencia remota de uno o más objetos remotos en el servidor y llama a sus
métodos.
RMI proporciona el mecanismo por el que se comunican y se pasan información
del cliente al servidor y viceversa. Cuando es una aplicación, algunas veces se
refiere a ella como aplicación de objetos distribuidos, las cuales necesitan:
- Localizar objetos remotos
Las aplicaciones pueden utilizar uno de los dos mecanismos para obtener
referencias a objetos remotos. Puede registrar sus objetos remotos con la facilidad
de nombrado de RMI rmiregistry o puede pasar y devolver referencias de objetos
remotos como parte de su operación normal.
- Comunicar con objetos remotos
Los detalles de la comunicación entre objetos remotos son manejados por el RMI;
para el programador, la comunicación remota se parecerá a una llamada estándar
a un método Java.
- Cargar bytecodes para objetos que son enviados
Como RMI permite al caller pasar objetos Java a objetos remotos, RMI
proporciona el mecanismo necesario para cargar el código del objeto, así como la
transmisión de sus datos.
La siguiente ilustración muestra una aplicación RMI distribuida que utiliza el
registro para obtener referencias a objetos remotos. El servidor llama al registro
47
para asociar un nombre con un objeto remoto. El cliente busca el objeto remoto
por su nombre en el registro del servidor y luego llama a un método. Esta
ilustración también muestra que el sistema RMI utiliza una servidor Web existente
para cargar los bytecodes de la clase Java, desde el servidor al cliente y desde el
cliente al servidor, para los objetos que necesita.
Figura 7. Diagrama RMI
Remoted
metod
invocation.
[Sitio
en
Internet].
Disponible
en
www.javaword.com/rmi
El sistema RMI utiliza un servidor Web para cargar los bytecodes de la clase Java,
desde el servidor al cliente y desde el cliente al servidor.
48
2.3.6.1 Ventajas de la carga dinámica de código
Una de las principales características del RMI es la habilidad de descargar los
bytecodes (o simplemente, código) de una clase de un objeto si la clase no está
definida en la máquina virtual del receptor. Los tipos y comportamientos de un
objeto, anteriormente sólo disponibles en una sola máquina virtual, ahora pueden
ser transmitidos a otra máquina virtual, posiblemente remota. RMI pasa los objetos
por su tipo verdadero, por eso el comportamiento de dichos objetos no cambia
cuando son enviados a otra máquina virtual. Esto permite que los nuevos tipos
sean
introducidos
en
máquinas
virtuales
remotas,
y
así
extender
el
comportamiento de una aplicación dinámicamente.
2.3.6.2 Interfaces, objetos y métodos remotos
Una aplicación distribuida construida utilizando RMI de Java, al igual que otras
aplicaciones Java, está compuesta por interfaces y clases. Las interfaces definen
métodos, mientras que las clases implementan los métodos definidos en las
interfaces y, quizás, también definen algunos métodos adicionales. En una
aplicación distribuida, se asume que algunas implementaciones residen en
diferentes máquinas virtuales. Los objetos que tienen métodos que pueden
llamarse por distintas máquinas virtuales son los objetos remotos.
Un objeto se convierte en remoto implementando una interfaz remota, que tenga
estas características.
49
- Una interfaz remota desciende del interfaz java.rmi.Remote.
- Cada método de la interfaz declara que lanza una java.rmi.Remote Exception
además de cualquier excepción específica de la aplicación.
El RMI trata a un objeto remoto de forma diferente a como lo hace con los objetos
no remotos cuando el objeto es pasado desde una máquina virtual a otra. En vez
de hacer una copia de la implementación del objeto en la máquina virtual que lo
recibe, RMI pasa un stub para un objeto remoto. El stub actúa como la
representación local o proxy del objeto remoto y básicamente, para el caller, es la
referencia remota. El caller invoca un método en el stub local que es responsable
de llevar a cabo la llamada al objeto remoto. Un stub para un objeto remoto
implementa el mismo conjunto de interfaces remotas que el objeto remoto. Esto
permite que el stub sea cargado a cualquiera de las interfaces que el objeto
remoto implementa. Sin embargo, esto también significa que sólo aquellos
métodos definidos en una interfaz remota están disponibles para ser llamados en
la máquina virtual que lo recibe.
2.3.6.3 Compilar las fuentes y generar stubs
Este es un proceso de dos pasos. En el primer paso, se utiliza el compilador javac
para compilar los ficheros fuentes de Java, los cuales contienen las
implementaciones de las interfaces remotas, las clases del servidor y del cliente.
En el segundo paso es utilizar el compilador rmic para crear los stubs de los
objetos remotos. RMI utiliza una clase stub del objeto remoto como un proxy en el
cliente para que los clientes puedan comunicarse con un objeto remoto particular.
50
2.3.6.4 Hacer accesibles las clases en la red
En este paso, se debe hacer que todo - los ficheros de clases Java asociados con
las interfaces remotas, los stubs, y otras clases que se necesiten descargar en los
clientes- sean accesibles a través de un servidor Web.
2.3.6.5 Escribir un servidor RMI
El servidor del motor de cálculo acepta tareas de los clientes, las ejecuta y
devuelve los resultados. El servidor está compuesto por una interfaz y una clase.
El interfaz proporciona la definición de los métodos que pueden ser llamados
desde el cliente. Esencialmente, el interfaz define lo que el cliente ve del objeto
remoto. La clase proporciona la implementación.
Se pueden ejecutar diferentes tipos de tareas en un objeto Compute siempre que
sean implementaciones del tipo Task. Las clases que implementen esta interfaz
pueden contener cualquier dato necesario para el cálculo de la tarea y cualquier
otro método necesario para ese cálculo.
2.3.6.6 Definir el constructor
La clase Java_x_10_Cliente tiene un único constructor que no toma argumentos.
public Java_x_10_Cliente() throws RemoteException {
super();}
51
Este constructor sólo llama al constructor de su superclase, que es el constructor
sin argumentos de la clase UnicastRemoteObject. Aunque el constructor de la
superclase obtiene la llamada incluso si se omite en el constructor de
Java_x_10_Cliente, se ha incluido por claridad.
Durante la construcción, un objeto UnicastRemoteObject es exportado, lo que
significa que está disponible para aceptar peticiones de entrada al escuchar las
llamadas de los clientes en un puerto anónimo.
El constructor sin argumentos de la superclase, UnicastRemoteObject, declara la
excepción RemoteException en su clausula throws, por eso el constructor de
Java_x_10_Cliente también debe declarar que lanza una RemoteException. Esta
excepción puede ocurrir durante la construcción si falla el intento de exportar el
objeto (debido a que, por ejemplo, no están disponibles los recursos de
comunicación o a que la clase stub apropiada no se encuentra).
2.3.6.7 Crear un Programa Cliente
La interfaz no-remota task se define de esta forma.
package compute;
public interfaz Task extends java.io.Serializable {
Object execute();
}
El interfaz Task extiende java.io.Serializable por lo que cualquier objeto que lo
implemente puede ser serializado por el sistema RMI y enviado a una máquina
52
virtual remota como parte de una llamada a un método remoto. Se podría haber
elegido hacer que la implementación de la clase implementara las interfaces Task
y Serializable y hubiera tenido el mismo efecto. Sin embargo, el único proposito de
la interfaz Task es permitir que las implementaciones de esta interfaz sean
pasadas a objetos Compute, por eso, una clase que implemente la interfaz Task
no tiene sentido que también implemente la interfaz Serializable. Dado se ha
asociado explícitamente las dos interfaces en el tipo system, asegurando que
todos los objetos Task sean serializables.
El código que llama a los métodos del objeto Compute debe obtener una
referencia a ese objeto, crear un objeto Task, y luego pedir que se ejecute la tarea.
Al igual que el servidor Java_x_10_Cliente, el cliente empieza instalando un
controlador de seguridad. Esto es necesario porque RMI podría descargar código
en el cliente. En este ejemplo, el stub Java_x_10_Cliente es descargado al cliente.
Siempre que el RMI descargue código, debe presentarse un controlador de
seguridad. Al igual que el servidor, el cliente utiliza el controlador de seguridad
proporcionado por el sistema RMI para este propósito.
Después de llamar al controlador de seguridad, el cliente construye un nombre
utilizado para buscar un objeto remoto Compute. El valor del primer argumento de
la línea de comandos args[0], es el nombre del host remoto, en el que se están
ejecutando los objetos Compute. Usando el método Naming.lookup, el cliente
busca el objeto remoto por su nombre en el registro del host remoto. Cuando se
hace la búsqueda del nombre, el código crea una URL que específica el host
donde se está ejecutando el servidor. El nombre pasado en la llamada a
53
Naming.lookup tiene la misma síntaxis URL que el nombre pasado a la llamada
Naming.rebind.
Figura 8. Diagrama ejemplo
2.3.7 Puerto serial
Puerto para conectar un dispositivo a una computadora. La información se
transmite por un solo conducto y por lo tanto bitio a bitio de forma serial.
Figura 9. Conectores seriales macho y hembra.
54
La mayoría de los puertos seriales de las PC obedecen el estándar RS232. El
RS232C es un estándar que constituye la tercera revisión de la antigua norma
RS232, propuesta por la EIA (Asociación de Industrias Electrónicas), realizándose
posteriormente un versión internacional por la UIT-T 4 , conocida como V.24. Las
diferencias entre ambas son mínimas, por lo que algunas veces se habla
indistintamente de V.24 y de RS-232C (incluso sin el sufijo "C"), refiriéndose
siempre al mismo estándar.
Tabla 2. Pines del puerto serial
PIN
FUNCIÓN
TXD
RXD
DTR
DSR
RTS
CTS
DCD
(Transmitir Datos)
(Recibir Datos)
(Terminal de Datos Listo)
(Equipo de Datos Listo)
(Solicitud de Envío)
(Libre para Envío)
(Detección de Portadora)
El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es normal
encontrar la versión de 9 pines DB-9, mas barato e incluso más extendido para
cierto tipo de periféricos (como el ratón serie del PC). En cualquier caso, los PC’s
no suelen emplear más de 9 pines en el conector DB-25. Las señales con las que
trabaja este puerto serie son digitales, de +12V (0 lógico) y -12V (1 lógico), para la
entrada y salida de datos y a la inversa en las señales de control.
Tabla 3. Descripción de puerto serial
4
Sector de normalizacion de las telecomunicaciones de la UIT por sus siglas en ingles (UIT-T) disponible
en: http://es.wikipedia.org/wiki/UIT-T [18 Septiembre, 2007]
55
Pin
Señal
Descripción
E/S
1
-
Masa chasis
-
3
TxD
Transmit Data
S
2
RxD
Receive Data
E
7
RTS
Request To Send
S
8
CTS
Clear To Send
E
6
DSR
Data Set Ready
E
5
SG
Signal Ground
-
1
CD/DCD
(Data) Carrier Detect
E
-
TxC(*)
Transmit Clock
S
-
RxC(*)
Receive Clock
E
4
DTR
Data Terminal Ready
S
9
RI
Ring Indicator
E
-
RTxC(*)
Transmit/Receive Clock
S
56
3. METODOLOGÍA
3.1 ENFOQUE DE LA INVESTIGACIÓN
De acuerdo con los procedimientos que se desarrollaron durante la ejecución del
proyecto, la investigación respectiva se enmarcó dentro del enfoque denominado:
empírico – analítico.
Como primera medida se consulto toda la información pertinente a módulos X-10,
tanto a nivel comercial, como a nivel teórico, posteriormente se hizo pruebas para
poder saber cuales eran los códigos que hacían funcionar los módulos. Se escogió
al lenguaje de programación Java puesto que proporciona una forma mucho más
ágil y fácil de hacer que se comuniquen los dos equipos a distancia vía TCP/IP.
Como paso a seguir se realiza un programa para familiarizarse con el entorno de
la domótica, ubicando el sistema en un ambiente grafico por programación.
Como ultimo paso se diseño la plataforma de control a distancia con el método de
invocación remota de programación Java, para obtener un sistema completo de
control de un inmueble a distancia.
57
3.2 LÍNEA DE INVESTIGACIÓN DE USB / SUB-LÍNEA DE FACULTAD / CAMPO
TEMÁTICO DEL PROGRAMA
-LÍNEA INSTITUCIONAL DE INVESTIGACIÓN
Tecnologías actuales y sociedad
-SUBLÍNEA DE INVESTIGACIÓN DE LA FACULTAD
Instrumentación y control de procesos
Conocimientos implicados
Manejo y conocimiento de señales eléctricas y protocolos de comunicación.
Dispositivos eléctricos, y elementos programables.
- CAMPO DE INVESTIGACIÓN DEL NODO DE ELECTRÓNICA
Control y comunicaciones
La transmisión de datos y manejo de puertos vía internet es algo muy novedoso
en el
país, muy pocas personas tienen conocimiento de este tema así como
también del lenguaje Java.
La investigación y el manejo de los datos a enviar por los distintos protocolos se
llevaron a cabo con pruebas tipo laboratorio.
3.3 TÉCNICAS DE RECOLECCIÓN DE INFORMACIÓN
Para encontrar el grupo social al que se pretende atraer o enfocar el proyecto se
realizo una investigación económica de los costos de implementar una vivienda
58
inteligente y así confirmar que es posible implementar un sistema domótico en las
viviendas de Colombia para su economía y seguridad.
Se tomo como base una investigación realizada por estudiantes de la universidad
Pontificia Bolivariana de Medellín, quienes realizaron un estudio del mercado
domótico en las ciudades colombianas de Bogotá, Medellín y Cartagena en los
estratos 4, 5 y 6. Este contiene información en lo referente a la utilización actual,
las preferencias de compra y capacidad de compra que las personas tienen hacia
esta tecnología 5 .
3.4 HIPÓTESIS
En este proyecto se logró implementar un sistema de economía y seguridad en un
inmueble por medio de un software que es instalado en dos computadores, uno
que es cliente y otro servidor para que por medio del método de invocación remota
se prendan la luz de la sala, equipo de sonido al detectar un movimiento en la
entrada
principal
de
la
vivienda
o
cuando
deseemos
apagar
algún
electrodoméstico que usualmente queda encendido por algún u otro motivo.
5
AMÓN, Iván CORREA, Carlos. Investigación del mercado domótico colombiano En: Título de la
publicación. [en línea]. [consultado Mayo de 2007]. Disponible en:
<http://convena.upb.edu.co/~domotica/documentacion/investigacionmercadodomoticocolom.pdf>
59
3.5 VARIABLES
3.5.1 Variables Independientes
Son la necesidad de las personas de controlar sus domicilios desde larga
distancia, porque independientemente de la distancia o el tipo de control que se
desee hacer el proyecto se deberá implementar con sus requerimientos mínimos.
3.5.2 Variables Dependientes
Los costos del proyecto.
La necesidad especifica de cada quien.
60
4. PRESENTACIÓN Y ANÁLISIS DE LOS RESULTADOS
Según las investigaciones que se han realizado acerca del mercado domótico para
la implementación de dichos sistemas en inmuebles, el porcentaje de personas
que lo poseen es bajo como lo muestra la tabla 4. Estos módulos no se venden en
Colombia, deben ser importados y los costos varían dependiendo del país en el
que se pretenden comprar, también a la hora de adquirirlos hay que tener en
cuenta el marco normativo 6 .
Solo las constructoras de tercera generación, como suelen llamarse, son las que
hacen el estudio del mercado para hacer el diseño del hogar o edificio inteligente,
a esto se le llama inmótica.
Tabla 4. Interés de sistemas automáticos por estrato
6
Ibid., p34.
61
Interés de sistemas automáticos por estrato. [Documento en Internet]. Disponible
en http://convena.upb.edu.co/~domotica/documentacion/investigacionmercadodomoticocolom.pdf. 156 p.
La adquisición de un módulo en Colombia no es posible debido a que estos
módulos los hacen en Europa, Estados Unidos y otras grandes potencias, allí son
adaptados para los diferentes países. Este proyecto finalmente puede estar al
alcance de todas las personas de estratos altos o medios y fácilmente el usuario
podrá manejar su inmueble a larga distancia por medio del programa creado en
Java.
Finalmente este proyecto brinda una mayor seguridad al inmueble en el que se
encuentre instalado, dando mayor confianza a los propietarios de que la residencia
se encuentra fuera de peligro, porque este sistema les permite tener un control
remoto de la vivienda, controlando la entrada de la casa o apartamento por medio
de un sensor de movimiento y un dispositivo de encendido y apagado de
electrodomésticos, siendo estos anteriores a los módulos X-10.
62
4.1 COMPARACIÓN DE LOS MÓDULOS
Para la selección de los módulos que mas se ajustaban al proyecto se
seleccionaron las siguentes caracteristicas basicas:
Un modulo X-10 que permita conectar un
4.1.1 Modulo de lámpara X-10 modelo S110110
Figura 10. Modulo de lámpara X-10 modelo S110110
Este modulo de lámpara funciona con el protocolo X-10 pero se puede utilizar en
un sistema europeo ya que trabaja a un voltaje de 230V y a una frecuencia de
50Hz, el tipo de conexión es diferente que el que se utiliza en Colombia y el precio
es muy elevado a comparación del modulo que se escogió para este proyecto.
63
Tabla 5. Datos técnicos modulo S110110
Tensión alimentación
230 V/ 50 Hz
Potencia
60 - 300 W (Solo lámparas incandescentes)
Emisión EMC
Cumple la norma EN 50081-1
Emisión EMS
Cumple la norma EN 50082-1
Seguridad eléctrica
Cumple la norma EN 60950 y EN 60065
Sensibilidad de señal
15 mVpp min 50 mVpp max a 120 kHz
Impedancia de entrada
55 ohm (L-N) a 120 Khz
Rango de temperatura
-10ºC a 50ºC
Dimensiones
52 x 122 x 33 mm
Peso
340 gr.
Precio
$72000
4.1.2 Modulo de lámpara con cable X-10 modelo S110112
Figura 11. Modulo de lámpara X-10 modelo S110112
Las características de operación de este modulo son muy similares a las del
modelo S110110 a diferencia de que este modulo posee un cable en el que se
puede acoplar directamente la lámpara sin importar el conector, pero por la
frecuencia y el precio fue rechazado para el proyecto.
64
Tabla 6. Datos técnicos modulo S110112
Tensión alimentación
230 V/ 50 Hz
Potencia
60 - 300 W (Solo lámparas incandescentes)
Emisión EMC
Cumple la norma EN 50081-1
Emisión EMS
Cumple la norma EN 50082-1
Seguridad eléctrica
Cumple la norma EN 60950 y EN 60065
Sensibilidad de señal
15 mVpp min 50 mVpp max a 120 kHz
Impedancia de entrada
55 ohm (L-N) a 120 Khz
Rango de temperatura
-10ºC a 50ºC
Dimensiones
52 x 65 x 33 mm
Peso
340 gr.
Precio
$75000
4.1.3 Modulo de lámpara stanley modelo Lightmaker 370-2474
Figura 12. Modulo de lámpara stanley
El modulo stanley se adapta a las normas de este país ya que trabaja a 120 voltios
y 60Hz, su precio no es muy elevado pero tiene una potencia máxima de 150
vatios que no es muy alta para las necesidades del proyecto y por esta razón fue
rechazado.
65
Tabla 7. Datos técnicos modulo stanley
Tensión alimentación
120 V/ 60 Hz
Potencia
10 - 100 W
Seguridad eléctrica
Cumple la norma FCC 115
Sensibilidad de señal
12 mVpp min 60 mVpp max a 120 kHz
Impedancia de entrada
65 ohm (L-N) a 120 Khz
Rango de temperatura
-10ºC a 70ºC
Dimensiones
50 x 60 x 25 mm
Peso
300 gr.
Precio
$40000
4.1.4 Modulo receptor radio frecuencia X-10 modelo S110128
Figura 13. Modulo receptor de radio frecuencia
Este modelo de transceiver es muy económico para las características que posee,
pero por ser de normas europeas no fue implementado en el proyecto.
66
Tabla 8. Datos técnicos modulo receptor de radiofrecuencia
Tensión alimentación
230 V/ 50 Hz
Corriente alimentación
< 20mA
Potencia
500 W Lamp. Incandescentes (1A motor) 10 A (resistencias)
Emisión EMC
Cumple la norma EN 50081-1
Emisión EMS
Cumple la norma EN 50082-1
Seguridad eléctrica
Cumple la norma EN 60950 y EN 60065
Frecuencia de RF
433.92 Mhz.
Sensibilidad de señal
15 mVpp min 50 mVpp max a 120 kHz
Impedancia de entrada 180 ohm (L-N) a 120 Khz
Rango de temperatura
-10ºC a 50ºC
Peso
200 grs.
Dimensiones
65 x 160 x 33 mm
Precio
$60000
4.1.5 Modulo receptor radiofrecuencia RF X-10 modelo PAT01
Figura 14. Modulo receptor de radio frecuencia PAT01
El modulo PAT01 puede ser implementado en este país por sus características
técnicas pero si se observa en la tabla las características se puede observar que
es muy robusto para el uso en este proyecto, además su alto precio se sale del
presupuesto que se tenia proyectado.
67
Tabla 9. Datos técnicos modulo receptor de radiofrecuencia PAT01
Tensión alimentación
120 V/ 60 Hz
Corriente alimentación
< 80mA
Potencia
800 W Lamp. Incandescentes (2A motor) 20 A (resistencias)
Seguridad eléctrica
Cumple la norma FCC 115
Frecuencia de RF
300.1 Mhz.
Sensibilidad de señal
12 mVpp min 60 mVpp max a 120 kHz
Impedancia de entrada 150 ohm (L-N) a 120 Khz
Rango de temperatura
-10ºC a 60ºC
Peso
170 grs.
Dimensiones
50 x 145 x 25 mm
Precio
$85000
4.1.6 Modulo receptor de empotrar modelo PAO11
Figura 15. Modulo receptor de empotrar
El modulo PAO11 es una alternativa para los proyectos que sean fijos, ya que una
vez empotrado en la pared, es muy complicado su traslado puesto que se puede
averiar, no fue escogido para este proyecto ya que lo que se busca es la
flexibilidad y este modulo no la brinda.
68
Tabla 10. Datos técnicos modulo receptor de empotrar
Tensión alimentación
220 V/ 60 Hz
Potencia
300 W Lamp. Incandescentes 15 A (resistencias)
Seguridad eléctrica
Cumple la norma FCC 115
Frecuencia de RF
350 Mhz.
Impedancia de entrada 300 ohm (L-N) a 120 Khz
Rango de temperatura
0ºC a 60ºC
Peso
150 grs.
Dimensiones
50 x 160 x 40 mm
Precio
$40000
4.1.7 Sensor inalámbrico para puertas/ventanas X-10 modelo PDS01
Figura 16. Sensor inalámbrico PDS01
Este detector se especializa en la apertura de puertas y ventanas, es un poco
sedentario ya que hay que hay que fijarlo y esa no es la intención del proyecto, lo
que se quiere es una detección de movimiento general y no algo tan especifico
como una puerta o ventana.
69
Tabla 11. Datos técnicos sensor inalámbrico PDS01
Modo de funcionamiento
Por Radio Frecuencia.
Frecuencia de RF
500 Mhz.
Pilas
Alcalinas 2 x 1,5 V. AAA
Rango de acción
15 m.
Salida de radio
1mW
Temperatura de funcionamiento
-5ºC a 60ºC
Normativa
UL
Peso
250 grs.
Dimensiones
6 x 8,5 x 3,5 cm
Precio
$60000
4.1.8 Sensor de movimiento PR511
Figura 17. Sensor de movimiento PR511
El modelo PR511 es un sensor de movimiento que funciona independiente a un
transceiver, cuando detecta movimiento enciende las luces incorporadas y en el
proyecto lo que se quiere es encender un equipo de sonido para alertar a los
intrusos de que hay alguien dentro del recinto, por esta razón no fue seleccionado
para el proyecto.
70
Tabla 12. Datos técnicos sensor de movimiento PR511
Modo de funcionamiento
Por Radio Frecuencia.
Frecuencia de RF
900 Mhz.
Alimentación
120v AC
Rango de acción
10 m.
Potencia lámparas
150W
Temperatura de funcionamiento
-15ºC a 70ºC
Normativa
CE UL
Peso
2000 grs.
Dimensiones
24 x 48 x 12 cm
Precio
$120000
4.1.9 Interfaz bidireccional PSC05
Figura 18. Interfaz bidireccional PSC05
Esta interfaz de módulos X-10 tiene un precio muy económico y se ajusta a las
normativas colombianas, pero posee una gran desventaja que es el manejo
manual ya que no es posible conectarla por ningún medio al computador, así que
fue descartada.
71
4.2 SELECCIÓN Y DESCRIPCIÓN DE LOS MÓDULOS X-10
Por medio del Internet se analizaron las características principales de los
diferentes tipos de módulos como son las corrientes máximas que pueden llegar a
soportar, la potencia y el voltaje que debe estar acorde a la normatividad
Colombiana, también el costo de los módulos es algo muy importante en este
proyecto ya que lo que se quiere es que este al alcance de todos, en el mercado
domótico se tienen varios proveedores pero el que realmente cumple todas las
exigencias es ACTIVEHOME, una vez hecha esta selección, se escogen 2
módulos que trabajan en base al protocolo X-10, cada módulo maneja la
frecuencia de 60 Hz para Colombia y sus respectivos 120 V para la conexión con
las líneas alternas domesticas.
4.2.1 Interfaz CM11A-C
Este módulo es la interfaz de comunicaciones que interconecta al PC con los
demás módulos y las líneas de corriente alterna del inmueble, tiene varias
conexiones, como son: la clavija de entrada a la cual podemos conectar cualquier
elemento ya que funciona como una toma adicional y así no perder el uso del
enchufe que se esta utilizando, también posee un compartimiento para las
baterías las cuales tienen la función de que el módulo no pierda el contador de
horas de uso, la fecha y la hora para la programación automática de los módulos y
por ultimo tiene la conexión RJ-9 para el cable que lo interconecta con el puerto
serial del PC, este cable en un extremo tiene plug RJ-9 y en el otro el macho del
RS232. Ver Anexo 3.
72
Figura 19. Home Automation Interfaz, CM11A-C.
4.2.2 Módulo LM465
Módulo que tiene como uso exclusivo las lámparas incandescentes, este elemento
cuenta con una clavija en la que se debe conectar la lámpara que se quiere
controlar, además de tener dos selectores los cuales tiene funciones especificas,
el selector numérico (negro) varia de 1 a 16 y es el que asigna el numero de
identificación propio, el selector alfabético (rojo) varia de la letra A a la letra P y es
el que identifica al inmueble y lo diferencia de los demás que puedan estar usando
el protocolo X-10, este código lo deben tener en la misma posición todos los
módulos del inmueble para que puedan ser controlados por la interfaz CM11A-C
ya que esta, está programada únicamente para enviar los datos a un mismo grupo
de módulos que tengan la misma letra seleccionada. Ver Anexo 3.
73
Figura 20. Lamp Module, LM465.
4.2.3 Mini Transceiver TM751-C
Dispositivo que funciona con RF 7 y en compañía de otro dispositivo que es un
sensor de movimiento a baterías, inicialmente al conectarse el mini transceiver, se
debe ajustar el código asignando una letra que va desde la A a la P la cual
diferencia el inmueble de los demás y se le debe conectar en la clavija incorporada
el aparato que se desee controlar, en este caso un equipo de sonido y una
lámpara, también se puede cualquier aparato que no supere los 400 watts de
potencia. Ver Anexo 3.
7
Radio Frecuencia disponible en: http://es.wikipedia.org/wiki/Radiofrecuencia [16 Septiembre, 2007 2:15pm]
74
Figura 21. Preparación del Mini-transceiver, TM751-C.
El sensor se coloca en la entrada principal del inmueble y le envía una señal de
RF 8 al Transceiver la cual indica que se ha detectado la presencia de alguien,
inmediatamente la señal es recibida, el módulo activa el voltaje en la clavija y de
esta manera se encenderá el equipo y la lámpara para indicarle al individuo que
hay alguien dentro del inmueble, una vez se haya alejado el individuo el módulo
cortara la conducción de voltaje y los elementos que fueron encendidos se
apagarán.
8
Ibid., p74.
75
Figura 22. Mini-transceiver TM751-C.
4.2.4 Sensor de movimiento MS14A-C
Este pequeño elemento funciona en compañía con el mini transceiver TM751-C,
posee un pequeño compartimiento que almacena dos baterías tipo AAA que
tienen la función de alimentarlo, una vez es conectado y encendido se debe
colocar en el sitio sobre el cual se quiere tener control adicional de seguridad,
desde ese momento el sensor enviara señales de RF 9 al transceiver cada vez que
detecte la presencia de movimiento. Ver Anexo 3.
Figura 23. Eagle Eye Motion Detector MS14A-C.
9
Ibid., p74.
76
4.3 COSTOS Y MATRIZ COMPARATIVA
Tabla 13. Presupuesto y costo final de los módulos implementados.
MODULO
PRESUPUESTO
COSTO FINAL
Lampara
$ 50.000,00
$ 40.000,00
Transceiver
$ 60.000,00
$ 55.000,00
RF
$ 60.000,00
$ 40.000,00
Interfaz
$ 150.000,00
$ 120.000,00
TOTAL
$ 320.000,00
$ 255.000,00
Se puede observar que el proyecto se ajustó al presupuesto que se tenía.
77
Tabla 14. Comparación de las variables de los módulos y precio.
MODULO VAC VDC F(Hz) P(W)
50
60/300
S110110 230
APLICACION
PRECIO($)
Lamparas
incandescentes
72.000,00
x
/x
S110112
230
-
50
6/300
Lamparas
incandescentes
75.000,00
x
Stanley
3702474
120
-
60
11/100
Lamparas
incandescentes
40.000,00
x
S110128
PAT01
PAO11
230
-
50
0/500
Motores/Resistencias
60.000,00
120
-
60
0/800
Motores/Resistencias
85.000,00
220
-
60
0/300
40.000,00
PDS01
PR511
-
3
-
120
-
-
Lamparas
incandescentes,
Resistencias
/Motores
RF
x
x
x
PSC05
120
LM465
120
3
-
60
60
TM751-C 120
MS14A-C
CM11AC 120
0/150
10
300
500
60
Lamparas
incandescentes/RF
Control de modulos
Lamparas
incandescentes
Lamparas
incandescentes,
Resistencias
/Motores
60.000,00
120.000,00
x
x
80.000,00
x
40.000,00
55.000,00
3
-
-
RF
40.000,00
-
60
6
Control de modulos
120.000,00
78
5. DISEÑO INGENIERIL
Para que este proyecto cumpla con todos los objetivos propuestos durante el
desarrollo de esta aplicación la cual se basa en transmitir y recibir códigos
hexadecimales por medio de una aplicación Web, programada en Java que
controla por acceso remoto los módulos X-10 se deben tener en cuenta los
parámetros y explicaciones.
5.1 CONEXIÓN DE LOS MÓDULOS X-10
Como primera medida, se debe saber como van las líneas en el inmueble puesto
que los módulos deben ir conectados sobre la misma línea alimentadora de
voltaje, se conecta la interfaz CM11A-C al computador, asegurándose de que la
frecuencia sea 60Hz, el voltaje 120V y el dispositivo que se tenga conectado a él
maneje menos de 6 watts de potencia, para evitar sobrecargas.
Como segunda medida conectar TM751 y tener en cuenta que el electrodoméstico
que se conectará en la parte inferior de él, no sobrepase una corriente de carga de
15 A, un motor de potencia de 1/3 HP 10 o un Televisor de 500W, ya que estos son
sus valores nominales, este funciona además con un detector de movimiento el
cual es el módulo MS14A-C.
10
Caballo de Fuerza por sus siglas en ingles (HP) Horse Power disponible en:
http://www.todomotores.cl/mecanica/potencia.htm [18 Septiembre, 2007 12:51pm]
79
Cuando el MS14A-C detecta movimiento en la entrada de la puerta principal, este
emite una señal de RF 11 hacia el TM751 el cual se activará inmediatamente y se
encenderá el elemento que se tenga conectado en su clavija 12 .
Se conectan con las líneas alternas de la vivienda, esto quiere decir a la toma
eléctrica ubicada en la pared, se debe tener en cuenta que todos los módulos
deben tener en el selector la misma letra para que la interfaz de control los pueda
identificar en un mismo grupo y no hayan problemas de comunicación entre ellos,
finalmente la interfaz de control se debe conectar a la toma y al puerto serie del
computador.
Figura 24. Instalación de la interfaz.
11
12
Ibid., p74.
Ver, Figura 21, p75.
80
Figura 25. Módulos funcionando.
5.2 SONDEO DE LOS CÓDIGOS
Se realizo un análisis para detectar que tipo de datos se envían entre el PC y la
interfaz, se fabricó un cable cruzado que interconectó a dos computadores y la
interfaz CM11A-C por el puerto serie de ambos equipos, su funcionamiento se
basó en que cuando uno de los equipos le envió información a la interfaz de
control por el pin de transmisión del puerto, el otro equipo estaba leyendo
81
simultáneamente con el software Hex Com tool 13 , para conocer los códigos que se
estaban enviando fue necesario hacer muchas pruebas, ya que los 2 puertos
deberían tener la misma configuración para que el dato que se leyera fuera
correcto y así de esta manera tener la seguridad que el código era verídico y
funcionara.
Figura 26. Cable cruzado PC-PC.
El cable que se diseñó tiene dos salidas y una entrada.
13
Ibid., p46.
82
Figura 27. Terminales del cable cruzado PC-PC.
En la entrada se conecta el PC que esta transmitiendo los datos, en este caso los
códigos hexadecimales, en una de las salidas se conecta la interfaz de los
módulos y en la otra el PC que va a leer los datos que se envían al módulo, eso es
una “Y” en donde los datos viajan paralelamente por los 2 caminos,
adicionalmente el cable tiene un conector que lo hace funcionar en forma inversa
por si se desean enviar datos del PC receptor al transmisor sin tener que
desconectar el cable de los equipos.
83
Figura 28. Extensor del conector serial.
Se soldan los pines del conector serial, para la entrada del conector que va al
computador, a continuación se muestran los únicos pines que se conectan para
poder enviar datos del PC a la interfaz de control.
Tabla 15. Pines usados en la entrada del cable serial.
Pin
Señal
Descripción
E/S
2
RxD
Recepción de datos
E
3
TxD
Transmisión de datos
S
5
SG
Señal de tierra
-
9
RI
Indicador de tono
E
84
Para los pines de las salidas se realizó una serie de conexiones para que una
salida fuera bidireccional y la otra receptora.
Tabla 16. Pines usados en salida 1 y 2 del cable serial.
Pin
Señal
Descripción
E/S
2
RxD
Recepción de datos
E
6
DSR
Data Set Ready
E
9
RI
Indicador de tono
E
5.3 CÓDIGOS HEXADECIMALES PARA OPERAR LOS MÓDULOS X-10
Al configurar el numero de la casa y la letra para el proyecto, se prefirió dejar la
letra A y el numero 1. Con esto se comenzó a hacer las pruebas de detección de
los códigos, cada módulo por aparte, por medio de la interfaz CM11A-C y el
computador. Utilizando un programa que permitió ver la recepción de los datos
hexadecimales y así poder saber que datos era los que llegaban y a que velocidad
de bitio viajaban.
Efectivamente se llegó a la conclusión después de muchas pruebas de
transmisión que los datos llegan al módulo que va a hacer la aplicación de forma
lenta.
Cuando se configura el software RS232 en tasa de transferencia 4800 bps,
paridad en 1, bitio de datos: 8 y bitio por parada 1 los datos lograron encender y
apagar los dispositivos. Por esta razón se realizó una tabla con lo que se logro
hacer con los diferentes datos hexadecimales que se enviaron 14 .
14
Ver, Figura 6, p46.
85
Tabla 17. Funciones por cada Dato hexadecimal.
Valor binario Valor hex
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
A
1011
B
1100
C
1101
D
1110
E
1111
F
Función
Todas las unidades apagado
Todas las luces encendido
Encendido
Apagado
Débil
Brillante
Todas las luces apagado
Código extendido
Petición del granizo
El granizo reconoce
Preestablecen débil (1)
Preestablecen débil (2)
Transferencia de datos extendida
Estado encendido
Estado apagado
Petición del estado
El proyecto funciona con el código de vivienda A1, porque así fue la configuración
que se le asigno al módulo LM465 por consiguiente el dato respectivo para el
llamado el prendido y apagado es el primero de la fila. Este prende y apaga la luz
de la sala y esta corresponde a una lámpara.
86
Tabla 18. Dirección y funciones del código para cada módulo.
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dirección
046600000000
046E00000000
046200000000
046A00000000
046100000000
046900000000
046500000000
046D00000000
046700000000
046F00000000
046300000000
046B00000000
046000000000
046800000000
046400000000
046C00000000
Encender
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
066200000000
Apagar
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
066300000000
Si se hubiese escogido cualquier otra letra con un diferente número, la función
para hacer la orden cambiaría y la dirección seria necesario cambiarla, por este
motivo se saca una tabla para ver las direcciones de llamado del módulo LM465.
87
Tabla 19. Diferente dirección para cada código de casa
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
6
E
2
A
1
9
5
D
7
F
3
B
0
8
4
C
046600000000
046E00000000
046200000000
046A00000000
046100000000
046900000000
046500000000
046D00000000
046700000000
046F00000000
046300000000
046B00000000
046000000000
046800000000
046400000000
046C00000000
5.4 SOFTWARE RS232 HEX COMM TOOL
Este programa se usó para realizar el sondeo de los códigos, ya que muestra que
datos se transmiten hacia el módulo, esto quiere decir que permite ver por medio
de otro computador en forma receptora que código se envía.
Este software se instaló en dos equipos de trabajo diferentes conectados en red,
uno se puso en modo escritura y el otro en modo lectura del puerto serial, dejando
al descubierto el código hexadecimal.
88
Figura 29. Transmisión por el software RS232 Hex Comm Tool
5.5 DESARROLLO DEL SOFTWARE
El software que se creo, fue basado en el modelo cliente servidor utilizando la
forma RMI, siendo esta la más flexible y la que mejor se adapto a las necesidades
del proyecto.
89
5.5.1 Diagrama de flujo programa cliente
Inicio
Seleccione
Módulo
Módulo
lámpara
LM465
Mini
Transceiver
TM751
Busque
dirección IP
del servidor
No
Módulo
responde
Si
Active interfaz
Tx/Rx
Inicio Programa
servidor
Primero se debe instalar el programa cliente en el equipo desde donde se quiere
controlar el inmueble, una vez hecho esto se debe ejecutar y aparecerá una
ventana que tiene dos botones los cuales indican el módulo que se desea activar,
90
allí el usuario selecciona alguno e inmediatamente se activa una parte del software
llamada interfaz la cual se encarga de hacer la comunicación entre el cliente y el
servidor, luego se envía el código de dirección del módulo seleccionado para que
este responda el llamado y espere el código de activación, después de obtener
respuesta del módulo el programa envía el código de activación y a su vez se
activará el elemento que se tiene conectado al módulo en cuestión, luego el
programa vuelve a modo de espera o se puede cerrar si el usuario así lo desea.
91
5.5.2 Diagrama de flujo programa servidor
Inicio
Seleccione
Módulo
Módulo
lámpara
LM465
Mini
Transceiver
TM751
Envíe código
de dirección
Envíe código
de dirección
Módulo
responde
Módulo
responde
No
No
Detector de
movimiento
Estado de
encendido
No
Si
Si
Si
Envíe señal
al transceiver
Seleccione
estado
Encendido
Módulo
responde
Apagado
Si
Envíe código de
encendido
Detección
movimiento
Envíe código de
apagado
Act / Desact
transceiver
92
No
Este diagrama muestra en su inicio, la selección del módulo la cual se lleva a cabo
gracias a los datos que llegan por la interfaz de transmisión, lo primero que recibe
y envía por el puerto son los códigos de dirección del módulo que haya escogido
el usuario, luego llega a la condición en la cual si el módulo responde, se envía los
códigos de activación para que se pueda activar el equipo que se tenga conectado
en el módulo, luego volverá al inicio a la espera de una nueva orden, en la parte
del transceiver se debe tener en cuenta la condición de que así el transceiver este
listo, este no activara el equipo de audio hasta que no reciba la señal que le envía
el detector de movimiento.
5.5.3 Diseño y funcionamiento del programa
La parte del programa cliente se ejecuta desde cualquier equipo de trabajo, este
debe tener acceso a Internet para poder realizar la invocación remota por medio
de RMI y así enviar los códigos hexadecimales hacia el programa servidor. Esta
comunicación se hace por medio de un archivo de Java que se crea llamado
interfaz.
El programa servidor se debe instalar en el equipo que se encuentra en el
inmueble, este se debe dejar en modo de espera para que reciba los datos en
forma hexadecimal que le envía la interfaz desde el programa cliente, para
enviarlos a la interfaz CM11A y esta a su vez activar o desactivar los módulos que
está controlando.
93
Figura 30. Vista principal entorno del programa.
5.5.4 Descripción del programa cliente
En la línea de código de esta parte del software, lo primero que se debe hacer es
colocar las librerías que se van a utilizar a lo largo del programa así como las
clases que definen como son los objetos que se van a incluir, indicando sus
atributos y sus acciones, también en esta sección se definen los colores, los
tamaños de letra y en general la apariencia que va a tener la ventana del
programa.
94
Figura 31. Inicio línea de código
Otra sección importante del software es el constructor que define la apariencia que
van a tener los botones en el software.
Figura 32. Configuración de los botones y la imagen.
95
Finalmente se muestra la configuración de los botones con sus respectivos
códigos de identificación y activación, los cuales son enviados a través del puerto
serial para que cumplan con la función de encender y apagar el módulo
seleccionado, también se puede observar que en esta sección de la línea de
código existe una dirección IP, que corresponde a la dirección IP del servidor ya
que esa es la que busca el programa y es hacia donde enviará los datos
únicamente.
Figura 33. Códigos en Hexadecimal.
5.5.5 Descripción del programa servidor
Igual que en la otra parte del software lo primero que se debe hacer, es introducir
las librerías que se van a utilizar a lo largo del programa, luego de eso el programa
espera a que le lleguen los datos provenientes de Internet para poder enviárselos
a la interfaz y esta a su vez controlar los módulos.
96
Figura 34. Inicio programa servidor.
Como se menciona en este proyecto, el software que se desarrolló es
multiplataforma o sea que se puede ejecutar en diferentes sistemas operativos, en
la línea de código se deben colocar los sistemas operativos en los que se quiere
que funcione el software, además del nombre del puerto serie en dicho sistema
operativo para que al momento de ser ejecutado no haya ningún inconveniente.
97
Figura 35. Sistemas operativos soportados.
Una parte muy importante en esta sección es la configuración del puerto serie
puesto que allí radica que los datos que vienen de Internet, lleguen de forma
correcta a la interfaz que controla los módulos, en este caso la velocidad del
puerto se dejo en 4800 bps, los bitios de datos en 8, con un bitio de parada y
finalmente sin paridad en el puerto.
98
Figura 36. Configuración del puerto.
5.5.6 Requisitos para ejecutar el software
Se debe tener como mínimo, un computador en el cual se instalará el programa
servidor con un procesador Pentium III de 800Mhz, 256M de memoria RAM,
Unidad de CD-ROM, tarjeta de red de 100M, conexión a Internet al menos de 300
kbps, puerto serie RS232 y plataforma Windows xp, Linux o MAC OS.
99
5.5.7 Características del software
Dinámico: Puesto que si no se pudiera ejecutar el programa en el PC a distancia,
se podría abrir como pagina Web.
Flexible: Su manejo es muy sencillo porque proporciona una interfaz fácil de
manejar por el usuario final.
Eficiente: Envía los códigos para poder operar los módulos a distancia.
Multiplataforma: Se puede ejecutar en cualquier equipo, ya que esta diseñado
para que funcione en un entorno Windows, MAC OS o Linux.
5.6 ENCENDIDO DEL PC EN FORMA AUTOMÁTICA
La manera de encender el PC a una determinada hora de forma automática se
puede lograr con Windows XP, con la herramienta de tareas programadas.
La herramienta ''Tareas programadas'' de Windows puede crear una tarea para
despertar el equipo, pero sólo si este se encuentra en un estado de ''Hibernación''
o inactividad. No funciona si el equipo se encuentra apagado.
100
Figura 37. Hibernación en Windows XP.
Cuando se coloca el PC en modo ''Hibernación'', el sistema ahorra la misma
cantidad de energía que cuando se encuentra apagado. Lo que sucede es que
Windows guarda una imagen del escritorio con todos los archivos y documentos
abiertos y desconecta la alimentación del equipo. Al volver la alimentación, los
archivos y documentos se restauran en la misma ubicación y estado en el que se
encontraban.
101
6. CONCLUSIONES
Se implemento el novedoso y flexible lenguaje Java de Sun Microsystems que es
el mas apropiado para crear aplicaciones Web,
El modelo Cliente – Servidor utilizando el método de invocación remota es la
forma mas apropiada para desarrollar el proyecto, ya que cumple con la eficacia y
flexibilidad que se requiere.
Las herramientas que brinda el software libre permiten llevar a cabo un desarrollo
de software sin generar gastos de licencias propietarias y sin sacrificar calidad y/o
eficacia.
En nuestro país las nuevas tecnologías no son muy comunes así que fue
necesaria la importación directa de los módulos X-10 para la transmisión de datos
por las líneas de corriente alterna.
102
7. RECOMENDACIONES
Puesto que el modulo CM11A se viene comercializando con una interfaz USB
(Universal Serial Bus), se debe pensar en actualizar la aplicación para que utilice
un controlador de ese puerto y no del serial como lo hace actualmente, eso le
daría una oportunidad de ser mucho más comercial y de ejecutarse en aquellos
sistemas que ya carecen de este puerto.
Se podría pensar en darle más aplicabilidades al sistema como una plataforma
WAP para el control por medio de dispositivos móviles celulares.
Los módulos que se utilizaron en el proyecto se adaptan a la pared de la vivienda
en la que se instalen por facilidad de instalación. Para nuevos diseños de casas
con funciones X-10, debe tenerse en cuenta la utilización de módulos internos
que sean adaptados directamente en las paredes y permitir que la funcionalidad el
sistema sea transparente al usuario.
103
BIBLIOGRAFÍA BÁSICA
Alonso, José Miguel. Protocolos de comunicaciones para sistemas abiertos,
Editorial: Adisson Wesley Iberoamerica, Wilmington (USA), 1996. 362 p.
Black, Uyless D. Redes de computadoras: Protocolos, normas e Interfaces,
Editorial: Macrobit, México, 1990. 296 p.
INSTITUTO COLOMBIANO DE NORMAS TÉCNICAS. Compendio – Tesis y otros
trabajos de grado. Quinta actualización. Bogota D.C.: ICONTEC, 2002. 34p. NTC
1486.
Jiménez, Carlos. Oficinas, Editorial: Ceac, Barcelona (España), 1997. 102 p.
Moreno Gil, José. Instalaciones automatizadas en viviendas y edificios, Editorial:
Paraninfo, Madrid (España), 1998. 200 p.
NEIL, Ford. Art of Java Web Development. Greenwich C.T. Manning publications,
2004. 627 p.
Quintero Gonzáles, José Maria. Sistemas de control para viviendas y edificios:
Domótica, Editorial: Paraninfo, Madrid (España), 1999. 153 p.
104
SUN, Microsystems. Java Studio Creator Field Guide. Silicon Valley, Second
Edition, 2005. 680 p.
SUN, Microsystems. Java 2 Study Guide. Silicon Valley, 2006. 530 p.
105
BIBLIOGRAFÍA COMPLEMENTARIA
FEDERAL COMUNICATIONS COMISSION (FCC) http://www.fcc.gov/ VISITADO
EN 18/09/2007.
JAVA TIPS http://www.java-tips.org VISITADO EN 21/09/2007.
LARTEC, http://www.lartec.es/, VISITADO EN 02/03/2006.
SUN MICROSYSTEMS http://java.sun.com/ VISITADO EN 21/09/2007.
SÚPER INVENTOS, http://www.superinventos.com/domotica.htm, VISITADO EN
02/03/2006.
UNDERWRITERS LABORATORIES (UL) http://www.ul.com/ VISITADO EN
18/09/2007.
UNIVERSIDAD PONTIFICIA BOLIVARIANA http://convena.upb.edu.co/~domotica/
VISITADO EN 16/08/2007.
X10
HOME
SOLUTIONS,
http://www.x10.com/home.html,
02/03/2006.
106
VISITADO
EN
ANEXOS
ANEXO A: FEDERAL COMMUNICATIONS COMMISSION (FCC)
FEDERAL COMMUNICATIONS
COMMISSION
WASHINGTON, D.C. 20554
GRANT OF EQUIPMENT
AUTHORIZATION
X 10 (USA) Inc
620 Naches Ave SW, Building A
Renton, WA 98057
United Status
Date of Grant: 03/19/1996
Application Dated: 02/13/1996
Attention: Dave Rye , Vice President / Technical Manager.
NOT TRANSFERABLE:
EQUIPMENT AUTHORIZATION is hereby issued to the named GRANTEE, and is
VALID ONLY for the equipment identified hereon for use under the Commission's
Rules and Regulations listed below.
107
FCC IDENTIFIER: B4SCM10A
Name of Grantee: X 10 (USA) Inc
Equipment Class: Part 15 Class B Computing
Device Peripheral
Notes:
Home Controller Serial
Interface
Grant Notes
16 37
FCC Rule Parts
15B
If the subject device requires shielded interface cables to ensure compliance, the
user's manual must advise the user of this requirement.
This device has shown compliance with new rules adopted under Docket 87-389
and is not affected by Section 15.37, transition rule.
• ELECTROMAGNETIC COMPATIBILITY (EMC)
The body responsible for regulation of EMC emissions in the USA is the Federal
Communications Commission (FCC). The specific regulations are Part 15 (Radio
Frequency Devices) and Part 18 (Industrial, Scientific and Medical Equipment).
All equipment liable to cause radio frequency interference is subject to the
requirements of the FCC.
Part 15 covers devices, including digital devices, which use radio-frequency energy
108
and may be intentional or unintentional radiators. Certain devices are exempted,
including:
• Digital devices used exclusively as industrial, commercial or medical test
equipment.
• Digital devices used exclusively in an appliance, e.g. dishwasher, air conditioner,
etc.
• Digital devices having a power consumption not exceeding 6 Nw.
Operation of an exempt device may be stopped by the FCC if the device is found
to cause harmful interference. Operation may be resumed only after the condition
causing the interference has been corrected.
Testing to Part 15 can be either to the limits given in the text of the regulations, or
according to CISPR 22, with the following points applying:
• The limits CISPR 22 must be used in their entirety. You cannot mix results using
CISPR 22 and Part 15.
• Additional testing above 1GHz must be carried out for equipment with clock
frequencies above 108MHz.
• The test procedures must be those specified in Part 15 and ANSI C63.4, not
those in CISPR 22
• Testing must be carried out using the same mains power supply as used in the
USA, i.e. 120V, 60Hz.
109
Subpart C of Part 15 covers intentional radiators and gives details of permitted
frequency ranges and field strengths.
Part 18 covers industrial, scientific and medical equipment which emits radio
frequency energy. Medical diathermy and ultrasonic equipment is also included.
Testing is required for conducted and radiated emissions. Note that other US
authorities may have additional EMC requirements, e.g. medical equipment may
require immunity testing for FDA requirements.
Testing to Part 18 is to the limits given in the text of the regulations.
• TELECOM TERMINAL EQUIPMENT
Part 68 of the FCC rules (47 C.F.R. Part 68) governs the direct connection of
Terminal Equipment (TE) to the Public Switched Telephone Network (PSTN), and
to wireline carrier-owned facilities used to provide private line services. Part 68 also
contains rules concerning Hearing Aid Compatibility and Volume Control (HAC/VC)
for telephones, dialing frequency for automated dialing machines, source
identification for fax transmissions, and technical criteria for inside wiring.
Many technical and administrative functions mandated by Part 68 have been
privatized.
In December 1998, the Federal Communications Commission (FCC) adopted new
rules to streamline its equipment authorization requirements by allowing
Telecommunications Certification Bodies (TCBs) to certify equipment under Parts 2
110
and 68 of the Commission's Rules. The requirements for TCBs were specified in
the Commission's Report and Order (R&O) in GEN Docket 98-68 (FCC 98-338),
adopted on December 17, 1998. Under the Report and Order, TCBs are required
to be accredited by the National Institute of Standards and Technology (NIST), or
by a NIST recognized accreditor. The American National Standards Institute
(ANSI) applied to NIST for recognition as an accreditor of TCBs. NIST has
evaluated ANSI's technical competency to carry out this accreditation function
through onsite assessment and witness audits.
However, the FCC retains the responsibility to enforce Part 68 rules.
RADIO EQUIPMENT
FCC Regulations for radio equipment are listed as below:
FCC Part 11 – Emergency Alert System
FCC Part 15 - Radio frequency devices
FCC Part 24 – Personal Communication Device
FCC Part 20 – Commercial Mobile Radio Services
FCC Part 21 – Domestic Public Fixed Radio Service
FCC Part 22 – Public mobile services
FCC Part 23 – International Fixed Public Radiocommunication Service
FCC Part 25 – Satellite Communications
FCC Part 26 – General Wireless Communications Service
FCC Part 27 –Wireless Communications Service
FCC Part 90 – Private Land Mobile Radio Services
FCC Part 95 – Personal Radio Services
FCC Part 100 – Direct Broadcast Satellite Service
FCC Part 101 – Fixed Microwave Services
111
ROUTES TO FCC COMPLIANCE
1. Declaration of Conformity
Class B personal computers and their peripherals, and consumer ISM equipment
(e.g. microwave ovens) are authorized by the Declaration of Conformity procedure
or the Certification procedure. The manufacturer must
• Get the product tested at a laboratory which has been accredited by A2LA or
NAVLAP for EMC testing.
• Prepare a technical file
• Mark the product and place the requirement FCC notices in the user manual
• Prepare and sign a Declaration of Conformity
2. Certification
Certification is an alternative route for those products requiring a Declaration of
Conformity. Certain other products (e.g. scanning receiver, intentional radiators)
always require certification. The manufacturer must:
• Get the product tested at a laboratory which has been listed by the FCC
• Submit the test report, together with a proposed FCC ID Number to the FCC
• If approval is granted, mark the product with the FCC ID number and compliance
statement, and place the required FCC notices in the user manual.
112
3. Verification
For products for which Certification or Declaration of Conformity are not required,
verification is the necessary procedure. The manufacturer must:
• Get the product tested
• Retain the verification records for possible review by the FCC
• Mark the product with a compliance statement, and place the required FCC
notices in the user manual.
MARKINGS AND DOCUMENTATION
Part 15.
For a Class A digital device or peripheral, the user instructions shall include the
following or similar statement, placed in a prominent location in the text of the
manual:
Note:
This equipment has been tested and found to comply with the limits for a Class A
digital device, pursuant to part 15 of the FCC Rules. These limits are designed to
provide reasonable protection against harmful interference when the equipment is
operated in a commercial environment. This equipment generates, uses, and can
radiate radio frequency energy and, if not installed and used in accordance with the
instruction manual, may cause harmful interference to radio communications.
Operation of this equipment in a residential area is likely to cause harmful
interference in which case the user will be required to correct the interference at his
own expense.
Modifications not expressly approved by the manufacturer could void the user's
authority to operate the equipment under FCC rules.
113
For a Class B digital device or peripheral, the user instructions shall include the
following or similar statement, placed in a prominent location in the text of the
manual.
Note:
This equipment has been tested and found to comply with the limits for a Class B
digital device, pursuant to part 15 of the FCC Rules. These limits are designed to
provide reasonable protection against harmful interference in a residential
installation. This equipment generates, uses and can radiate radio frequency
energy and, if not installed and used in accordance with the instructions, may
cause harmful interference to radio communications. However, there is no
guarantee that interference will not occur in a particular installation. If this
equipment does cause harmful interference to radio or television reception, which
can be determined by turning the equipment off and on, the user is encouraged to
try to correct the interference by one or more of the following measures:
• Reorient or relocate the receiving antenna.
• Increase the separation between the equipment and receiver.
• Connect the equipment into an outlet on a circuit different from that to which the
receiver is connected.
• Consult the dealer or an experienced radio/TV technician for help.
Modifications not expressly approved by the manufacturer could void the user's
authority to operate the equipment under FCC rules.
All other devices shall bear the following statement in a conspicuous location on
the device:
This device complies with part 15 of the FCC Rules. Operation is subject to the
following two conditions:
114
This
device
may
not
cause
harmful
interference,
and
This device must accept any interference received, including interference that may
cause undesired operation.
Products which has been approved by the Certification process, must also have a
label showing the FCC ID number. The label must contain this information in the
form:
FCC ID: XXXYYYYYYY
where XXX is the manufacturer's FCC grantee code and YYYYYYY is the
equipment code, consisting of between 1 and 14 characters and may be a
combination of capital letter, numbers and may include a dash (-).
Products which have been approved by the Declaration of Conformity procedure
must display a label similar to the example given here.
In addition a declaration of the type shown below must be prepared, signed and
kept with the product technical file.
115
SIEMIC provides compliance testing, certification and consultancy on FCC
Compliance. To get an Estimate from SIEMIC, download SIEMIC International
Approvals Questionnaires Form, complete the form with a list of products.
ANEXO B: UNDERWRITERS LABORATORIES (UL)
Los productos están divididos en cinco categorías diferentes:
1. Línea Blanca Grande
Aparatos eléctricos destinados principalmente al uso doméstico / residencial y que
no son portátiles, incluyendo:
• Calefactores; montados en el piso, pared o techo
• Aparatos para cocina
• Congeladores y refrigeradores
• Lavadoras
• Aire acondicionado y accesorios
• Humidificadores y deshumidificadores
• Dispositivos de bombeo de agua operados por motor
2. Línea Blanca Pequeña
Aparatos eléctricos portátiles destinados principalmente al uso doméstico /
residencial incluyendo:
• Aspiradoras y sopladores para limpieza
116
• Planchas, máquinas para el mantenimiento de vestuario, máquinas de coser y
cortar
• Aparatos para corte y tratamiento de cabellos y afeitadoras
• Cafeteras, y aparatos similares
• Equipos para masajes y ejercicios físicos
• Aparatos para higiene personal
• Máquinas para hacer helados
3. Aparatos destinados a uso en sitios industriales o comerciales.
Estos aparatos pueden ser portátiles, estacionarios o instalados permanentemente
en un local, incluyendo:
• Equipos de aire acondicionado y sus accesorios (filtros de aire, etc.)
• Cocinas, hornos y aparatos similares
• Refrigeradores y congeladores, cámaras frigoríficas y aparatos similares
• Equipo manual dispensador de bebidas y alimentos
• Equipo mecánico comercial para la preparación de alimentos, sanidad
• Equipo de ventilación para cocinas industriales
• Mezcladoras de cemento portátiles
• Máquinas expendedoras (vending)
• Lavadoras de vajilla industriales
• Equipos para sellar, envolver y rotular
• Máquinas limpiadoras industriales
• Dispositivos de bombeo de agua operado por motor
• Aparatos para calefacción y refrigeración
4. Herramientas Manuales y Estacionarias.
117
Aparatos eléctricos para agregar a un edificio herramientas de limpieza y otros
procesos similares en residencias, locales comerciales o industriales.
Estos aparatos pueden ser portátiles o estacionarios, incluyendo:
• Herramientas eléctricas portátiles
• Compresores, bombas de vacío y pistolas para pintar neumáticos
• Fresadoras eléctricas y similares
• Máquinas para dar acabado a pisos
• Herramientas estacionarias
ANEXO C: MANUALES DE USUARIO MÓDULOS X-10 ACTIVEHOME
• Módulo CM11A-C
118
119
120
121
122
• Módulo LM465
123
124
• Mini Transceiver, TM751-C
125
126
127
• Sensor de movimiento MS14A-C
128
129
130
ANEXO D: LINEA DE CODIGO PROGRAMA CONTROLADOR MÓDULOS
• Parte 1 Programa Servidor
import java.rmi.*;
import java.rmi.server.*;
import java.io.*;
import java.net.*;
import rmiProtocoloJavaX10.Servidor_Java_x_10;
import java.io.*;
import java.net.*;
import java.util.*;
public class Servidor_Java_x_10_Impl extends UnicastRemoteObject implements
Servidor_Java_x_10{
private Connection conexion;
private String url, error="Error";
private Statement sentencia;
private boolean hayresultado;
private ResultSet resultado;
InputStream inputStream;
static OutputStream outputStream;
static String defaultPort = "";
static CommPortIdentifier portId;
static CommPortIdentifier saveportId;
static Enumeration portList;
SerialPort serialPort;
Thread readThread;
static String messageString = "Bienvenido";
static boolean outputBufferEmptyFlag = false;
public Servidor_Java_x_10_Impl() throws RemoteException
{
super();
131
//direccion = dir;
//Detectar el puerto por defecto en el sistema operativo
boolean portFound = false;
String osname = System.getProperty("os.name", "").toLowerCase();
if (osname.startsWith("windows"))
{
// windows
defaultPort = "COM1";
}
else if (osname.startsWith("linux"))
{
// linux
defaultPort = "/dev/ttyS0";
}
else if (osname.startsWith("mac"))
{
// mac
defaultPort = "???";
}
else
{
System.out.println("Sorry, your operating system is not supported");
System.exit(1);
}
System.out.println("Set default port to " + defaultPort);
//Detectar puertos disponibles
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements())
{
portId = (CommPortIdentifier)portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
System.out.println("Available port: " + portId.getName());
if (portId.getName().equals(defaultPort))
{
System.out.println("Found port: " + defaultPort);
portFound = true;
//nulltest reader = new nulltest();
break;
132
}
}
}
if (!portFound)
{
System.out.println("port " + defaultPort + " not found.");
System.exit(1);
}
//Configurar e iniiciar el puerto
try
{
serialPort = (SerialPort)portId.open("SimpleReadApp", 2000);
}
catch (PortInUseException e) { }
try
{
inputStream = serialPort.getInputStream();
}
catch (IOException e) { }
try
{
serialPort.addEventListener(this);
}
catch (TooManyListenersException e) { }
serialPort.notifyOnDataAvailable(true);
try
{
serialPort.setSerialPortParams(4800, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
catch (UnsupportedCommOperationException e) { }
initwritetoport();
}
133
public void serialEvent(SerialPortEvent event)
{
switch (event.getEventType())
{
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[20];
try
{
int numBytes = 0;
while (inputStream.available() > 0)
{
numBytes = inputStream.read(readBuffer);
}
String result = new String(readBuffer);
System.out.println("Read: " + result);
System.out.println("numBytes: " + numBytes);
result = result.substring(0, numBytes);
// textArea.append(result + newline);
//Make sure the new text is visible, even if there
//was a selection in the text area.
//textArea.setCaretPosition(textArea.getDocument().getLength());
}
catch (IOException e) { }
break;
}
}
void initwritetoport()
134
{
// initwritetoport() assumes that the port has already been opened and
initialized
try
{
outputStream = serialPort.getOutputStream();
}
catch (IOException e) { }
try
{
serialPort.notifyOnOutputEmpty(true);
}
catch (Exception e)
{
System.out.println("Error setting event notification");
System.out.println(e.toString());
System.exit(-1);
}
}
public void sendstring(String string) throws RemoteException
{
System.out.println("Send: " + string);
try
{
outputStream.write(string.getBytes());
}
catch (IOException e) { }
}
public static void main(String lmr[])
{
System.err.println("Servidor inicializandose, por favor espere");
try
{
135
defaultPort = lmr[1];
ServidorSerialPort2Impl serve = new ServidorSerialPort2Impl();
System.out.println(serve);
Naming.rebind(lmr[0], serve);
System.out.println("Servidor listo...");
}
catch (Exception e)
{
System.err.println("Error en servidor PUERTO SERIE");
e.printStackTrace();
}
}
}
• Parte 2 Interface Cliente – Servidor
package rmiProtocoloJavaX10;
import java.rmi.*;
public interface Servidor_Java_x_10 extends Remote
{
public void sendstring(String string) throws RemoteException;
}
136
• Parte 3 Programa Cliente
package rmiProtocoloJavaX10;
import java.rmi.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import rmiProtocoloJavaX10.Servidor_Java_x_10;
//import rmiProtocoloJavaX10.Imagen;
public class Java_x_10_Cliente extends JFrame implements ActionListener{
private JPanel encabezado,textos,campos,blanco,usuario;
static JPanel botones;
private JButton btnPrender,btnApagar;
static Imagen logo;
private Container c;
private String url,resultado;
private Servidor_Java_x_10 objeto;
public Java_x_10_Cliente()
{
super("Acceso a su Casa");
c=getContentPane();
confEncabezado();
confBotones();
btnPrender1.addActionListener(this);
btnApagar1.addActionListener(this);
btnPrender2.addActionListener(this);
btnApagar2.addActionListener(this);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent eve){
System.exit(0);
}
});
}
137
private void confEncabezado(){
encabezado=new JPanel();
encabezado.setLayout(new GridLayout(3,1));
titulo=new JLabel("Controlador de Módulos");
titulo.setFont(new Font("Arial",Font.BOLD,20));
titulo.setHorizontalAlignment(JLabel.CENTER);
c.add(encabezado,BorderLayout.NORTH);
}
private void confImagen(){
logo=new Imagen();
c.add(logo,BorderLayout.CENTER);
}
private void confBotones(){
botones=new JPanel();
botones.setLayout(new GridLayout(1,6));
btnPrender1 = new JButton("Prender Modulo Lampara");
btnApagar1 = new JButton("Apagar Modulo lámpara");
btnPrender2 = new JButton("Prender Transceiver");
btnApagar2 = new JButton("Apagar Transceiver");
botones.add(btnPrender1);
botones.add(btnApagar1);
botones.add(btnPrender2);
botones.add(btnApagar2);
c.add(botones,BorderLayout.SOUTH);
botones.setVisible(false);
}
public void actionPerformed(ActionEvent eve){
if (eve.getSource() == btnPrender1)
{
try{
url = "//200.118.138.51/Java_x_10";
//url = "//200.106.142.42/Java_x_10";
objeto = (Servidor_Java_x_10)Naming.lookup(url);
138
sendstring("046600000000/h");//cadena de encendido
sendstring("066200000000/h");
sendstring("066200000000/h");
sendstring("066200000000/h");
sendstring("066200000000/h");
}
catch(Exception ex){
JOptionPane.showMessageDialog(null,"Error de
conexion \n"
+ "con el servidor.\n Intente de nuevo.",
"Error",JOptionPane.INFORMATION_MESSAGE);
}
}
if (eve.getSource() == btnApagar1)
{
try
{
url = "//200.118.138.51/Java_x_10";
//url = "//200.106.142.42/Java_x_10";
objeto = (Servidor_Java_x_10)Naming.lookup(url);
sendstring("046600000000/h"); //cadena de apagado
sendstring("066300000000/h");
sendstring("066300000000/h");
sendstring("066300000000/h");
sendstring("066300000000/h");
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "Error de conexion \n"
+ "con el servidor.\n Intente de nuevo.",
"Error", JOptionPane.INFORMATION_MESSAGE);
}
}
if (eve.getSource() == btnPrender2)
{
try{
url = "//200.118.138.51/Java_x_10";
//url = "//200.106.142.42/Java_x_10";
objeto = (Servidor_Java_x_10)Naming.lookup(url);
sendstring("046E00000000/h");//cadena de encendido
139
}
catch(Exception ex){
JOptionPane.showMessageDialog(null,"Error de
conexion \n"
+ "con el servidor.\n Intente de nuevo.",
"Error",JOptionPane.INFORMATION_MESSAGE);
}
}
if (eve.getSource() == btnApagar2)
{
try
{
url = "//200.118.138.51/Java_x_10";
//url = "//200.106.142.42/Java_x_10";
objeto = (Servidor_Java_x_10)Naming.lookup(url);
sendstring("046E00000000/h"); //cadena de apagado
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "Error de conexion \n"
+ "con el servidor.\n Intente de nuevo.",
"Error", JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
140
Descargar