Diseño e implementación de un sistema domótico con dispositivos ...

el tiempo se empezaron a desarrollar para otros dispositivos como tablets, ... Para el desarrollo de las APPs se ha utilizado un PC con sistema operativo ...
5MB Größe 61 Downloads 119 vistas
UNIVERSIDAD POLITÉCNICA SALESIANA SEDE CUENCA

CARRERA DE INGENIERIA DE SISTEMAS

Tesis previa a la obtención del título de INGENIERO DE SISTEMAS

TEMA: “DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DOMÓTICO CON DISPOSITIVOS INALÁMBRICOS BASADO EN EL PROTOCOLO ZIGBEE Y CONTROLADOS MEDIANTE APLICACIONES PARA DISPOSITIVOS MÓVILES BAJO LA PLATAFORMA ANDROID Y COMPUTADORAS BAJO LA PLATAFORMA WINDOWS”

AUTORES: ÁNGEL SANTIAGO CÁRDENAS CALDAS FABIÁN DARÍO PACHECO PÉREZ

DIRECTOR: ING. DIEGO CHACÓN TROYA. Mdhd

CUENCA – ECUADOR 2015

Reseña del autor e información de contacto Ángel Santiago Cárdenas Caldas Estudiante de la carrera de Ingeniería en Sistemas Facultad de Ingenierías Universidad Politécnica Salesiana [email protected]

Fabián Darío Pacheco Pérez Estudiante de la Carrera de Ingeniería en Sistemas Facultad de Ingenierías Universidad Politécnica Salesiana [email protected]

DERECHOS RESERVADOS 2015, Universidad Politécnica Salesiana CUENCA - ECUADOR

CERTIFICA

Haber dirigido y revisado prolijamente cada uno de los capítulos del informe de tesis, realizado por Sr. Ángel Santiago Cárdenas Caldas y el Sr. Fabián Darío Pacheco Pérez, y por cumplir los requisitos autorizo su presentación.

Cuenca, Febrero 2015

DECLARACIÓN DE RESPONSABILIAD

Nosotros, Ángel Santiago Cárdenas Caldas portador de la cédula de ciudadanía CI:0302027529 y Fabián Darío Pacheco Pérez portador de la cedula de ciudadanía CI: 1400683353, estudiantes de la Facultad de Ingenierías en la especialidad de Ingeniería de Sistemas, certificamos bajo juramento que los conceptos desarrollados, los análisis realizados y demás contenido de la misma, son de exclusiva responsabilidad de los autores, y que hemos consultado las referencias bibliográficas incluidas en el presente documento. A través de la presente declaración cedemos los derechos de propiedad intelectual correspondientes a este trabajo, a la Universidad Politécnica Salesiana según lo establecido por la ley de Propiedad Intelectual, por su reglamento y por la Normativa Institucional Vigente.

Cuenca, Febrero 2015

DEDICATORIA

Este trabajo se lo dedico primeramente a mis padres Ángel Cárdenas y Rosa Caldas por darme la fortaleza y la dedicación para culminar mis estudios, y por haberme llenado de virtudes a lo largo de mi vida y por haberme enseñado a luchar para alcanzar mis metas. A mis hermanos por estar siempre ahí cuando los necesitaba y ser un ejemplo en mi vida. Y en especial se lo dedico a mi mujer Janneth que con su apoyo he podido culminar mis estudios y también todo este sacrificio es dedicado para mi hijo Sebastián que es la razón de mi vida. AGRADECIMIENTOS Principalmente agradezco a Dios por darme la fortaleza y haberme permitido llegar hasta donde estoy, por ser la principal guía en mi camino y haberme ayudado a superar y vencer todos los obstáculos en mi vida. Quiero agradecer a mi padre Ángel, por ser mi guía, por ser un excelente padre y siempre estar ahí en todos los momentos, por ser un ejemplo de vida con sus consejos y enseñanzas, a mi madre Rosa, por darme la vida y protegerme siempre y darme su cariño incondicional. A mis hermanos por ser un respaldo y haberme aconsejado de buena manera, y por siempre estar ahí en esos momentos difíciles alegrándome de alguna manera y animándome para continuar. Agradezco de una manera muy especial a esa persona que llego a mi vida a llenarme de alegrías y apoyarme en las buenas y en las malas, hablo de ti Janneth gracias por todo, por darme un hijo muy hermoso, quien es la razón de mi vida, la luz con la que me ilumino diariamente para seguir adelante te amo hijo. Agradezco a todos mis familiares, tíos, por darme siempre esos consejos con los que me he ido superando en mi vida, y por enseñarme siempre el valor de la vida. Finalmente agradezco al Ing. Diego Pacheco quien fue un pilar fundamental para realizar este proyecto de tesis y así cumplir con nuestros objetivos, al Ing. Diego Chacón quien nos supo guiar de una buena manera en el transcurso del proyecto.

Santiago Cárdenas Caldas

DEDICATORIA

A mis padres Segundo Roberto Pacheco y Reina Pérez Alarcón, por haberme brindado todo su apoyo, y lo más importante por haberme brindado un amor incondicional y jamás haberse dado por vencidos hasta lograr verme realizado profesionalmente. A mis hermanos Johnny y Adrián, por ser un ejemplo a seguir y que supieron apoyarme en los momentos difíciles y no haberme dado las espaldas, También dedico a mi mujer Lissette por haberme apoyado de una manera incondicional y por haber estado a mi lado en los momentos más difíciles, a mi hija Fabiana quien fue una gran inspiración para culminar mis estudios. AGRADECIMIENTOS Agradezco a mis padres, por haberme brindado una vida llena de alegrías, por ser un ejemplo a seguir, por haberme tenido la paciencia suficiente y apoyarme hasta terminar mi carrera universitaria, les agradezco por enseñarme a luchar y jamás darme por vencido, gracias por haberme dado la vida y aconsejarme para vivirla a plenitud, . A mis hermanos por estar siempre con sus concejos, por darme ánimo de seguir adelante, gracias por darme una mano y no dejarme vencer por los obstáculos que se me ha presentado en la vida, a pesar de la distancia siempre han estado conmigo apoyándome. Gracias Lissette, mi mujer, siempre has sido una amiga, compañera, por haberme apoyado en las buenas y en las malas, gracias por darme a Fabiana nuestra hija quien es mi adoración, gracias a las dos por haber llegado a mi vida a darme alegrías. A mis tíos Yolanda Niola y Salomón Pacheco, por haberme recibido en su hogar, gracias por tenerme paciencia que a pesar de no ser hijo de ustedes siempre supieron darme un amor incondicional. A mi primo Diego Pacheco, por habernos dado la oportunidad de realizar el proyecto de tesis en su hogar y así lograr la culminación del mismo. Al ingeniero Diego Chacón, por ser nuestro guía en el transcurso de la realización del proyecto de tesis.

Fabián Pacheco Pérez

TABLA DE CONTENIDO CAPITULO I

1

1

1

INTRODUCCION 1.1

Arquitectura del Protocolo ZigBee

1

1.1.1

Capa Física.

3

1.1.2

Capa de Control de Acceso al Medio

4

1.1.3

Capa de Red.

4

1.1.4

Capa de Aplicación

5

1.2

Dispositivos del Protocolo ZigBee

6

1.2.1

Coordinador ZigBee (ZigBee Coordinator, ZC).

6

1.2.2

Router ZigBee (ZR).

6

1.2.3

Dispositivo final (ZigBee end device, ZED).

6

1.2.4

Dispositivos basados en su funcionalidad.

7

Sistemas Operativos Windows, Android y Raspbian

7

1.3

1.3.1

Sistema Operativo Windows:

7

1.3.2

Sistema Operativo Android

9

1.3.3

Sistema Operativo Raspbian:

1.4

Sistema Domótico Inalámbrico

11 12

1.4.1

Dispositivos que componen un Sistema Domótico.

13

1.4.2

Diseño del Sistema Domótico Inalámbrico

15

CAPITULO II

18

2

18

CONFIGURACIÓN DEL HARDWARE 2.1

Sistema físico de comunicación que soporte el protocolo ZigBee.

18

2.1.1

Red ZigBee

18

2.1.2

Módulos XBee

19

2.2

Software X-CTU

2.2.1 2.3

Configuración de los dispositivos del protocolo ZigBee

Pruebas de la configuración del Hardware

24 26 31

2.3.1

Pruebas en modo API

31

2.3.2

Pruebas en modo AT

33

2.4 Implementación de los circuitos electrónicos ubicados entre los dispositivos del Protocolo ZigBee y los dispositivos a controlar. 34 2.4.1

Circuito Pre-Actuador Focos

34

2.4.2

Circuito Pre-Actuador Sirena

35

2.4.3

Circuito Pre-Actuador Sensor de Humo

35

2.4.4

Circuito Pre-Actuador Sensor de Movimiento.

36

Ubicación de los circuitos y componentes en el hogar.

36

2.5

2.5.1

Circuito de iluminación de la habitación.

36

2.5.2

Ubicación del circuito para el sensor de movimiento

37

2.5.3

Ubicación del circuito para el sensor de humo

37

2.5.4

Ubicación del circuito para la sirena

37

2.5.5

Ubicación del circuito de iluminación de la oficina

38

CAPITULO III

39

3 DESARROLLO DEL SERVICIO DE COMUNICACIÓN BAJO EL SISTEMA OPERATIVO RASPBIAN 39 3.1

Introducción al Servicio de Comunicación

39

3.1.1

Modelo Cliente/Servidor

39

3.1.2

Comunicación Cliente/Servidor mediante Sockets.

40

3.1.3

Herramientas para almacenamiento de datos

42

3.2

Requerimientos

43

3.3

Modelación

44

3.3.1 3.4

Diagramas

Implementación

45 48

3.4.1

Desarrollo del Módulo del Técnico (Servidor)

48

3.4.2

Implementación del Servidor en el Sistema Operativo Raspbian.

53

3.5

Pruebas del Servicio de Comunicación

57

3.5.1

Pruebas de conexión con la Base de Datos.

57

3.5.2

Pruebas de Usuarios

57

3.5.3

Pruebas con los Dispositivos.

59

CAPITULO IV

62

4 DESARROLLO DE LAS APLICACIONES PARA EL CONTROL DE LOS DISPOSITIVOS DEL PROTOCOLO ZIGBBE. 62

4.1

Introducción a las Aplicaciones

62

4.2

Requerimientos

62

4.3

Modelación

63

4.3.1 4.4

Diagramas

Implementación

63 67

4.4.1

Implementación del Cliente en Windows

67

4.4.2

Implementación del Cliente en Android

68

4.5

Pruebas y Modificaciones

69

4.5.1

Pruebas en la plataforma Windows.

69

4.5.2

Pruebas en la plataforma Android

71

CAPITULO V

73

5

73

ANALISIS DE RESULTADOS 5.1

Análisis de resultados de la configuración del hardware

73

5.2

Análisis de resultados del Servicio de Comunicación

77

5.3 Análisis de resultados de las Aplicaciones para el control de los dispositivos del Protocolo ZigBee 79 5.4

Análisis Económico

86

5.4.1

Valor Actual Neto (VAN)

86

5.4.2

Tasa Interna de Rendimiento;

86

5.4.3

Cálculos para el VAN

87

5.4.4

Cálculos para TIR.

88

CONCLUSIONES

90

RECOMENDACIONES

92

ANEXOS

94

Anexo 1 Tabla de Características de los XBee

94

Anexo 2 Manual de Técnico

96

Anexo 3 Manual de Usuario

103

BIBLIOGRAFÍA

106

INDICE DE FIGURAS FIGURA 1.1. CAPAS DEL PROTOCOLO ZIGBEE (GALLIFA, PROTOCOL ZIGBEE, 2006) ............................. 1 FIGURA 1.2. ARQUITECTURA DE RED ZIGBEE ................................................................................ 2 FIGURA 1.3. INTERFAZ DE INICIO DE WINDOWS 8.FUENTE ESPECIFICADA NO VÁLIDA. ........................... 9 FIGURA 1.4. CRECIMIENTO DE ANDROID EN ACTIVACIONES DE DISPOSITIVOS..................................... 10 FIGURA 1.5. DIAGRAMA DE ARQUITECTURA DE ANDROID. ............................................................ 11 FIGURA 1.6. ESCRITORIO DE RASPBIAN. FUENTE ESPECIFICADA NO VÁLIDA. ...................................... 12 FIGURA 1.7. DISEÑO DEL SISTEMA DOMÓTICO. .......................................................................... 15 FIGURA 1.8. PLANTA ALTA HOGAR ........................................................................................... 16 FIGURA 1.9. PLANTA BAJA HOGAR ........................................................................................... 17 FIGURA 2. 1. TOPOLOGÍA BÁSICA DE LA RED ZIGBEE (FERNANDO, 2012) ........................................ 18 FIGURA 2. 2. MÓDULO XBEE SERIES 2 ...................................................................................... 20 FIGURA 2. 3. VISTA SUPERIOR DEL MÓDULO XBEE SERIE 2 (DIGI) .................................................. 24 FIGURA 2. 4. VISUALIZACIÓN DE LAS PESTAÑAS EN EL SOFTWARE X-CTU ......................................... 25 FIGURA 2. 5. DESCRIPCIÓN DE LA CONFIGURACIÓN DEL PUERTO ..................................................... 25 FIGURA 2. 6. CONFIRMACIÓN DE LA CONFIGURACIÓN DEL PUERTO COM ......................................... 26 FIGURA 2. 7. CONFIGURACIÓN DEL DISPOSITIVO COMO COORDINADOR ............................................ 27 FIGURA 2. 8. CONFIGURACIÓN DEL DISPOSITIVO COMO ROUTER ..................................................... 28 FIGURA 2. 9. VISUALIZACIÓN DEL SH – SL DEL DISPOSITIVO........................................................... 29 FIGURA 2. 10. CONFIGURACIÓN DEL DISPOSITIVO DE MODO AT ..................................................... 30 FIGURA 2. 11. MEDICIÓN DEL VOLTAJE EN EL DISPOSITIVO XBEE .................................................... 31 FIGURA 2. 12. TRAMAS PARA HABILITAR EL PIN D3 DEL DISPOSITIVO XBEE ...................................... 32 FIGURA 2. 13. TRAMAS PARA DESHABILITAR EL PIN D3 DEL DISPOSITIVO XBEE ................................. 33 FIGURA 2. 14. CIRCUITO FOCO HABITACIÓN .............................................................................. 34 FIGURA 2. 15. CIRCUITO FOCO OFICINA .................................................................................... 34 FIGURA 2. 16. CIRCUITO SIRENA. ............................................................................................. 35 FIGURA 2. 17. CIRCUITO SENSOR DE HUMO ............................................................................... 35 FIGURA 2. 18. CIRCUITO SENSOR DE MOVIMIENTO. .................................................................... 36 FIGURA 2. 19. INSTALACIÓN DEL CIRCUITO DE ILUMINACIÓN DE LA HABITACIÓN ................................ 36 FIGURA 2. 20. INSTALACION DEL SENSOR DE MOVIMIENTO............................................................ 37 FIGURA 2. 21. INSTALACIÓN DEL SENSOR DE HUMO .................................................................... 37 FIGURA 2. 22. INSTALACIÓN DEL CIRCUITO DE LA SIRENA .............................................................. 38 FIGURA 2. 23. INSTALACIÓN DEL CIRCUITO DE ILUMINACIÓN DE LA OFICINA...................................... 38 FIGURA 3. 1. SERVICIO DE COMUNICACIÓN ................................................................................ 39 FIGURA 3. 2. COMUNICACIÓN DE SOCKETS CLIENTE-SERVIDOR (BONILLA, 2012).............................. 41 FIGURA 3. 3. PROPIEDADES DE WAMPSERVER 2.0 ...................................................................... 50 FIGURA 3. 4. INICIO DE SESIÓN ................................................................................................ 51 FIGURA 3. 5. OPCIONES DEL MÓDULO DEL SERVIDOR .................................................................. 52

FIGURA 3. 6. OPCIONES DE ROLES Y USUARIOS ........................................................................... 52 FIGURA 3. 7. OPCIONES DISPOSITIVOS XBEE .............................................................................. 53 FIGURA 3. 8. ARCHIVO DESCOMPRIMIDO ................................................................................... 54 FIGURA 3. 9. VERIFICACIÓN DE LA VERSIÓN DE JAVA ..................................................................... 54 FIGURA 3. 10. ARCHIVO LIBRXTXSERIAL.SO ................................................................................ 55 FIGURA 3. 11. CONTRASEÑA DEL USUARIO ROOT ........................................................................ 56 FIGURA 3. 12. CONTRASEÑA DEL ADMINISTRADOR DE PHP ADMIN ................................................ 56 FIGURA 3. 13. EJECUCIÓN DEL PROYECTO DE TESIS ...................................................................... 56 FIGURA 3. 14. MENSAJE DE USUARIO O CONTRASEÑA INCORRECTOS............................................... 57 FIGURA 3. 15. MENSAJE DE USUARIO Y CONTRASEÑA OBLIGADOS ................................................... 57 FIGURA 3. 16. MENSAJE DE ERROR AL ASIGNAR LOS ROLES ............................................................ 58 FIGURA 3. 17. MENSAJE DE CONFIRMACIÓN DE DATOS CORRECTOS ................................................ 58 FIGURA 3. 18. LISTADO DE LOS USUARIOS CON SUS ROLES RESPECTIVOS .......................................... 58 FIGURA 3. 19. MENSAJE DE DATOS MODIFICADOS CORRECTAMENTE ............................................... 59 FIGURA 3. 20. MENSAJE DE QUE SE HA ELIMINADO CORRECTAMENTE EL USUARIO.............................. 59 FIGURA 3. 21. MENSAJE DE ADVERTENCIA DE LLENAR LOS CAMPOS ................................................. 59 FIGURA 3. 22. MENSAJE DE DATOS CORRECTOS .......................................................................... 60 FIGURA 3. 23. LISTA DE DISPOSITIVOS INGRESADOS CORRECTAMENTE.............................................. 60 FIGURA 3. 24. MENSAJE DE MODIFICACIÓN DE DATOS CORRECTOS ................................................. 60 FIGURA 3. 25. MENSAJE DE ELIMINACIÓN CORRECTAMENTE .......................................................... 61 FIGURA 3. 26. LISTADO DE DISPOSITIVOS PARA VERIFICAR LA ELIMINACIÓN ....................................... 61 FIGURA 4. 1. INICIO DE SESIÓN CLIENTE WINDOWS...................................................................... 67 FIGURA 4. 2. OPCIONES DEL CLIENTE WINDOWS ......................................................................... 68 FIGURA 4. 3. INICIO DE SESIÓN DEL CLIENTE ANDROID .................................................................. 68 FIGURA 4. 4. OPCIONES DEL CLIENTE ANDROID ........................................................................... 69 FIGURA 4. 5. PRUEBAS INICIO SESIÓN ....................................................................................... 70 FIGURA 4. 6. USUARIO O CONTRASEÑA INCORRECTOS .................................................................. 70 FIGURA 4. 7. BOTÓN DE ACTIVAR LA SIRENA ............................................................................... 70 FIGURA 4. 8. USUARIO O CONTRASEÑA INCORRECTOS .................................................................. 71 FIGURA 4. 9. ENCENDIDO O APAGADO DE LA ILUMINACIÓN............................................................ 71 FIGURA 4. 10. OPCIONES DE LA PLANTA ALTA............................................................................. 72 FIGURA 5. 1. ALCANCE DE COMUNICACIÓN ENTRE DISPOSITIVOS XBEE ............................................ 74 FIGURA 5. 2. VOLTAJE DE ALIMENTACIÓN DE UN XBEE. ................................................................ 75 FIGURA 5. 3. BASE PARA EL DISPOSITIVO XBEE ............................................................................ 76 FIGURA 5. 4. CIRCUITO ARMADO PARA LA ILUMINACION. .............................................................. 76 FIGURA 5. 5. CIRCUITO PARA EL SENSOR DE HUMO ..................................................................... 77 FIGURA 5. 6. RASPBERRY – PI.................................................................................................. 78 FIGURA 5. 7. ALMACENAMIENTO DEL SD DEL RASPBIAN ............................................................... 79 FIGURA 5. 8. CONFIRMACIÓN AL MOMENTO DE LA PETICIÓN DE ALARMA DESDE EL USUARIO................ 80 FIGURA 5. 9. CONFIRMACIÓN AL MOMENTO DE LA PETICIÓN DE ILUMINACIÓN DEL DORMITORIO DESDE EL USUARIO ...................................................................................................................... 80

FIGURA 5. 10. CONFIRMACIÓN AL MOMENTO DE LA PETICIÓN DE ILUMINACIÓN DE LA OFICINA DESDE EL USUARIO ...................................................................................................................... 81 FIGURA 5. 11. PETICIÓN DE ACTIVACIÓN DE LA ALARMA................................................................ 81 FIGURA 5. 12. PETICIÓN DE ILUMINACIÓN DEL DORMITORIO DESDE EL USUARIO ................................ 82 FIGURA 5. 13. PETICIÓN DE ILUMINACIÓN DE LA OFICINA DESDE EL USUARIO..................................... 82 FIGURA 5. 14. TIEMPOS DE PETICIONES DESDE CLIENTE WINDOWS DENTRO Y FUERA DEL HOGAR. ......... 84 FIGURA 5. 15. TIEMPOS DE PETICIONES DESDE CLIENTE ANDROID DENTRO Y FUERA DEL HOGAR. ........... 85 FIGURA A2. 1. LOGIN Y USUARIO DEL SERVIDOR .......................................................................... 96 FIGURA A2. 2. ADVERTENCIA, USUARIO O CONTRASEÑA INCORRECTO ........................................ 96 FIGURA A2. 3. OPCIONES, MANIPULACIÓN DE USUARIOS, MANIPULACIÓN DE DISPOSITIVOS .............. 97 FIGURA A2. 4. LISTA DE USUARIOS EXISTENTES. .......................................................................... 97 FIGURA A2. 5. VENTA PRINCIPAL DE MANIPULACIÓN DE USUARIO. ................................................ 98 FIGURA A2. 6. ADVERTENCIA, DATOS MODIFICADOS CORRECTAMENTE. ......................................... 98 FIGURA A2. 7. ADVERTENCIA, CONFIRMACIÓN DE ELIMINACIÓN DE USUARIO. .................................. 99 FIGURA A2. 8. CREAR USUARIO ............................................................................................... 99 FIGURA A2. 9. ADVERTENCIA, DEBE SELECCIONAR POR LO MENOS UN ROL. ...................................... 99 FIGURA A2. 10. ADVERTENCIA, LLENAR TODOS LOS CAMPOS. ...................................................... 100 FIGURA A2. 11. DATOS INGRESADOS CORRECTAMENTE. ............................................................ 100 FIGURA A2. 12. VENTANA PRINCIPAL DE MANIPULACIÓN DE DISPOSITIVOS. ..................................100 FIGURA A2. 13. NOMBRE DE DISPOSITIVO NO EXISTE .................................................................101 FIGURA A2. 14. ADVERTENCIA, DATOS MODIFICADOS CORRECTAMENTE. .....................................101 FIGURA A2. 15. ADVERTENCIA, ELIMINACIÓN DE DISPOSITIVOS EXITOSA........................................101 FIGURA A2. 16. LISTA DE DISPOSITIVOS EXISTENTES. ..................................................................102 FIGURA A2. 17. ADVERTENCIA, DATOS OBLIGATORIOS. .............................................................. 102 FIGURA A2. 18. ADVERTENCIA, DATOS INGRESADOS CORRECTAMENTE. ........................................102 FIGURA A3. 1. VENTANA PRINCIPAL DE LOGIN DEL CLIENTE ........................................................ 103 FIGURA A3. 2. ADVERTENCIA, USUARIO O CONTRASEÑA INCORRECTOS. ........................................103 FIGURA A3. 3. VENTA DE CONTROLES. .................................................................................... 104

INDICE DE TABLAS TABLA 1. 1. CARACTERÍSTICAS TÉCNICAS DE LA CAPA FÍSICA............................................................. 3 TABLA 2. 1. COMPARACIONES ENTRE XBEE SERIES 1 – XBEE SERIES 2 (DIGI I. , 2008) ...................... 21 TABLA 2. 2. DESCRIPCIÓN DEL DATASHEET DEL MÓDULO XBEE (DIGI) ............................................ 23 TABLA 2. 3. TIPOS DE TRAMAS API EN EL PROTOCOLO ZIGBEE: (DIGI) ............................................. 29 TABLA 5. 1. CLASES DE SD CON VELOCIDAD DE TRANSFERENCIA. .................................................... 78 TABLA 5. 2. ANÁLISIS DE DATOS PARA EL ALMACENAMIENTO ......................................................... 79 TABLA 5. 3. ENCENDIDO DE LOS DISPOSITIVOS FINALES CON WINDOWS FUERA DEL HOGAR .................. 81 TABLA 5. 4. APAGADO DE LOS DISPOSITIVOS FINALES CON WINDOWS FUERA DEL HOGAR .................... 82 TABLA 5. 5. ENCENDIDO DE LOS DISPOSITIVOS FINALES CON ANDROID FUERA DEL HOGAR .................... 82 TABLA 5. 6. APAGADO DE LOS DISPOSITIVOS FINALES CON ANDROID FUERA DEL HOGAR ...................... 83 TABLA 5. 7. ENCENDIDO DE LOS DISPOSITIVOS FINALES CON WINDOWS DENTRO DEL HOGAR ................ 83 TABLA 5. 8. APAGADO DE LOS DISPOSITIVOS FINALES CON WINDOWS FUERA DEL HOGAR .................... 83 TABLA 5. 9. ENCENDIDO DE LOS DISPOSITIVOS FINALES CON ANDROID DENTRO DEL HOGAR.................. 83 TABLA 5. 10. APAGADO DE LOS DISPOSITIVOS FINALES CON ANDROID DENTRO DEL HOGAR .................. 84 TABLA 5. 11. TABLA DEL ANÁLISIS ECONÓMICO .......................................................................... 87 TABLA 5. 12. ANÁLISIS DE LAS GANANCIAS EN DOS AÑOS .............................................................. 88 TABLA 5. 13. ANÁLISIS DE LAS GANANCIAS EN DOS AÑOS .............................................................. 88 TABLA ANEXO 1. 1 ................................................................................................................ 95

CAPITULO I 1 1.1

INTRODUCCION Arquitectura del Protocolo ZigBee

ZigBee es un estándar que define un conjunto de protocolos para el armado de red inalámbrica de corta distancia y baja velocidad de datos. Opera en las bandas de 868 MHz, 915 MHz y 2.4 GHz y puede transferir datos hasta 250 Kbps, hay muchos estándares que se pueden usar en redes de corto alcance tales como el 802.11 y Bluetooth pero hoy en día ZigBee es el estándar más aceptado para usar redes de sensores y actuadores, es por esta razón que a continuación se detalla cada una de las especificaciones de este protocolo, ZigBee opera con las siguientes capas dentro de su protocolo, como se muestra en la Figura 1.1. (Caprile, 2011)

Figura 1.1. Capas del Protocolo ZigBee (Gallifa, protocol ZigBee, 2006)

ZigBee se basa en el estándar de comunicación IEEE 802.15.4, es ideal para las redes domóticas, está diseñado para remplazar la expansión de los dispositivos individuales tales como los sensores, actuadores etc. ZigBee fue creado para cubrir la necesidad del mercado de un sistema a bajo coste dentro de un estándar para redes Wireless seguro y fiable, la alianza de empresas que forma ZigBee está trabajando conjuntamente con IEEE para asegurar una integración, completa y operativa que servirá para probar 1

dispositivos que se creen con esta tecnología, en conclusión ZigBee es el estándar basado en la tecnología necesaria para el control remoto de sensores/actuadores que se utilizan en la domótica. (Caprile, 2011) La Arquitectura de ZigBee sigue la pauta del estándar del modelo OSI (Open System Interconnection) que se conforman mediante capas, las dos primeras capas la Física (PHY, Physical Layer) que define los aspectos como la potencia del trasmisor y la sensibilidad del receptor, mientras que la capa de Acceso al medio (MAC, Medium Access Control) que es la encargada de proveer una interface entre la capa física y la capa de red, estas dos primeras capas son definidas por el estándar IEEE 802.15.4, las capas superiores son definidas por la Alianza de ZigBee, la capa de red (NWK) nos proporciona el enrutamiento y las funciones de multi-hop necesarias para crear diferentes topologías como la estrella, malla, árbol, etc. La capa de aplicación (APL) consta de dos subcapas la de Soporte de Aplicación (APS) y la ZDO (Zigbee Device Object) que son las responsables de mantener las tablas para los enlaces ya que la APS trata de descubrir también a otros dispositivos que están operando en su mismo espacio y la capa ZDO define la red de un dispositivo dentro de la red. (Caprile, 2011)

Figura 1.2. Arquitectura de red ZigBee (Caprile, 2011)

A continuación se detallará de una mejor manera las capas principales de la Arquitectura ZigBee, para proporcionar un mejor conocimiento acerca de sus funcionalidades.

2

1.1.1 Capa Física. Como se explicó la Capa Física está definida por el estándar IEEE 802.15.4-2003 la misma que permite elegir entre dos sub capas físicas que vienen dadas en función de la banda de frecuencia que se va utilizar. (Salgado, 2011-2012) La primera cubre la banda europea de 868 MHz o la americana de 915 MHz, utilizando modulación de Secuencia Directa de Espectro Ensanchado (DSSS), que nos proporciona lo siguiente: -

1 canal a 20 Kbps en la banda europea. 10 canales a 40 Kbps en la banda americana.

La segunda sub capa utiliza la banda de 2.450 Ghz usada mundialmente, y además se basa también en la modulación DSSS esta sub capa únicamente proporciona. (Salgado, 2011-2012) -

16 canales a 250 Kbps.

Las principales funcionalidades de la capa física son: -

La detección de la energía del receptor. Indicador de calidad del enlace. Evaluación del estado del canal. Activación y desactivación del transceiver. Transmisión y recepción de datos.

En la tabla 1-1 Resumen de las principales características técnicas de la capa física: Parámetro

2.4 GHz PHY

868/915 MHz PHY

Sensibilidad Máxima señal entra receptor Rechazo a canal adyacente Rechazo a canal alternante Potencia de salida Número de canales Espaciamiento entre canales Tasas de transmisión Datos Símbolos Chips

-85 dBm -20 dBm 0 dB -30 dBm -3 dBm 16 5 MHz

-92 dBm

250 Kbps 62.5 Kbaudios 2 Mchips/s

20/40 Kbps 20/40 Kbaudios 300/600 Mchips/s

1/10 Canal simple / 2 MHz

Tabla 1. 1. Características Técnicas de la capa Física

3

1.1.2 Capa de Control de Acceso al Medio La capa MAC es la encargada de proveer una interface entre la capa física y la capa de red, entre sus principales funcionalidades y responsabilidades de la capa MAC tenemos: (Folgado, 2010) -

-

-

-

Transmisión de tramas, sincronización y provisión de un mecanismo de transmisión confiable. Define estructuras de trama sencillas con el fin de reducir el consumo de energía de los terminales ZigBee. Asociación y des-asociación de dispositivos en la red, este proceso implementa re-asociación de terminales a una red, a la cual previamente ya se asoció y aun no la abandona. Esta característica es útil para re-asociar un dispositivo que fue reiniciado, conservando la dirección de red ya asignada. La Capa Mac permite diferenciar cada uno de los nodos de la red con un identificador único compuesto por 64 bits, que puede ser utilizado para el proceso de asociación o unión a la red, además dicho identificador sirve para comunicarse con otros dispositivos de la misma red. Permite garantizar el uso de slots de tiempo para el acceso al canal, esto se conoce como (GTS) el cual sirve como método de calidad de servicio que asigna a cada dispositivo una duración especifica de tiempo que es definida por el coordinador de la red dentro de súper-trama para realizar la tarea que requiera sin contención o latencia. Define 2 niveles de seguridad: No seguro, mediante listas de control de acceso, y modo seguro (encriptamiento) utilizando el estándar para encriptación simétrica AES (Algoritmo simétrico que usa la misma clave para encriptar y desencriptar los mensajes)

1.1.3 Capa de Red. Las principales responsabilidades de la capa de red son los mecanismos para unirse y abandonar una red, además tiene como tarea el descubrimiento y mantenimiento de rutas entre los dispositivos de la red. Adicionalmente, esta capa está a cargo de la labor de descubrimiento de vecinos y memorización de dicha información. En esta capa, el coordinador es responsable de iniciar una nueva red, cuando es necesario, y asignar direcciones a los nuevos dispositivos. (Passaret, 2005) Las funciones de enrutamiento y seguridad son también implementadas en este nivel. Las diferentes opciones que brinda el protocolo se pueden definir de un nodo a otro, así la capa de red debe configurar el conjunto de capas que forma la arquitectura del protocolo apropiadamente en cada uno de ellos.

4

Resumen de las responsabilidades de la capa de red. Las tareas más importantes de la capa de red son: -

Establecer una nueva red brindando topologías como árbol o malla. Agregar o quitar a un dispositivo a la red. Garantizar la comunicación dentro de toda la red más allá del alcance de un único nodo. Configurar a un nuevo dispositivo para que pueda operar en la red. Asignar direcciones de red a los dispositivos brindado una interface unificada para todos ellos. Sincronizar entre dispositivos usando balizas o encuestas. Rutear tramas a sus destinos.

1.1.4 Capa de Aplicación Consiste en la subcapa APS (Application Support) y la ZDO (ZigBee Device Object), la Capa de Aplicación tiene como responsabilidades el mantener las tablas para los enlaces, que consiste en balancear o adaptar dos dispositivos entre ellos, basados en los servicios y necesidades, cada una de las subcapas se pueden definir como: (Passaret, 2005) -

APS: Trata de descubrir otros dispositivos que están operando en su mismo espacio operativo. ZDO: Define el rol de un dispositivo dentro de la red.

En la capa de aplicación se inician o responden pedidos de enlaces y se establece una relación segura entre dispositivos, seleccionando un método de seguridad como una clave. El proyecto de tesis se enfocará en la sub capa de Aplicación que vendría a ser la capa ZDO. 1.1.4.1 Objetos ZigBee (ZDO) Fueron creados para simplificar el manejo de la red por las aplicaciones de los usuarios, los principales objetos ZigBee contiene perfiles de dispositivos ZigBee que solo se ocupan del manejo de red y no del intercambio de datos específico de la aplicación, esta capa contiene un conjunto de comandos y respuestas para realizar una exploración del canal, descubrir dispositivos, manejo de la potencia de transmisión. (Salgado, 20112012) ZigBee trabaja en una banda de frecuencias que incluye la 2.4 GHz (mundial), las cuales se dividen en las bandas de 902 a 928 MHz en EEUU y 866 MHz en Europa, la trasferencia de datos de hasta 250 Kbps puede ser trasmitida en diferentes rangos de frecuencia desde los 2.4 GHz (16 canales) hasta a 20 Kbps en la de 868 MHz (1 canal), 5

la distancia de transmisión puede variar desde los 10 metros hasta los 75, dependiendo mucho de la potencia de transmisión y del entorno en donde se encuentra la red ZigBee, al igual que una red WiFi la red ZigBee puede manejar el espectro ensanchado en la banda 2.4 GHz. (Salgado, 2011-2012) 1.2

Dispositivos del Protocolo ZigBee

El estándar inalámbrico de red ZigBee puede asumir o definir diferentes tipos de configuraciones dentro del mismo protocolo, en dicha configuración existen diferentes componentes principales que bien pueden ser un Nodo Coordinador o a su vez un Dispositivo Final. (Folgado, 2010) Los dispositivos finales pueden ser Dispositivos de Funciones Totales (FFD) o un Dispositivo de Funciones Reducidas (RFD), este último dispositivo es lo más pequeño y simple dentro de los nodos en el estándar ZigBee, este implementa únicamente un servicio mínimo de funciones. Una tercera opción es el componente del estándar que vendría siendo un ruteador, el cual es usado para la extensión de la red. La Clasificación de los dispositivos ZigBee depende de la funcionalidad que desempeñen y la complejidad de su estructura. 1.2.1 Coordinador ZigBee (ZigBee Coordinator, ZC). El tipo de dispositivo más completo. Puede actuar como director de una red en árbol así como servir de enlace a otras redes. Existe exactamente un coordinador por cada red, que es el nodo principal. Puede almacenar información sobre la red y actuar como su centro de confianza en la distribución de claves de cifrado. (Folgado, 2010) 1.2.2 Router ZigBee (ZR). Los Routers son dispositivos capaces de actuar como buffers para otros, estos son los encargados de coordinar a otro grupo de dispositivos, además ofrecen un nivel de aplicación para la ejecución de código de usuario, puede actuar como interconexión entre dispositivos separados en la topología de la red, estos dispositivos son capaces de formar la trama hacia otros Routers para que puedan llegar a su destino final. Al iniciar el proceso de asociación el Router recibe una dirección corta de 16 bits, el mismo puede retenerlo en su memoria interna no volátil. (Caprile, 2011) 1.2.3 Dispositivo final (ZigBee end device, ZED). Posee la funcionalidad necesaria para comunicarse con su nodo padre (el coordinador o Router), pero no puede transmitir información destinada a otros dispositivos. De esta forma, este tipo de nodo puede estar dormido la mayor parte del tiempo, aumentando la vida media de sus baterías. Estos dispositivos carecen la funcionalidad de Routing y siempre entregan sus mensajes a su coordinador de la red, cuando comienza el proceso de asociación de un end-divice, lo primero que hace es elegir a su padre y recibir una 6

dirección corta de 16 bits, esta dirección se mantiene durante toda la operación, cuando un end-divace es reiniciado el mismo queda nuevamente huérfano y cuando requiere puede realizar el proceso de asociación otra vez. (Folgado, 2010) Los dispositivos finales generalmente entran en un periodo de bajo consumo de energía, y emiten una trama al despertar, lo que permite que su coordinador les pueda entregar cualquier mensaje que tenga pendiente hacia ellos. 1.2.4 Dispositivos basados en su funcionalidad. Los Dispositivos que se detallan a continuación son los principales dentro del grupo de funcionalidad. 1.2.4.1 Dispositivos de funcionalidad completa (FFD). A estos dispositivos se les conoce también como nodo activo, estos son capaces de recibir mensajes en formato 802.15.4 gracias a su memoria adicional, puede funcionar como Coordinador o Router ZigBee, o puede ser usado en dispositivos de red que actúen de interfaz con los usuarios. (GC. Reports, 2013) 1.2.4.2 Dispositivos de funcionalidad reducida (RFD). También conocido como nodo pasivo, estos tienen la capacidad y funcionalidades limitadas con el objetivo de conseguir un bajo coste y una gran simplicidad, básicamente estos dispositivos son los sensores/actuadores de la red. Tanto los dispositivos activos como pasivos reducen su consumo gracias a que pueden permanecer dormidos la mayor parte del tiempo. Cuando se requiere su uso, el nodo ZigBee es capaz de despertar en un tiempo real, para volverse a dormir cuando deje de ser requerido, un nodo cualquiera despierta aproximadamente en 15 ms. (GC. Reports, 2013) 1.3

Sistemas Operativos Windows, Android y Raspbian

Un sistema Operativo resulta ser un conjunto de programas, los cuales se encargan de administrar los recursos del computador, para que el usuario los pueda utilizar. 1.3.1 Sistema Operativo Windows: Este sistema operativo es un sistema que está al alcance de todas las personas, tiene varias versiones, como es Windows 7 y su última versión Windows 8. La mayoría de las personas en todo el mundo adquieren el Sistema Operativo Windows por el hecho de que facilita un mayor número de aplicaciones, esto quiere decir que para Windows se han escrito más de 100000 programas, mientras que para Apple por ejemplo, tiene una cuarta parte de esta cifra. Por lo tanto, una empresa mediana o grande que esté dedicada a realizar programas y su objetivo sea extenderse en el mercado para llegar a adquirir una gran cantidad de usuarios debe ofrecer sus aplicaciones que puedan 7

trabajar dentro de la plataforma Windows, “porque es el sistema operativo que se encuentra instalado en el mayor número de computadores”. (Wilde, 2010) Con lo antes mencionado se puede decir que el sistema más utilizado por las personas es Windows, así se tendrá una gran disponibilidad de aplicaciones, de la misma manera, las empresas que desarrollan programas lo hacen para la plataforma Windows y así adquirir más clientes. A continuación se detalla una breve explicación de las versiones de los Sistemas Operativos más utilizados en la actualidad: 1.3.1.1

2009 Windows 7

Windows 7 a diferencia de otras versiones es que posee avances en reconocimiento de voz, es táctil, proporciona soporte para discos virtuales, tiene un mejor desempeño en procesadores multi núcleo, y su arranque es mucho más rápido que cualquier versión anterior, así como también se han agregado nuevas aplicaciones como aceleradores, gadgets, infrarrojo, y un sistema de redes domésticas denominado Grupo Hogar, etc. Esta versión puede ser instalada y utilizada en PC’s tanto en hogares como en oficinas, también en equipos portátiles, tablets, notebook entre otros. Entre las características de Windows 7 está el desarrollo de su interfaz, que es muy significativa la cual es fácil de utilizar e incluye características que permiten al usuario realizar tareas con mayor facilidad y rapidez, así también Windows 7 es más ligero, estable y rápido con respecto a su antecesor Windows Vista. (Perez, 2011) 1.3.1.2

2012 Windows 8, Windows 8.1

Cuando encendemos un computador que tenga instalado el Sistema Operativo Windows 8, los cambios a comparación con Windows 7 son muy evidentes, puesto que el cambio más importante que se puede apreciar a simple vista es la nueva interfaz de usuario, también se puede decir que el escritorio se ha reducido a una aplicación en sí, pero no ha perdido toda la potencia y funcionalidad que tiene Windows 7. (Halsey, 2009)

8

Figura 1.3. Interfaz de inicio de Windows 8. (Halsey, 2009)

Windows 8 está basado en un pequeño kernel denominado MinWin el mismo que provee todas las funcionalidades del Sistema Operativo. Este kernel ayuda con la compatibilidad a través de dispositivos y plataformas, también ayuda aumentar la seguridad, es algo parecido a lo que hace la empresa Apple, su Sistema Operativo se basa en este núcleo. (Perez, 2011) 1.3.2 Sistema Operativo Android Para este proyecto se realizará una aplicación en el sistema operativo móvil denominado Android, el cual no tiene muchos años de existencia, pero consta de una librería de Java la cual tiene más de 150 paquetes (APIs). (Soriano, 2012) Este Sistema Operativo está basado en el núcleo de Linux y es Open Source, el cual fue desarrollado para dispositivos móviles como son los teléfonos inteligentes, pero al pasar el tiempo se empezaron a desarrollar para otros dispositivos como tablets, reproductores MP3, etc. Los dueños de este Sistema Operativo son Android Inc., que es una empresa pequeña de Palo Alto, California fundada en el 2003. Los fundadores de Android Inc., Andy Rubin. Rich Miner, Nick Sears y Chris White, fueron los mismos que trabajaron después en Google. Esta firma fue vendida a Google en el 2005. (Mik, 2013) Para poder realizar aplicaciones para este sistema operativo no debemos seguir un tipo de desarrollo desconocido o diferente, más bien debemos tener conocimientos de Java puesto que en la realidad esta es una programación basada en Java. (Mik, 2013)

9

Este Proyecto de Tesis está basado en Android ya que se posee conocimientos básicos en programación Java, lo cual facilita de forma positiva el desarrollo de las APPs, es de ahí que se parte con las interfaces para controlar los diferentes dispositivos, los mismos que a su vez ayudarán a controlar la mayoría de dispositivos del hogar. Cabe recalcar que este sistema operativo se está convirtiendo en una plataforma móvil muy amplia a comparación de otras móviles. (Android) Tiene un rápido crecimiento, varias personas o millones compran hoy en día un dispositivo nuevo con Android, los mismos que empiezan a buscar nuevas aplicaciones de inmediato para su entretenimiento.

Figura 1.4. Crecimiento de Android en activaciones de dispositivos. (Android)

Este sistema operativo ofrece un IDE de java con funciones avanzadas, el mismo sirve de apoyo para todos los desarrolladores que tienen como objetivo realizar una aplicación para Android, dicho IDE permite desarrollar, depurar y empaquetar aplicaciones, para este proyecto se utiliza el IDE que es Eclipse y con ello se necesitará de un SDK, estas dos herramientas se puede encontrar en la página oficial de Android cuya dirección es http://developer.android.com/sdk/index.html Para el desarrollo de las APPs se ha utilizado un PC con sistema operativo Windows, además se realizó la aplicación en eclipse el mismo que es multiplataforma. 1.3.2.1 Arquitectura de Android. La arquitectura de Android está compuesta por los siguientes componentes: -

Aplicaciones: Son las aplicaciones se encuentran por defecto como, la aplicación de bienvenida, además podemos encontrar aplicaciones cuyas funciones son las 10

-

-

-

de abrir otras aplicaciones como por ejemplo el navegador web, programa de calendario, aplicación para SMS, etc. (P, 2011) Marco de Trabajo de Aplicaciones: Con este componente facilita a todos los desarrolladores a crear sus aplicaciones, el mismo ayuda acceder al conjunto de APIs y todas las funcionalidades que se puede encontrar en el teléfono , como fuentes de contenido, gestor de recursos, gestor de notificaciones, etc. (P, 2011) Librerías: Éstas bibliotecas se encuentran escritas en C y C++, ofrecen varios servicios como el visualizador en 2D y 3D, un motor de Base de Datos SQLite y un motor de navegación Web, etc. Android Runtime: Esta capa contiene un conjunto de bibliotecas las cuales ofrecen la mayor parte de funciones disponibles en el lenguaje Java. (Mik, 2013) Núcleo Linux: Android depende de Linux para brindar servicios al sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores. (Mik, 2013)

Figura 1.5. Diagrama de Arquitectura de Android. (Mik, 2013)

1.3.3 Sistema Operativo Raspbian: Esta distribución está basada en Linux, su terminología nace de la fusión de Raspberry Pi + Debian, se puede notar que está basado en el Sistema Operativo Debian utilizado para el hardware Raspberry Pi. Este sistema tiene más de 35000 paquetes pre compilados para su fácil instalación en Raspbeery Pi. Sin embargo, Raspbian no está afiliado de ninguna manera con la Fundación Raspberry Pi. (Nazim, 2014) 11

Debian fue creado en 1993 la misma que es una de las distribuciones más respetadas y estables, puesto que es la base de otras distribuciones de Linux, por ejemplo Ubuntu. Debido a que Raspbian está basado en Debian tiene los mismos beneficios de Debian, con esto garantizamos que Raspberry Pi sea potente ofreciendo aplicaciones como procesadores de texto, programas gráficos de gran alcance de juego 3D de Python entre otras (Bresnahan, 2013)

Figura 1.6. Escritorio de Raspbian. (Bresnahan, 2013)

Éste Sistema Operativo servirá como nuestro servidor para la comunicación entre las Apps y los dispositivos ZigBee. Como se había mencionado tiene la mayoría de las ventajas de Debian, por lo que es garantizado que se trabajará sin complicaciones. Aquí se puede instalar una gran variedad de software libre como por ejemplo LibreOffice que se puede trabajar ampliamente con documentos y hojas de cálculo. El Raspberry Pi es una computadora utilizada como una herramienta educativa, la cual está pensada para animar a las personas a experimentar con las mismas, para esta computadora se puede realizar programas en diferentes lenguajes de programación como C, Ruby, Java y Perl. “El Raspberry Pi se diferencia de un ordenador normal no solo por su precio y tamaño, sino también por su capacidad de integración con proyectos de electrónica.”. (Wallace, 2012) 1.4

Sistema Domótico Inalámbrico

“El término Domótica proviene de la unión de las palabras domus (que significa casa en latín) y tica (de automática, palabra en griego que significa «que funciona por si sola»).” (Carlos, 2013) Es decir, la domótica facilita automatizar todos los circuitos eléctricos de viviendas y edificios, aunque en instalaciones de edificios se suele denominar Inmótica. El sistema domótico debe ser capaz de integrarse en la instalación eléctrica de la vivienda, así como 12

también debe facilitar la integración con otros servicios de la vivienda, como seguridad, iluminación, etc. Un sistema Domótico ofrece una serie de prestaciones relacionadas con aspectos muy diferentes a la actividad que se desarrolla en una vivienda, más bien la domótica está dirigida a todos los aspectos que mejoren la calidad de vida de las personas que habitan en ella, esto puede ser. -

Seguridad Confort Ahorro Energético Comunicación

Para este sistema Domótico se utiliza en las siguientes áreas de aplicación: -

-

Seguridad y alarmas:  Alarmas anti intruso y robo.  Simulación de presencia. Sistemas de confortabilidad:  Control remoto de luminarias.

Los Sistemas Inalámbricos son sistemas descentralizados que permiten controlar cualquier actuador disponible en un hogar como son focos, alarmas, sensores, lámparas, etc., y no es necesario conectar los elementos domóticas con cables. El funcionamiento básico de los sistemas inalámbricos consiste en intercambiar señales mediante un módulo emisor con un módulo receptor. Los actuadores se conectan directamente a los receptores los cuales se encargan de pasar la tensión de trabajo desde la red eléctrica. Entonces, los emisores envían señales a estos receptores que se encuentran dentro de la misma frecuencia. (Carlos, 2013) Un Sistema Descentralizado podemos entender cuando existen varios nodos que tienen cada uno inteligencia propia, es decir, necesitan de un programa que relaciona entradas y salidas y además se comunican a través de un bus de datos común. (Carlos, 2013) Los sistemas inalámbricos operan en las bandas de 433 MHz, 868 MHz y 2.4 GHz siguiente el estándar IEEE 802.15.4 bajo la especificación ZigBee.” “Se puede decir que un dispositivo pertenece a un sistema domótico si es capaz de enviar y/o recibir información de otros elementos del sistema.” (Carlos, 2013) 1.4.1 Dispositivos que componen un Sistema Domótico. Los dispositivos que se pueden utilizar en un Sistema Domótico pueden variar desde un único dispositivo hasta varios interconectados, que realizan una solo acción, hasta amplios sistemas que controlan prácticamente todas las instalaciones dentro de un hogar, 13

estos dispositivos se pueden clasificar en varios grupos como se los detalla a continuación. (Gascón, 2014) -

Controladores. Medio de transmisión. Actuadores. Nodos Pre-Actuadores. Interface.

1.4.1.1 Controladores Estos son los que permiten actuar sobre el Sistema Domótico, bien de una forma automática comandados por centrales Domóticos previamente programados (pueden ser Celulares, PC’s. etc.), los mismos que pueden tener mandos a distancias por infrarrojos, por radiofrecuencia (hasta 50 m), estos elementos emiten órdenes por lo que consecuentemente necesitan un medio de transmisión. (Gascón, 2014) 1.4.1.2 Medio de Transmisión Es el encargado de transportar la información entre los dispositivos por medio inalámbrico o por un cable propio, según las nuevas tecnologías existen diferentes medios como son fibra óptica, red eléctrica, tecnología TCP/IP, siendo todos estos de forma alámbrica o inalámbrica. (Gascón, 2014) 1.4.1.3 Actuadores Son dispositivos capaces de recibir señales del sistema Domótico, entonces, se puede decir que cualquier dispositivo que se active con una señal eléctrica sería un actuador (Lámpara, Sirena). (Gascón, 2014) 1.4.1.4 Nodos Es un dispositivo (ZigBee) que recibe, procesa y envía las señales domóticas procedentes del Servidor Domótico, el mismo puede estar formado por uno o varios nodos interconectados entre sí. (Carlos, 2013) 1.4.1.5 Pre-Actuador Este es un componente electrónico que nos ayuda a la interconexión entre el Actuador principal y un nodo (Dispositivo XBee), este es un componente sumamente necesario ya que la carga eléctrica del hogar no es compatible con la carga del sistema Domótico, en el hogar funciona a 110 V y el sistema Domótico a 3.3 V. (Carlos, 2013) 1.4.1.6 Interface La interface ayuda a la muestra de información del sistema para los usuarios, en donde los mismos pueden interactuar con el sistema. (Gascón, 2014)

14

1.4.2 Diseño del Sistema Domótico Inalámbrico Los controladores servirán como emisores-receptores, los mismos deberán tener Sistema Operativo Android o plataforma Windows, estos podrán tener control sobre el Sistema Domótico. Así mismo se deberá tener nodos ya programados, un único módulo Coordinador conectado a nuestro servidor Raspberry PI mediante el puerto Serial, y los que van a estar conectados directamente con los Pre-Actuadores, estos estarán programados como Router API para enviar o recibir un pulso desde o hacia los actuadores. Para realizar una actividad dentro del hogar, los controladores deben estar previamente configurados dentro de una red interna para hacer peticiones al servidor mediante Sockets, siendo un requisito no necesario ya que también se podrá realizar peticiones de manera externa, es decir siempre y cuando tengan acceso a internet. La comunicación puede ser de dos maneras, mediante Wi-Fi el cual es un “medio de comunicación que utiliza señales invisibles de alta frecuencia que viajan por el aire para transportar la información que comparten los dispositivos del sistema domótico” (Folgado, 2010), o mediante cable de pares UTP, “este medio de comunicación establece el envío y recepción de la información del sistema domótico a través de cableado dedicado” (Folgado, 2010) cualquiera de las dos maneras siempre y cuando el Router distribuidor de Wi-Fi por ejemplo esté configurado con los puertos necesarios para dicha comunicación, con la intensión de que se pueda notificar Cliente/Servidor de manera interna o externa. La comunicación entre los nodos del Protocolo ZigBee se comunicarán entre sí mediante la frecuencia 2.4 GHz que operan los mismas. A continuación un diagrama del diseño de cómo será el Sistema Domótico Inalámbrico:

Figura 1.7. Diseño del Sistema Domótico.

15

Diseño del Hogar separado en sus diferentes plantas (Superior – Inferior)

Figura 1.8. Planta Alta Hogar

16

Figura 1.9. Planta Baja Hogar

17

CAPITULO II 2 2.1

CONFIGURACIÓN DEL HARDWARE Sistema físico de comunicación que soporte el protocolo ZigBee.

El Sistema de Comunicación que se utilizará en este proyecto de tesis será el protocolo ZigBee, con la utilización de los dispositivos XBee, este protocolo es un estándar de comunicación que ayuda la automatización del hogar. Trabaja con ondas de baja frecuencia de radio como método para controlar los dispositivos finales por medio inalámbrico. (Salgado, 2011-2012) 2.1.1 Red ZigBee La red de área personal ZigBee (PAN) consta de un coordinador y uno o más Routers y/o dispositivos finales, dicha red se crea cuando un coordinador selecciona un canal identificándose con su propio PAN ID, una vez que el coordinador ha iniciado su PAN puede permitir a un Router o a los dispositivos finales unirse a la misma. (Fernando, 2012) Cuando un Router o un dispositivo final se unen a una PAN reciben una dirección de 16 bits y puede transmitir o recibir datos de otros dispositivos en la PAN. Los Routers y el coordinador pueden permitir que otros dispositivos se unan al PAN, y pueden ayudar para asegurar que los datos se están transmitiendo correctamente al dispositivo destinatario. (Fernando, 2012) Los dispositivos finales (XBee End Device) pueden únicamente transmitir o recibir datos, pero no pueden encaminar los datos de un nodo a otro, ni pueden permitir que los dispositivos se unan al PAN, los dispositivos siempre se van a comunicar directamente al Router que los unieron, los End Device siempre deben tener una batería para su apoyo, o a su vez también pueden estar de modo de bajo consumo de energía. (Fernando, 2012)

Figura 2. 1. Topología Básica de la Red ZigBee (Fernando, 2012)

18

La dirección de red del coordinador PAN debe ser configurada, ya que esta dirección es la que permitirá la unión de los Routers a la red, cuando un Router se une a la red o un End Device, se establece una relación padre/hijo entre dos nodos, el nodo que permitió la unión es el padre, y el nodo que se unió es el hijo, cabe recalcar que dicha relación no es únicamente para el encaminamiento de datos. (Fernando, 2012) 2.1.1.1 Inicio de un Coordinador en la red ZigBee Cuando un coordinador va iniciar por primera vez una red, lo primero que realiza es una exploración de la energía en los múltiples canales de frecuencia para seleccionar un canal no utilizado y así poder iniciar su red (PAN). Después de la eliminación de los canales con los niveles más altos detectados, el coordinador emite una orden de arranque o petición 802.15.4 en los canales restantes de bajo nivel de energía, en ese momento el coordinador entrará a tomar parte de ese canal e inmediatamente iniciará su red PAN, después de arrancar, el coordinador podrá permitir que otros dispositivos se unan a su red PAN. (GC. Reports, 2013) 2.1.1.2 Inicio de un Router en la red ZigBee Cuando un Router va unirse por primera vez a la red PAN emitirá una orden de petición 802.15.4 en los múltiples canales para localizar la PAN más cercana, los Routers o Coordinadores que se encuentran cerca responderán a la solicitud con una trama de transmisión indicando el canal y el PAN ID en el que están operando. El Router escucha cada canal y examina las tramas recibidas, y determina a que dispositivo debe unirse si encuentra un PAN valido, el Router emite una solicitud de unión al dispositivo que la envió, si logra unirse, el Router recibirá entonces una confirmación del dispositivo, lo que indica que la unión se realizó con éxito, una vez que el Router se une al PAN, puede comunicarse con otros dispositivos en la red y permitir que los nuevos dispositivos se unan a ella. (GC. Reports, 2013) 2.1.1.3 Inicio de un dispositivo final (Ende Device ) en la red ZigBee Cuando un dispositivo final se une por primera vez a una red ZigBee debe localizar la red PAN, para ello los dispositivos finales siguen el mismo proceso como un Router, una vez que el dispositivo final se ha unido con éxito a la PAN, puede comunicarse con otros dispositivos. Sin embargo, ya que los dispositivos finales no pueden enrutar los datos, siempre debe comunicarse directamente con su padre y permitir a los padres que proporcionen los datos de la ruta en su nombre. (GC. Reports, 2013) 2.1.2 Módulos XBee Los Módulos XBee (Figura 2.2) sirven de buena forma para agregar conectividad inalámbrica a un proyecto ya que proveen dos formas amigables de comunicación, Transmisión serial transparente modo AT y el modo API que provee muchas ventajas. Los Módulos XBee pueden ser configurados desde el PC utilizando el programa llamado

19

X-CTU que se explicará más adelante de este proyecto, o bien pueden ser configurados desde un micro controlador. Los módulos XBee pueden comunicarse en arquitecturas punto a punto o punto a multipunto o en una red mesh. Se pueden encontrar en el mercado una variedad de dispositivos XBee, se podrá observar una tabla comparativa de los módulos XBee más importantes en el Anexo 1 los mismos que se diferencian por su potencia y capacidades como la velocidad de transmisión y números de canales. (Faludi, 2011)

Figura 2. 2. Módulo XBee series 2

Los módulos XBee pueden ser configurados de dos diferentes maneras, con los adaptadores XBee Explorer Serial o XBee Explorer USB el mismo que se utilizará para la configuración de los XBee. Debido a que los módulos XBee tienen una separación de pines de 2mm, se recomienda utilizar una tarjeta adaptadora la cual permite conectar los módulos en cualquier protoboard estándar con separación de 0.1 pulgadas, así facilitará las pruebas necesarias en su configuración. (Faludi, 2011) Los Módulos XBee son económicos, poderosos y fáciles de utilizarlos, a continuación se detallan algunas de sus principales características. (Faludi, 2011) -

Buen Alcance: hasta 300ft (100 mts) en línea de vista para los módulos XBee y hasta 1 milla (1.6 Km) para los módulos XBee Pro. 9 entradas/salidas entre analógicas y digitales.

20

-

Bajo consumo 50mA cuando están en funcionamiento y 10UA cuando están en modo Sleep. Interfaz serial. 65.000 direcciones para cada uno de los 16 canales disponibles, los cuales se pueden tener vrios de estos dispositivos en una misma red. Fáciles de integrar.

Existen 2 series diferentes de los módulos XBee, la serie 1 y la serie 2 o también más conocida como 2.5, los módulos de las dos series tienen el mismo pin-out, sin embargo, no son compatibles entre sí ya que utilizan distintos chipset y trabajan con protocolos diferentes. 2.1.2.1 Las Principales diferencias entre el XBee Serie 1 vs el XBee Series 2 Los dos XBee más comunes que están disponibles desde Digi son la Serie 1 y Serie 2, estos son módulos bastante similares, pero la selección de un módulo debe basarse en las necesidades específicas de la aplicación. (Gascón, 2014). Todos los radios XBee tienen la mayoría de pines compatibles pero no son interoperables, la Serie 1 y Serie 2 utilizan diferentes perfiles de aplicación que son únicos para cada familia de radios, sin embargo pueden utilizar los mismos RS232 o USB. Se detalla una comparación específica de sus principales funcionalidades entre los módulos Series 1 y Series 2 en la siguiente tabla. Descripción Alcance Interior Alcance Exterior con línea de vista Potencia de salida Voltaje de Alimentación Frecuencia Dimensiones Temperatura de funcionamiento Topología de red Número de Canales

XBee Series 1 up to 100 ft. (30m)

XBee Series 2 up to 133 ft. (40m)

up to 300 ft. (100m)

Up to 400 ft. (120m)

1 mW (0dbm) 2.8 - 3.4 V ISM 2.4 GHz 0.0960 ” x 1.087 ”

2 mW (+3dbm) 2.8 – 3.6 V ISM 2.4 GHz 0.0960 ” x 1.087 ”

- 40 to 85 C

- 40 to 85 C

Punto a punto, estrella, malla 16 canales de secuencia directa

Punto a punto, estrella, malla 16 canales de secuencia directa

Tabla 2. 1. Comparaciones entre XBee Series 1 – XBee Series 2 (Digi I. , 2008)

21

Puesto que las especificaciones de hardware son similares, las diferencias entre XBee Series 1 y Series 2 son más evidentes en las características del firmware. A continuación se enumeran algunos de las diferencias.

-

802.15.4: XBee Serie 1 viene con un firmware 802.15.4 que ofrece topologías de punto a punto o estrella, este firmware también ofrece ADC (Analógico ha Digital) de entrada y de salida, la 802.15.4 XBee es significativamente más rápido que ZigBee, el rendimiento máximo en la práctica es de 80 Kbps. (Gascón, 2014)

-

ZigBee: El XBee Series 2 no ofrece firmware que es lo contrario al 802.15.4, sin embargo el ZigBee sobresale en escenarios de muy baja potencia, cuando se configura como un dispositivo final, este módulo tiene el consumo de corriente más baja que cualquier producto Digi. Sin embargo, la infraestructura de una red ZigBee es más compleja y requiere de más configuraciones para implementarla. El principal beneficio de una ZigBee XBee es la compatibilidad con dispositivos de otros fabricantes y una profunda integración con dispositivos de la nube. (Gascón, 2014)

El XBee Serie 1 tiene el firmware DigiMesh instalado, DIgiMesh es el protocolo de red de malla patentada por Digi y es directamente comparable con ZigBee. Esto permite una pequeña red para ser implementada como una topología en estrella, y más tarde convertirse en una red de malla completa sin sustitución de hardware. (Wilde, 2010) Se utilizará en el proyecto de tesis los XBee Serie 2, estos están basados en el chipset de Ember y están diseñados para ser utilizados en aplicaciones que requieren repetidores o una red mesh. Este módulo puede ser utilizado en modo AT y API. (Wilde, 2010), A continuación se detallan cada uno de los Pines del Módulo XBee. Pin #

Name

Direction

Default State

Description

1 2 3 4

VCC DOUT DIN/CONFIG DIO12

Output Input Both

Output Input Disabled

5

RESET

Both

Open-Collector with pull-up

Both

Output

Both

Input

Power UART Data Out UART Data In Digital I/O 12 Module Reset (reset pulse must be at least 200 ns) Rx Signal Strength indicator / Digital IO Digital I/O 11

6 7

RSSI PWM/DIO10 DIO11

22

10 11

[reserved] DTR/SLEEP_R Q/DIO8 GND DIO4

12

CTS / DIO7

Both

Output

13

ON/SLEEP

Output

Output

14

VREF

Input

-

15

15 Associate / DIO5

Both

Output

16

RTS/DIO6

Both

Input

17

AD3/DIO3

Both

Disabled

18

AD2/DIO2

Both

Disabled

19

AD1/DIO1

Both

Disabled

20

AD0/DIO0/ Commissioning Button

Both

Disabled

8 9

-

Disabled

Both

input

Both

Disabled

Do not connect Pin Sleep Control line or Digital IO8 Ground Digital I/O4 Clear-to-Send Flow control or Digital I/O7, CTS, if enable, is an output Module Status Indicator or Digital I/O9 Not used for EM250. Used for programmable secondary processor. For compatibility with other XBEE modules, we recommend connecting this pin voltage reference if Analog sampling is desired. Otherwise, connect to GND Associated Indicator, Digital I/O 5 Request-to-Send Flow control, Digital I/O6 RTS, if enable, is an input Analog Input 3 or Digital I/O3 Analog Input 2 or Digital I/O2 Analog Input 1 or Digital I/O1 Analog Input 0 or Digital IO/0, or Commissioning Button

Tabla 2. 2. Descripción del DataSheet del Módulo XBee (Digi)

Para un mejor entendimiento de la configuración o de la posición de los Pines verificaremos la Figura 2.4 que ofrece una vista superior del módulo XBee.

23

Figura 2. 3. Vista superior del Módulo XBee Serie 2 (Digi)

Las conexiones de Pines recomendados son VCC, GND, DOUT y DIN, las diferentes entradas y salidas se pueden utilizar conforme se vaya incrementando el alcance del proyecto, puesto que el XBee Series 2 permite habilitar o deshabilitar las salidas según las necesidades, cabe recalcar que el XBee Series 2 proporciona salidas digitales, las mismas que servirán de gran ayuda en el proyecto de tesis, ya que facilitará la lectura de datos. (Caprile, 2011) 2.2

Software X-CTU

X-CTU es un software basado para el Sistema Operativo Windows que proporciona la Empresa Digi, el mismo que sirve para interactuar con los productos ofrecidos por esta Empresa, que en este caso se utilizará dispositivos XBee, este software tiene una interfaz gráfica para facilitar el uso a los usuarios. (Digi I. , 2008) El software X-CTU se puede descargar de la página web de Digi ubicada en el siguiente link: http://www.digi.com/support/productdetail?pid=3352. Después de instalarlo y si todo ha salido bien se procede a ejecutarlo haciendo clic en el ícono creado en el escritorio. Una vez abierto el programa se puede apreciar cuatro pestañas, las cuales tienen una función diferente. A continuación se explicará a breve rasgos que hace cada pestaña. Figura 2.5.

24

Figura 2. 4. Visualización de las pestañas en el software X-CTU

-

PC Settings: En esta opción se puede seleccionar el puerto COM que se desee utilizar para poder configurar los dispositivos XBee. Esta es la pestaña que se abre por defecto al momento de ejecutar el software X-CTU. En la parte de Com Port Setup se puede seleccionar el puerto COM y configurar los ajustes de ese puerto, por ejemplo: Figura 2.6. (Digi I. , 2008)

Figura 2. 5. Descripción de la configuración del puerto

-

-

Range Test: En esta pestaña existe la posibilidad de realizar una prueba de rango entre dos radios XBee. Se puede verificar el alcance de radio que tiene cada dispositivo mediante el envío de un paquete de datos que el usuario a especificado, y comprobar si el paquete de respuesta es el mismo en un determinado tiempo. (Digi I. , 2008) Terminal: Esta ventana permite el acceso al puerto COM de la computadora con un programa de emulación del terminal, también se puede enviar y recibir comandos y tramas AT y API. La terminal tienen tres funciones básicas: Emulador de terminal, capacidad para enviar y recibir datos predefinidos 25

-

(Assemble Packets), y la capacidad para enviar y recibir datos Hexadecimales y formatos ASCII (Show Hex). (Digi I. , 2008) Modem Configuration: Aquí se puede encontrar varias opciones, las que se utilizará más comúnmente serán Read y Write permitiendo la lectura y escritura de la configuración de cada dispositivo respectivamente. Esta pestaña tiene cuatro funciones básicas: (Digi I. , 2008) - Facilita una interfaz gráfica al usuario con el firmware de un radio que en este caso es un XBee. - Leer y escribir firmware para micro controladores de un radio. - Descargar archivos de Firmware actualizados de una página web o desde un archivo comprimido. - Se puede guardar o cargar un perfil del modem

2.2.1 Configuración de los dispositivos del protocolo ZigBee Todo dispositivo puede ser configurado de dos maneras, modo API y modo AT. 2.2.1.1 Configuración de los XBee en modo API A continuación se explicara los pasos para configurar un XBee en modo API. Configuración del XBee de modo Coordinador. 1. Se procede a instalar el software X-CTU descargado de http://www.digi.com/support/productdetail?pid=3352. 2. Se conecta el dispositivo XBee en el XBee Explorer USB y este a su vez en el ordenador o computador que tenga el Sistema Operativo Windows (en este caso Windows 7). 3. Abrir el software, hacer doble clic en el ícono creado en el escritorio. Al ejecutarse el programa muestra la pestaña por defecto PC Settings, aquí se selecciona el puerto COM con el cual se desea trabajar. Una vez seleccionado el puerto COM, se puede comprobar que esté funcionando a la perfección haciendo clic en el botón Test/Query, y si todo está correcto aparecerá el siguiente mensaje. Ver Figura 2.7.

Figura 2. 6. Confirmación de la configuración del puerto COM

26

4. Ubicarse en la pestaña Modem Configuration y hacer clic en Read, se muestra toda la configuración que se puede hacer en el dispositivo. En Function Set se escoge el tipo de función que desea que realice el XBee. Buscar la función ZIGBEE COORDINATOR API, como se observa en la Figura 2.8.

Figura 2. 7. Configuración del dispositivo como coordinador

A continuación poner un valor en PAN ID, este debe ser puesto en todos los dispositivos tanto configurados en modo COORDINATOR como en modo END DIVICE o ZIGBEE ROUTER. El PAN ID es un identificador de red, todos los dispositivos que no tengan este número no podrán comunicarse con el coordinador, el resto de opciones se deja como se encuentra por defecto. 5. Para guardar los cambios dar clic en Write Configuración del XBee de modo Router. 1. Se realiza los mismos pasos de la configuración del COORDINADOR hasta el paso 3. 2. En la pestaña Modem Configuration hacer clic en Read, mostrará todas las opciones de configuración del dispositivo. En Function Set se escoge la opción ZIGBEE ROUTER API, poner el mismo PAN ID que tiene el COORDINADOR API. Figura 2.9.

27

Figura 2. 8. Configuración del dispositivo como Router

3. Buscar la opción I/O Settings, y desde D0 hasta D3 poner (4 - DIGITAL OUT, LOW) que significa que cada entrada estará como apagada hasta que reciba algún tipo de trama que le diga lo contrario 4. Finalmente se procede a guardar los cambios haciendo clic en Write. Esta configuración se realiza para todos los XBee que se encuentran cerca de los dispositivos a controlar dentro de un hogar, es decir de los actuadores, por ejemplo en este caso, sería cerca de un sensor de humo, sensor de movimiento, alarma y cerca de un sistema de iluminación. Dentro de la configuración API existen las tramas API que son números en hexadecimal, las mismas que se deben calcular dependiendo de la actividad que desea que realicen los dispositivos configurados como Router, es decir, una trama enviada desde el Coordinador hacia un Router. A continuación se presenta la Tabla con los diferentes tipos de tramas API en el protocolo ZigBee:

API Frame Names

API ID

AT Command AT Command – Queue Parameter Value ZigBee Transmit Request Axplicit Addressing ZigBee Command Frame

0x8 0x9 0x10 0x11 28

Remote Command Request Create Source Route AT Command Response Modem Status ZigBee Transmit Status ZigBee Receive Packet (AO=0) ZigBee Explicit Rx Indicator (AO=1) ZigBee IO Data Sample RX Indicator XBee Sensor Read Indicator (AO=0) Node Identification Indicator (AO=0) Remote Command Response Over-the-Air Firmware Update Status Route Record Indicator

0x17 0x21 0x88 0x8A 0x8B 0x90 0x91 0x92 0x94 0x95 0x97 0xA0 0xA1

Tabla 2. 3. Tipos de tramas API en el protocolo ZigBee: (Digi)

Para saber que trama enviar a un Router desde un Coordinador y que realice una función determinada, se deberá calcular una trama específica, a continuación se explicará el cálculo de dicha trama: (International) -

7E es el delimitador de las tramas API, toda trama API debe empezar por 7E. 00 10 estos bytes representan la longitud de la trama, por lo tanto son 16 datos a partir de 17 sin contar el último byte que es el checksum. 17 es el tipo de trama API: solicitud de comando remoto. 01 es el ACK (acknowledgement) que se debe recibir del RX si llegó la trama. 00 13 A2 00 40 A2 35 43 Estos bytes son la dirección destino, es decir SH y SL del Router.

El SH y el SL se puede encontrar en el software X-CTU o viendo en la parte inferior del propio dispositivo. Figura 2.9

Figura 2. 9. Visualización del SH – SL del dispositivo

29

-

FF FE es la dirección corta del Router, no siempre es posible conocerla, por lo tanto se puede poner FF FE. 02 con este byte se aplican los cambios. 44 33 representa la actividad realizará, es decir, en este caso el PIN D3 se encienda o se apague. 05 significa salida en nivel alto (habilitado o encendido), si se quisiera apagar seria 04 que significa salida en nivel bajo. 5D es el checksum, el cual es el resultado de sumar desde el 17 hasta el 05 en hexadecimal = 4A2 y FF – A2 = 5D

Una vez enviada esta trama desde el Coordinador hacia el Router, el PIN D3 del Router cambiará a nivel alto o encendido, por lo tanto debería dar un voltaje entre 2.8 y 3,3 voltios aproximadamente. (Digi I. , 2008) Ahora la trama para que el PIN D3 cambie de estado a nivel bajo o se deshabilite sería la siguiente: 7E 00 10 17 01 00 13 A2 00 40 A2 35 43 FF FE 02 44 33 04 5E Siendo 04 la salida en nivel bajo y 5E es el checksum que es el resultado de sumar desde el 17 hasta el 04, en hexadecimal = 4A1 y FF – A1 = 5E. 2.2.1.2 Configuración de los XBee en modo AT. Ahora se configura los dispositivos XBee en modo AT. Son exactamente los mismo pasos para configurar el XBee Coordinador en modo API, con la diferencia que en modo AT en la opción Function Set en la pestaña Modem Configuration se escoge la opción de ZIGBEE COORDINATOR AT, se pone el PAN ID y las otras opciones se deja por defecto como se encuentran. Luego se hace clic en Write para guardar la configuración. Figura 2.10

Figura 2. 10. Configuración del dispositivo de modo AT

30

De la misma manera para configurar el XBee que funcionará como Router, son los mismos pasos de los usados en modo API, con la diferencia que en Function Set se escoge la opción ZIGBEE ROUTER AT, además en esta opción ya no se configuran entradas digitales. También se puede dar un nombre a cada dispositivo XBee en la opción Addressing en la opción Node Identifier. 2.3

Pruebas de la configuración del Hardware

2.3.1 Pruebas en modo API Después de haber configurado los dispositivos como Coordinador y como Router, se procede a comprobar que se están comunicando entre ellos. Por ejemplo, se quiere enviar una trama desde el Coordinador hacia un Router diciendo que el PIN D3 cambie de estado a nivel alto. Primero se conecta a una fuente de voltaje correspondiente de 3.3 Voltios de corriente continua al XBee configurado como Router como se muestra en la Figura 2.11.

Figura 2. 11. Medición del Voltaje en el dispositivo XBee

Ubicarse en la pestaña Terminal del Software X-CTU del XBee configurado como Coordinador, se hace clic en Show Hex y luego en Assemble Packet, se escoge la opción HEX y se comienza armar la trama en formato Hexadecimal. Se envía la misma trama calculada anteriormente haciendo clic en Send Data. Figura 2.12.

31

Figura 2. 12. Tramas para habilitar el PIN D3 del dispositivo XBee

Como se puede observaren la Figura 2.12, al momento de hacer clic en Send Data devuelve otra trama en color rojo, la cual se explica a continuación: -

7E Delimitador de inicio de trama API. 00 0F Longitud de la trama, esto quiere decir que son 15 datos a partir del 97 sin contar el checksum. 97 Es el tipo de trama API: respuesta de comando remoto. 01 es el ack que se debe recibir del RX si la trama llegó correctamente. 00 13 A2 00 40 A2 35 43 Dirección fuente es decir el SH y SL de nuestro Router. AD 63 es la dirección corta del Router 44 43 Parámetro que deseamos cambiar, es decir D3 se encienda. 00 Quiere decir que se ha recibido con éxito. D1 Es el checksum, resultado de sumar desde el 97 hasta 00

Una vez enviada la trama para que cambie de estado de nivel bajo a nivel alto el PIN especificado es decir el D3, se puede comprobar verificando que dicho PIN devuelva un voltaje entre 2.8 y 3,3 Voltios de corriente continua, medidos con un multímetro. Ahora se envía la trama para deshabilitar (nivel bajo) el PIN D3 del Router. Figura 2.13.

32

Figura 2. 13. Tramas para deshabilitar el PIN D3 del dispositivo XBee

Se Puede comprobar que el D3 del Router se ha deshabilitado midiendo con un multímetro, devolverá un valor inferior a 2.8 Voltios de corriente continua. 2.3.2 Pruebas en modo AT Para comprobar que los XBee configurados en modo AT se están comunicando, primero se debe conectar el XBee configurado como Router AT a una fuente de voltaje de 3,3 Voltios de corriente continúa, que es lo necesario para que funcione un dispositivo XBee. A continuación conectar el XBee configurado como Coordinador en un PC con plataforma Windows, abrir el Software X-CTU, y en la pestaña Terminal se escribe los siguientes comandos: -

Comando (+++), espera un OK como respuesta, si esto sucede entonces el Coordinador está funcionando Perfectamente

-

Comando (ATND) y ejecutamos enter, con esto devuelve todos los datos de los XBee que estén con el mismo PAN ID que el XBee configurado como Coordinador, en este caso devuelve los datos del Router.

33

2.4

Implementación de los circuitos electrónicos ubicados entre los dispositivos del Protocolo ZigBee y los dispositivos a controlar.

Debido a que los dispositivos del Protocolo ZigBee no pueden interactuar directamente con los dispositivos a controlar (Sensor de Movimiento, Sensor de Humo, etc), puesto que los XBee funcionan a 3,3 Voltios de corriente continua, mientras que los dispositivos a controlar en el hogar funcionan a 110 Voltios de corriente alterna, por esta razón se debe implementar circuitos electrónicos que realicen la integración entre estos. 2.4.1 Circuito Pre-Actuador Focos A continuación se presenta el esquema electrónico (Pre-actuador), necesario para encender o apagar un foco de 110 Voltios de corriente alterna, recibiendo un impulso de 3,3 Voltios de corriente continua por el PIN D3 del XBee, el mismo fue utilizado para la implementación de la iluminación de la habitación del Hogar (segunda planta).

Figura 2. 14. Circuito Foco Habitación

La siguiente Figura representa el circuito que se utiliza para la implementacion de la iluminacion en la oficina del hogar (primera planta), el mismo es diferente del circuito de iluminacion de la habitacion ya que en este se implementa un regulador de voltaje, puesto que el voltaje se está tomando del sensor de movimiento el mismo que nos proporciona 12V y el XBee unicamente necesita 3.3V, es por esta razon que se implemento dicho regulador de voltaje.

Figura 2. 15. Circuito Foco Oficina

34

2.4.2 Circuito Pre-Actuador Sirena La siguiente Figura representa un esquema electrónico, necesario para manipular la sirena del hogar, ya que de ella dependerá tanto el sensor de humo como el sensor de movimiento, en este circuito se realizó un regulador de voltaje ya que la sirena del hogar trabaja a 12V mientras que la alimentación del XBee debe ser 3.3V.

Figura 2. 16. Circuito Sirena.

2.4.3 Circuito Pre-Actuador Sensor de Humo La siguiente Figura representa el Pre-Actuador para la manipulación del Sensor de Humo, el mismo sirve para la activación de la Sirena, puesto que cuando se active el sensor realizara la acción de activar la Sirena automáticamente, se puede observar que en el circuito la representación del Sensor se realizó únicamente un esquema.

Figura 2. 17. Circuito Sensor de Humo

35

2.4.4 Circuito Pre-Actuador Sensor de Movimiento. La Figura que se muestra a continuación nos representa el Pre-Actuador para poder manipular el sensor de movimiento, el mismo al activarse nos manipula la sirena, se puede observar que en el circuito la representación del Sensor se realizó únicamente un esquema.

Figura 2. 18. Circuito Sensor de Movimiento.

2.5

Ubicación de los circuitos y componentes en el hogar.

A continuación se detallan las ubicaciones de los circuitos en el hogar, los mismos se colocaron en una caja plástica (negra), y se pegaron en un lugar visible y de fácil acceso por motivos de modificaciones o remplazos de los componentes. 2.5.1 Circuito de iluminación de la habitación. Este circuito de coloco en la parte inferior del interruptor, para aprovechar la ubicación del mismo.

Figura 2. 19. Instalación del circuito de Iluminación de la Habitación

36

2.5.2 Ubicación del circuito para el sensor de movimiento Este circuito se colocó a la misma altura del sensor de movimiento, para aprovechar los 12V con los que se alimenta el mismo, ya que dichos 12V nos proporciona el sensor de movimiento, y a parte el pulso del sensor.

Figura 2. 20. Instalacion del Sensor de movimiento

2.5.3 Ubicación del circuito para el sensor de humo El mismo fue ubicado en la cocina del hogar, puesto que en dicho lugar hay más probabilidad de incendios no provocados, el circuito esta alimentado de 12V, dicho voltaje nos está proporcionando el adaptador.

Figura 2. 21. Instalación del Sensor de Humo

2.5.4 Ubicación del circuito para la sirena El circuito de la sirena fue ubicado en un lugar de fácil acceso, puesto que la sirena está en la parte exterior del hogar.

37

Figura 2. 22. Instalación del Circuito de la Sirena

2.5.5 Ubicación del circuito de iluminación de la oficina Al igual que el circuito de iluminación del dormitorio, el circuito de la oficina fue ubicado en la parte inferior del interruptor, así se aprovechara la ubicación del mismo.

Figura 2. 23. Instalación del circuito de Iluminación de la Oficina

38

CAPITULO III 3

3.1

DESARROLLO DEL SERVICIO DE COMUNICACIÓN BAJO EL SISTEMA OPERATIVO RASPBIAN Introducción al Servicio de Comunicación

El servicio de comunicación que se utilizara en el proyecto de tesis será el modelo Cliente/Servidor, este es un modelo que actualmente domina el ámbito de la comunicación, su funcionamiento es muy sencillo, se tiene una maquina cliente (Dispositivos Móviles, computadoras), que requiere un servicio de una maquina servidor que en este caso está bajo la plataforma Raspbian, para realizar una debida petición hacia el sistema, luego de que el servidor interprete dicha petición y sea validada, el mismo se comunicará mediante puerto serial hacia el dispositivo XBee que está configurado como coordinador, y que va ser el encargado de comandar la red ZigBee, en la Figura 3.1 se podrá visualizar el modelo del Servicio de comunicación que se aplicará en el proyecto de tesis, tanto la comunicación desde los dispositivos de mando como de los dispositivos finales. (Sommerville, 2005)

Figura 3. 1. Servicio de Comunicación

3.1.1 Modelo Cliente/Servidor Este modelo describe la interacción entre dos procesos, que se ejecutan simultáneamente, este modelo está basado en una comunicación que consiste en una serie de preguntas y respuestas de dos aplicaciones intentando comunicarse, una comienza la ejecución y espera a que la otra le responda y luego continúa el proceso. (Sommerville, 2005) 39

Existen dos puntos de vista que se distinguen en este modelo, estos son: Punto de vista del Cliente.- Es la Aplicación que inicia la comunicación y es dirigida por el usuario, estos realizan generalmente funciones como: -

Manejo de la interface del usuario Manipulación de los dispositivos que maneja el servidor

Punto de vista del Servidor.- Es la Aplicación que responde a los requisitos de los clientes, son procesos que se están ejecutando indefinidamente, estos servicios tienen las siguientes funciones. -

Control de accesos. Enlaces de comunicaciones. Un cliente al solicitar un servicio, el servidor correspondiente le responde proporcionándolo el mismo.

Entre las principales características de la Arquitectura Cliente/Servidor, se destacan las siguientes. -

Los cambios en el servidor implican pocos o ningún cambio en el cliente. El cliente no necesita conocer la lógica del servidor, solo su interface externa. El servidor presenta a todos sus clientes una interface única y bien definida. El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo.

3.1.2 Comunicación Cliente/Servidor mediante Sockets. En este proyecto de tesis se utilizara el modelo Cliente/Servidor mediante Sockets para facilitar la comunicación entre los dispositivos de mando y el servidor, los Sockets o también llamados conectores, es un mecanismo de comunicación entre procesos, que permiten la comunicación bidireccional, también son procesos que permiten comunicarse atreves de la red, son apoyados por la mayoría de sistemas operativos. (Neealy S. Shah) Para la comunicación deben tener una dirección IP y un número de puerto el cual puede estar dentro de un rango de 0 a 65535 y la dirección IP puede ser cualquiera de las IP’s conocidas. (Neealy S. Shah) 3.1.2.1 Funcionamiento de los sockets Los servidores se pueden ejecutar en cualquier computadora, en este caso bajo la plataforma Raspbian que es el servidor, el mismo tiene un socket que responde en un puerto específico. Lo que hace el servidor, es responder a través del socket la petición de un cliente que serían los dispositivos de mando. (Bonilla, 2012)

40

El cliente lo que hace es encontrar el nombre del host en el cual el servidor se está ejecutando y también revisa el número de puerto donde el servidor está conectado. Entonces para que la conexión tenga éxito, el cliente debe conectarse al servidor por el puerto que se haya especificado. (Bonilla, 2012) Ahora, si se pone en el puerto del Servidor, para que la conexión se realice es necesario que el servidor haya aceptado la conexión.Tanto el cliente como el Servidor hacen una espera para la comunicación, es decir el Servidor espera a un Cliente o un Cliente espera a un Servidor para establecer la comunicación.

SERVIDOR Abrir canal comunicación Server Socket ref

CLIENTE Abrir canal comunicación Server Socket ref

Publicar en la red la dirección del canal de comunicación Ref = new (Puerto)

Espera recibir solicitudes While o for o do

Esperar peticiones Ref.accept() Crear proceso hijo Hijo = ref.accept()

Conectar con servidor Ref = new (host, puerto)

Envio y recepción de datos Hijo.read()|write()

Envió y recepción de datos Hijo.read()|write() Cerrar canal comunicación Ref.close()

Cerrar canal comunicación Ref.close()

Figura 3. 2. Comunicación de Sockets Cliente-Servidor (Bonilla, 2012)

41

3.1.3

Herramientas para almacenamiento de datos

3.1.3.1 MySQL MySQL es un sistema de gestión de bases de datos relacional multiusuario, es el servidor de bases de datos relacionales más comúnmente utilizado en GNU/Linux, fue desarrollado por la empresa MySQL que cedió las licencias correspondientes al proyecto opensource, por lo que su rápido desarrollo es causa del empeño de millones de programadores de todo el mundo. (Angel, 2005) Al ser un servidor de base de datos relacionales MySQL, se convierte en una herramienta veloz en la accesibilidad a los datos introducidos en las distintas tablas independientes, que forman las bases de datos de este lenguaje, MySQL es actualmente el sistema de bases de datos más popular de la red. (Angel, 2005) Características de MySQL Las principales características de la Base de Datos MySQL son: -

Un amplio subconjunto de ANSI SQL 99, y varias extensiones. Soporte a multiplataforma. Procedimientos almacenados. Disparadores (triggers) Cursores Soporte a varchar Motores de almacenamiento independientes

3.1.3.2 Herramienta WampServer2.0i La herramienta WampServer va ser usada para realizar el Módulo del Servidor el mismo que se desarrolló en Windows, este es un entorno de desarrollo web para Windows con el que se puede crear aplicaciones web con Apache, PHP y bases de datos MySQL, también incluye PhpMyAdmin y SQL, con el cual podremos crear una nueva base de datos e ingresar tablas creadas en ella, realizar consultas y generar scripts SQL, como exportar e importar scripts de base de datos. WampServer ofrece a los desarrolladores herramientas necesarias para realizar aplicaciones web de manera local, con un sistema operativo (Windows), un manejador de base de datos (MySQL), un software de programación script web PHP. WampSever se caracteriza por que puede ser usado de forma libre es decir no debemos de contar con alguna licencia el cual nos permita el uso de la misma. (Andreu, 2010) 3.1.3.3 Herramienta LAMP (LINUX – APACHE – MySQL – PHP) Es una herramienta que se va utilizar para el almacenamiento de datos en Raspberry-pi, ya que LAMP es considerada como una de las mejores herramientas disponibles para que cualquier organización o individuo pueda emplear un servidor web versátil y 42

potente, LAMP está conformada por las siguientes herramientas Linux – Apache – MySQL – PHP, cada una de estas tecnologías disponen de una serie de características comunes, esto ha convertido a LAMP en la alternativa más adecuada para pequeñas y medianas empresas. (Labrador, 2008) Algunas de las ventajas que se obtienen de utilizar LAMP son: -

Soporte a gran cantidad de arquitecturas. Código relativamente sencillo y con pocos cambios de una plataforma a otra. Parches generados en poco tiempo después de encontrarse un agujero de seguridad. Actualizaciones del software vía internet. Posibilidad de incrementar los servicios y funcionas desde el código fuente.

A pesar de que las ventajas de LAMP son características únicas de este sistema, podemos decir que también existen desventajas que se pueden considerar. (Labrador, 2008) 3.2

Es muy distinto a Windows, lo que dificulta el trabajo a quienes estén acostumbrados a él. Las actualizaciones requieren en ocasiones tener conocimientos profundos del sistema. Configurar algunos servicios de red requiere de más tiempo que en Windows. Mayor coste del personal.

Requerimientos

El servicio de comunicación es una de las características más importantes para el correcto funcionamiento del sistema, ya que dependerá de la disponibilidad de este servicio para la adquisición de la información necesaria para el control de los dispositivos del sistema, además se detallan los requerimientos de los que depende la Aplicación, que utilizará el técnico del sistema, y aquella persona que tenga los privilegios adecuados para manipular el sistema. 1. EL Sistema deberá permitir la comunicación mediante el puerto serial, entre el sistema operativo Raspbian y el dispositivo del protocolo ZigBee, el mismo que sirve de Coordinador de la red inalámbrica ZigBee.

43

2. El Sistema será capaz de interactuar y permitir el paso de información (tramas) desde el servidor montado en el sistema operativo Raspbian hacia el coordinador de la red ZigBee. 3. El Sistema deberá permitir la comunicación entre los dispositivos del protocolo ZigBee con las aplicaciones de los dispositivos móviles bajo la plataforma Android y con las computadoras bajo la plataforma Windows. 4. La Aplicación del servidor permitirá administrar los dispositivos del protocolo ZigBee. 5. La Aplicación será capaz de proporcionar permisos de usuario debidamente definidos a cada uno de los roles creados. 6. La Aplicación deberá permitir la conexión al sistema, haciendo uso del identificador propio de cada usuario, esto es el login y el password. 7. Al iniciar, el sistema de comunicación quedará a la escucha de los clientes, para que el servidor sea capaz de obtener los datos enviados, tanto desde los dispositivos móviles como de las computadoras mediante el XBee coordinador. 8. Una vez obtenido los datos, el sistema de comunicación deberá ser capaz de enviar la trama hacia el dispositivo del Protocolo ZigBee (Coordinador), el mismo que identificará a que dispositivo de la red ZigBee le corresponde dicha trama para que realice la actividad autorizada. 9. Para que el sistema pueda interactuar tanto con los dispositivos móviles como con las computadoras, deberá estar dentro de una misma red, ya sea de forma inalámbrica mediante la tecnología Wi-Fi o de manera cableada con el cable UTP de 8 hilos con conectores RJ45. 10. El equipo que va a funcionar como servidor deberá tener previamente instalado el jdk-8u5-nb-8, y también deberá tener instalado la base de datos MYSQL para el correcto funcionamiento del sistema 3.3

Modelación

Para el Análisis del proyecto se diseñaran los diagramas más importantes dentro del Modelado, ya que con la ayuda de los mismos verificamos las posibles relaciones entre los diferentes objetos que contiene el sistema. (Falgueras, 2003)

44

3.3.1 Diagramas Los Diagramas son aquellos que describen las relaciones posibles a lo largo del tiempo entre los objetos del sistema, es por esta razón que se realizara el Diagrama de Clases y Diagrama de Secuencia. (Falgueras, 2003) 3.3.1.1 Diagramas de Secuencia Este Diagrama nos representa cada una de las acciones que realiza el sistema al momento de que comienza a ejecutarse, cada uno de los rectángulos nos representa una acción y cada línea es el tiempo que se ejecuta, y así llegar esperar para que continúe con las siguientes acciones.

45

46

3.3.1.2 Diagramas de Clases El Diagrama de Clases, que puede contener clases, objetos y relaciones entre ellos, el siguiente diagrama representa el funcionamiento del sistema en general, dentro de cada una de las clases se puede observar los diferentes métodos que contienen cada una de ellas.

47

3.4

Implementación

Para la implementación del proyecto de tesis, se consultó las diferentes opciones que se tenían con la Domótica, puesto que se va desarrollar bajo la plataforma Windows, ya que este Sistema Operativo brinda un mejor entorno de desarrollo, luego de dicho desarrollo continuaremos con el montaje del Servidor en el Sistema Operativo Raspbian, dicho desarrollo se realizará en Java ya que es un lenguaje de programación multiplaforma. 3.4.1 Desarrollo del Módulo del Técnico (Servidor) Para el desarrollo de este módulo lo primero que tendremos que realizar es la instalación del paquete JDK 1.8, en donde viene incluido el NetBeans IDE 8, ya que esta herramienta tiene una interacción amigable para el usuario. 3.4.1.1 Instalación del JDK (java) Para comenzar a desarrollar el sistema lo primero que tenemos que hacer es la instalación de Java, se está utilizando el último paquete de Java (jdk-8u25-nb-8_0_1windows), este paquete se puede descargar fácilmente desde la página de Oracle (link: http://www.oracle.com/technetwork/es/java/javase/downloads/jdk-netbeans-jsp142931.html), se tiene que verificar si el Sistema Operativo del equipo es de 32 o 64 bits y descargar el que nos compete. Para la instalación se debe tener privilegios de administrador en el sistema, además se debe verificar que el sistema cumpla o supere los requerimientos mínimos de hardware que son. -

800 MHz Intel Pentium III o equivalente 512 MB de RAM 750 MB de espacio libre

Cabe recalcar que se debe tener privilegios de administrador puesto que el programa de instalación utiliza el %USERPROFILE% \ directorio Local Settings \ Temp para almacenar archivos temporales, a continuación se explican los pasos a seguir para la instalación de Java. 1. Hacer doble clic en el archivo de instalación para ejecutarlo. 2. Haga clic en Siguiente, en la página de bienvenida del asistente de instalación. 3. En la pantalla de contrato de licencia de JUnit, si decide instalar JUnit, haga clic en la opción adecuada y luego en siguiente. 4. En la instalación del JDK, especificar el directorio en donde se va instalar el JDK, y hacer clic en siguiente.

48

5. En la instalación de NetBeans IDE, se puede verificar el directorio en donde se va a realizar dicha instalación. Hacer clic en siguiente. 6. Luego se observa la página en donde se resumen la instalación del software, verificar que todo este correcto y harer clic en Instalar. 7. En la pantalla de finalización, proporcionar los datos de uso anónimos, si lo desea, y hacer clic en finalizar. 3.4.1.2 Instalación de MySQL Instalación del paquete WampServer2.0i Una vez descargado el software WampServer se inicia la instalación ejecutando el archivo WampServer2.0i, se tiene que ejecutar como administrador del equipo, luego seguir los siguientes pasos para la instalación. 1. La primera ventana que obtenemos es la bienvenida al Setup Wizard de la instalación pulsamos el botón Next para continuar 2. La siguiente ventana nos muestra el acuerdo de licencia, seleccionamos (I accept the agreement) 3. En la siguiente ventana que aparecerá tendremos que determinar en qué directorio se va a realizar la instalación, por defecto nos muestra una ruta pero si se desea instalar en otro directorio se tiene que pulsar el botón Browse, una vez si tiene el directorio destino decidido se pulsa el botón Next para continuar. 4. En la próxima ventana seleccionamos los íconos que desea que se creen al momento de instalar automáticamente, ícono en el inicio rápido e ícono en el escritorio, pulsamos en el botón Next para continuar. 5. Finalmente se obtendrá una ventana con el resumen de las tareas que va a realizar el Winzard de la instalación, se pulsa el botón Install y la instalación comenzara. 6. Se verifica que la barra de tareas se incremente continuamente sin problemas. 7. Al momento de la instalación el Firewall de Windows nos bloquea algunas características del Apache HTTP Server en las redes públicas y privadas, tendremos que permitir que se comunique en estas redes.

49

8. La Próxima ventana nos muestra el SMTP y el Email, estas opciones se dejara por defecto puesto que no tenemos un servidor SMTP y tampoco una cuenta de Email valida. 9. Se tiene una ventana en donde nos indica que ya hemos terminado la instalación, si se deja chequeado (Launch WampServer 2now) el WampServer arrancara en cuento pulsemos el botón de Finish. Para verificar si arranco el servicio de MySQL se tendrá que verificar en la parte inferior derecha de nuestra pantalla, es ahí en donde nos indica si el servicio arranco o no.

Figura 3. 3. Propiedades de WampServer 2.0

Una vez verificado el arranque del servicio, ya se puede arrancar con MySQL. 3.4.1.3 Instalación de Librerías necesarias. Para el desarrollo de nuestro modulo del Servidor, uno de los puntos más importantes es la instalación de las librerías necesarias para abrir el puerto serial, ya que mediante este puerto se realizara la comunicación, es por esta razón que tendremos que descargarnos las librerías (rxtxserial.dll – librxtxSerial.so) (Parada, 2011) La librería rxtxserial.dll debe estar en /jre/bin y la librería librxtxSerial.so debe estar en /jre/lib/[machine type], por ejemplo, /jre/lib/i386, esto significa que se tendrá que copiar el archivo .dll a la carpeta lib de donde esté instalado el jdk del equipo en donde se vaya a desarrollar. (Parada, 2011) Además se deberá crear una carpeta dentro del proyecto la cual va a contener los archivos .jar que se va a utilizar para el desarrollo, la primera librería es (mysqlconnector-java-5.1.22-bin) la cual va servir para la conexión con la base de datos mysql, las librerías (rxtx-2.1.7.jar y RXTXcomm.jar) van a servir para la comunicación mediante el puerto serial. (Parada, 2011) 50

3.4.1.4 Desarrollo Luego de realizar las instalaciones previamente explicadas, se continúa con la programación que conlleva el Modulo del Servidor y a su vez dicho modulo que va a ser utilizado única y exclusivamente por el Técnico del Sistema, ya que contiene características que únicamente le competen al técnico como las especificamos a continuación. -

Creación de Usuarios Modificar Usuario (Características, Privilegios) Eliminación de Usuario Listar Usuarios (Características, Privilegios) Insertar XBee Modificar XBee Listar XBee Eliminar XBee

A continuación se presentan las ventanas en donde se demuestra cada uno de las propiedades que tiene el Modulo del Servidor. Al momento de que el Servidor arranca, el mismo queda a la escucha de una petición de un cliente para su funcionalidad, es así que cuando un cliente se conecta el Modulo del Servidor muestra la siguiente imagen de login en donde podrá entrar única y exclusivamente el Técnico del Sistema.

Figura 3. 4. Inicio de Sesión

51

Luego de visualizar la Imagen de Login y una vez identificados (Técnico), se podrá observar la imagen en donde dará a escoger dos opciones (Usuarios – Dispositivos).

Figura 3. 5. Opciones del Módulo del Servidor

Al escoger una de las dos opciones mostrará las características de cada una de ellas, es así que al escoger la opción de Usuarios se tiene la interfaz en donde se podrá realizar la Inserción, modificación, eliminación y listado de Usuarios, he aquí su imagen.

Figura 3. 6. Opciones de Roles y Usuarios

52

Al escoger la Segunda opción (Dispositivos) se podrá dar en cuenta que es la ventana más importante en el Sistema Domotico ya que permite interactuar con los dispositivos XBee que son la parte primordial del Proyecto, es así que permite Ingresar, modificar, eliminar y listar los dispositivos que se tienen conectados en el Sistema Domotico.

Figura 3. 7. Opciones Dispositivos XBee

Se ha explicado de una forma general el funcionamiento del sistema de comunicación (Servidor) y conjuntamente el módulo de mantenimiento que a su vez va ser única y exclusivamente manejada por un Técnico, si se quiere ver más detallado todo la instalación y todo el funcionamiento de este módulo puede observar el Anexo 2 (Manual del Técnico). 3.4.2 Implementación del Servidor en el Sistema Operativo Raspbian. Para este proyecto se utilizara el servidor en el sistema operativo Raspbian que es una versión propiamente del Raspberry-Pi 3.4.2.1 Instalación de Java (JDK) y las librerías necesarias en Raspbian Para la implementación del Servidor en el Sistema Operativo Raspbian, lo primero que se tiene que hacer es comprobar la versión de Java instalado, la misma que por defecto es la versión 1.7.0_40, para ello se tendrá que abrir un Terminal y digitar Java –versión. Esta versión que viene por defecto no favorece para que arranque el servidor en Raspbian, es por esa razón que se tendrá que descargar la última versión de java en esta página: Link:http://www.oracle.com/technetwork/java/embedded/embeddedse/downloads/index.html

53

Una vez descargada la última versión se instala, para ello se tiene que copiar el instalador en siguiente directorio, (/usr/local), para logar pegar el instalador en dicho directorio se tiene que proporcionar permisos de administrador con esta línea de comandos cd /usr/local - chmod 777 /usr/local. Una vez proporcionado los permisos de administrador, el sistema dejara copiar el archivo de instalación del JDK en el directorio, ya copiado el archivo de instalación se descomprimir

Figura 3. 8. Archivo descomprimido

Luego se tendrá que añadir java al Path para que sea ejecutable en cualquier directorio, esto se logra ejecutando el comando (PATH=/usr/local/jdk1.8.0_06/bin:$PATH), luego se verifica si java se instaló correctamente, para ello se ejecutará nuevamente el comando java –versión.

Figura 3. 9. Verificación de la versión de java

A continuación se instala la librería (rxtx) con la siguiente línea de comandos, (sudo aptget install librxtx-java). Al momento de que se instala el paquete rxtxSelial, se instala en el directorio (/usr/lib/jni) lo que se tendrá que hacer es copiar el archivo librxtxSerial.so en el directorio (/usr/local/jdk1.8.0_06/jre/lib/arm), este directorio es en donde se a instalado el JDK. Ver imagen.

54

Figura 3. 10. Archivo librxtxSerial.so

Para dar por culminado la instalación de las librerías se tendrá que pegar dentro de (/usr/local/jdk1.8.0_06/jre/lib/ext) las librerías (rxtx-2.1.7.jar y la librería RXTXcomm.jar). 3.4.2.2 Instalación de MySql (Herramienta LAMP) Para hacer que el servidor funcione correctamente en Raspbian se tiene que instalar la Base de Datos MySql, se decide instalar la herramienta LAMP (Linux – Apache – MySQL – PHP). Lo primero que se tiene que hacer es ejecutar el siguiente comando (sudo apt-get update), este comando sirve para actualizar los repositorios, y así poder instalar todos los paquetes sin ningún problema, Una vez realizado la actualización se puede instalar el servidor Web (Apache), esto se realiza ejecutando el comando (sudo apt-get install apache2). Después que termine con la instalación de Apache, se continua con la instalación de PHP5 para eso se ejecuta el comando (sudo apt-get install php5), esto sirve para instalar el soporte para PHP el cual permite ejecutar script PHP, luego se instala PHP para dar soporte de Base de Datos y MySql, para ello se ejecuta (sudo apt-get install php5mysql). Luego se tiene que instalar el servidor de Base de Datos MySQL, para ello se ejecuta el comando (sudo apt-get install mysql-server), al momento de la instalando del servidor MySql va a solicitar que se coloque una contraseña al usuario root de la base de datos, se coloca la contraseña que deseemos.

55

Figura 3. 11. Contraseña del Usuario Root

Con esto se finaliza la instalación del Servidor MySql, luego se procede a instalar el administrador de base de datos PhpMyAdmin para ello se ejecuta el comando (sudo aptget install phpmyadmin), la primera ventana que aparecerá luego de ejecutar el comando anterior es la configuración de PhpMyAdmin, aquí se escoge la opción de apache ya que es el servidor web que se instaló anteriormente. Luego de que se confirme el servidor web, pedirá una contraseña para la cuenta de administrador de PHP, es aconsejable que se coloque la misma contraseña que se colocó en MySqlServer.

Figura 3. 12. Contraseña del Administrador de PHP Admin

Luego se tendrá que confirmar la clave, con esto finalizamos la instalación de phpMyAdmin y también php, ahora se verificará de una mejor manera, esto se realiza ejecutando el proyecto de tesis, para ello se tiene que entrar en el directorio en donde se encuentra el mismo, una vez que estamos ubicados dentro de este directorio, se ejecuta el comando (java – jar ServidorSoc.jar).

Figura 3. 13. Ejecución del Proyecto de Tesis

Al momento de ejecutar dicho comando el servidor quedará a la escucha de un cliente, al momento de que un cliente inicie sesión automáticamente el modulo del servidor se ejecutará. 56

3.5

Pruebas del Servicio de Comunicación

Se realizarán un sin número de pruebas en este módulo, puesto que de ello depende el correcto funcionamiento del sistema en su totalidad. 3.5.1 Pruebas de conexión con la Base de Datos. El sistema está diseñado para ejecutar un mensaje de error al momento que no se inicialize correctamente la base de datos, o a su ves cuando falte algun dato en la conexión de la base de datos. Cabe recalacar que mientras no haya conexión con la base de datos no se ejecutará la aplicación del servidor, si se logra visualizar la pantalla de la aplicación del servidor, podremos saber que todo esta funcionando correctamente y que la conexión a la base de datos se realizo con éxito. Si al momento de introducir los campos del formulario de login lo hace incorrectamente, aparecerá un mensaje de advertencia en donde indica que los datos están mal ingresados, da la opción de rectificarlo.

Figura 3. 14. Mensaje de Usuario o contraseña incorrectos

3.5.2 Pruebas de Usuarios A continuación se realizarán pruebas de Creación, Modificación, Eliminación y listado de usuarios, todo esto se puede realizar en la Aplicación del Servidor, en la opción de Usuarios. 3.5.2.1 Pruebas de Creación de Usuarios. Al momento de entrar a la opción de Usuarios, en la aplicación del Servidor, se tiene la capacidad de crear usuarios nuevos con sus respectivos roles y permisos, se tendrán habilitadas dichas opciones de roles como los datos básicos. El primer mensaje de error aparecerá al momento de pulsar directamente el botón de crear usuario sin llenar ningún dato anteriormente.

Figura 3. 15. Mensaje de usuario y contraseña obligados

Otro mensaje de error saldrá cuando se tiene llenado todos los campos de creación de usuarios, pero a su vez no se asignado un rol o los permisos para este usuario. 57

Figura 3. 16. Mensaje de error al asignar los roles

Al momento de introducir todos los datos, saldrá un mensaje de que los datos se han introducido correctamente.

Figura 3. 17. Mensaje de confirmación de datos correctos

3.5.2.2 Prueba de listado de Usuarios. Anteriormente en las Pruebas de Creación de usuarios, se ha creado un Usuario llamado Prueba, se aprovechará dicho usuario para verificar si la Aplicación se encuentra listando correctamente, se podrá verificar al momento de listar los roles que se les asigno a cada uno de los usuarios.

Figura 3. 18. Listado de los Usuarios con sus roles respectivos

3.5.2.3 Pruebas de Modificación de Usuarios Para lograr modificar un Usuario se tendrá que ingresar a la opción de usuarios, una vez ahí se ingresará el nombre del usuario a modificar en el campo de búsqueda, una vez que se ha encontrado el usuario, automáticamente se llenarán los datos del mismo y se procederá a cambiar un rol por otro al usuario prueba, es decir, ahora ya no tendrá privilegios para encender la iluminación del cuarto pero si para la iluminación de la oficina y la activación de la sirena, se lista los usuarios para verificar posteriormente la modificación. Una vez ingresados todos los datos que se desea modificar, se procede a 58

pulsar el botón de Editar en la aplicación, seguidamente aparecerá un mensaje el cual nos indica que todo se ha modificado correctamente.

Figura 3. 19. Mensaje de datos modificados correctamente

3.5.2.4 Pruebas de Eliminación de Usuarios Para poder eliminar un Usuario lo que se tendrá que verificar es el código que se le asignado a dicho usuario, para ello se tendrá primero que buscar al usuario, una vez que se tiene el código (6) del usuario a eliminar, se tiene que introducir en el campo de eliminación de usuarios, y se tendrá que pulsar el botón de eliminar, nos aparecerá un mensaje de dialogo que indica que dicho usuario se ha eliminado correctamente.

Figura 3. 20. Mensaje de que se ha eliminado correctamente el usuario

3.5.3 Pruebas con los Dispositivos. A continuación se realizará las pruebas necesarias con los dispositivos XBee, esto se podrá realizar entrando en la opción de Dispositivos, en la aplicación del servidor, al igual que con los usuarios en esta sección se podrá ingresar, modificar, eliminar y listar los dispositivos que están incluidos en el sistema. 3.5.3.1 Pruebas de Ingreso de Dispositivos De la misma manera que en la creación de usuarios, en los dispositivos se tendrá la misma opción, cabe recalcar que si no llenamos todos los campos dará una advertencia que es obligatorio llenar los mismos.

Figura 3. 21. Mensaje de advertencia de llenar los campos

Al momento de que todos los campos son llenados con los datos correctos, aparecerá un mensaje de dialogo el cual indica que los datos ingresados son correctos. 59

Figura 3. 22. Mensaje de datos correctos

3.5.3.2 Pruebas de Listado de Dispositivos. Para aprovechar que en las pruebas de ingreso de dispositivos, está un dispositivo de prueba, para realizar la prueba del listado de los mismos, en dicha imagen se verifica que se lista todos los dispositivos ingresados.

Figura 3. 23. Lista de dispositivos ingresados correctamente

3.5.3.3 Pruebas de Modificación de Dispositivos. Se modificara el XBee creado con anterioridad (Prueba), para ello se debe hacer clic en la opción Modificar para que se habilite la opción de buscar y de modificar a la vez, lo primero que se realiza será buscar el XBee, para ello se introduce el nombre del XBee que se desea cambiar sus datos y luego se procede hacer clic en Modificar.

Figura 3. 24. Mensaje de modificación de datos correctos

Luego aparecerá un mensaje de dialogo el cual indica que los datos han sido modificados correctamente. 3.5.3.4 Pruebas de Eliminación de Dispositivos. Se procede a eliminar este dispositivo (Prueba), para lo cual se debe mandar a buscar el nombre del XBee para ver su código, y luego escribirlo en el campo que dice “Ingrese código del XBee a eliminar”.

60

Figura 3. 25. Mensaje de eliminación correctamente

Aparecerá un mensaje de dialogo el cual confirma que el dispositivo ha sido eliminado correctamente, se realiza un listado de los dispositivos para verificar dicha acción.

Figura 3. 26. Listado de dispositivos para verificar la eliminación

61

CAPITULO IV 4

4.1

DESARROLLO DE LAS APLICACIONES PARA EL CONTROL DE LOS DISPOSITIVOS DEL PROTOCOLO ZIGBBE. Introducción a las Aplicaciones

Las aplicaciones son un tipo de programa informático que permiten a los usuarios realizar uno o varios trabajos, actualmente con el uso de dispositivos móviles se han extendido el concepto de APP, Aplicación informática para dispositivos o tabletas con multitud de funcionalidades. (Cuello, 2013) Una aplicación móvil o APP es una aplicación informática diseñada para ser ejecutada en teléfonos inteligentes, tabletas y otros dispositivos móviles, por lo general se encuentran disponibles a través de plataformas de distribución, operadas por las compañías propietarias de los sistemas operativos móviles como son Android, IOS, BlackBerry OS, Windows Phone entre otros. (Cuello, 2013) 4.2

Requerimientos

Las aplicaciones son las características más importantes para el entendimiento de cada uno de los usuarios que van a utilizar el sistema, tanto la aplicación en Android como para la aplicación en Windows, ya que dependerá de las mismas para el correcto control de los dispositivos finales, es por esta razón que los requerimientos que se detallan a continuación son los más principales para el desarrollo de las aplicaciones. 1. El Módulo del usuario contará con una aplicación para computadoras bajo la plataforma Windows y además dispositivos bajo la plataforma Android. 2. La Aplicación del Usuario debe ser fácil de interpretar y a su vez las interfaces deben ser amigables e intuitivas. 3. La Aplicación del usuario debe proporcionar tiempos de respuesta rápidos. 4. La Aplicación del usuario debe ser fácil de descargar e instalar en dichas plataformas. 5. La Aplicación debe proporcionar seguridad al usuario, es decir debe proporcionar un identificador propio de cada usuario, esto es el login y el password. 6. Para el uso correcto de la aplicación en la plataforma Windows se deberá instalar previamente el jdk-8u5-nb-8. 62

7. Para el correcto funcionamiento de la aplicación en la plataforma Android, el dispositivo deberá tener instalado la versión 4.2.2 o superior. 8. La Aplicación deberá habilitar o deshabilitar el uso de sus acciones, dependiendo de los permisos que se les proporciona a cada uno de los usuarios en el servidor. 4.3

Modelación

Al igual que en el desarrollo del servidor en las aplicaciones se diseñaran los diagramas más importantes dentro del Modelado. 4.3.1 4.3.1.1

Diagramas Diagrama de Secuencia en la plataforma Windows

63

4.3.1.2

Diagrama de clases en la plataforma Windows

64

4.3.1.3

Diagrama de Secuencia en la plataforma Android

65

4.3.1.4

Diagrama de Clases en la plataforma Android

66

4.4

Implementación

Para la implementación de los módulos de los clientes, se va a tener que dividir en dos partes, ya que ésta implementación se va a desarrollar en diferentes herramientas de Java, el cliente de Windows se desarrollara en NetBeans IDE 8.0, mientras que el cliente de Android se va desarrollar en Eclipse Android Developer Tools v22.6.2, a continuación se detallan cada una de estas implementaciones. 4.4.1 Implementación del Cliente en Windows En la implementación del módulo para el cliente de Windows se tiene que verificar la instalación que se realizó al momento del desarrollo del servidor en el capítulo 3, ya que ahí se explicó de una forma detallada la instalación del JDK de java para el desarrollo del sistema. El modulo del cliente en Windows presenta la primera ventana que es la del Login, cabe recalcar que únicamente van a poder ingresar los usuarios que estén previamente registrados en la base de datos del sistema, esto lo puede realizar únicamente el Técnico del sistema en el módulo del Servidor.

Figura 4. 1. Inicio de Sesión cliente Windows

La siguiente ventana muestra todas las opciones que tiene un cliente para la manipulación del sistema, se puede dar en cuenta que al momento de que el usuario inicia sesión, el mismo tiene habilitado únicamente las propiedades que se le asignaron al momento de su creación en el módulo del Servidor, es por esta razón que se asignan los roles al momento de crear al usuario. 67

Figura 4. 2. Opciones del Cliente Windows

4.4.2 Implementación del Cliente en Android Para la implementación del módulo para el cliente en la plataforma de Android se tiene que verificar la versión que tiene el dispositivo ya que está desarrollado para poder ejecutarse en una versión mayor que 4.2.2 Al igual que el cliente en Windows esta implementación en Android presenta una ventana de Login, cabe recalcar que únicamente podrán ingresar los usuarios previamente registrados.

Figura 4. 3. Inicio de sesión del Cliente Android

Las siguiente ventana presenta la unión de las dos plantas del hogar, puesto que tenemos la manipulación de la iluminación del cuarto y de la Oficina, el proyecto consta de un botón de pánico el mismo que nos sirve para activar o desactivar la alarma, o a su vez se 68

puede activar automáticamente cuando algún sensor detecta presencia o calor (sensor de humo – sensor de movimiento)

Figura 4. 4. Opciones del cliente Android

4.5

Pruebas y Modificaciones

Para empezar a utilizar la Aplicación que se ejecutara en las plataformas Windows y Android, lo primero que se tiene que hacer es ejecutar el servicio de comunicación que a su vez es la aplicación del servidor, una vez ejecutado el servidor procedemos a ejecutar el cliente en cada una de las plataformas, en caso de no haber ejecutado el servidor, el cliente simplemente no hará nada, es decir intentará acceder al servicio pero no lograra hacerlo, únicamente quedará en la ventana de Login. 4.5.1 Pruebas en la plataforma Windows. Se realizó un sin número de pruebas en la plataforma Windows, como es el ingreso de usuarios, al mismo tiempo o a la vez el encendido y apagado de los dispositivos finales (Iluminación Cuarto – Oficina) al mismo tiempo.

69

Figura 4. 5. Pruebas Inicio Sesión

En el primer caso podríamos tener dos escenarios, el primero es no haber ejecutado con anterioridad el servidor, y el segundo es haber ingresado mal los datos del usuario al momento del login, en cualquiera de los dos casos la Aplicación nos devolverá un mensaje indicando que los datos están mal ingresados.

Figura 4. 6. Usuario o contraseña incorrectos

También se realizaron pruebas al momento de Apagar o encender un foco, deberá automáticamente cambiarse el texto del Botón de dicha acción, de la misma manera, si se hace clic en el botón de la oficina, debería cambiarse a “Apagar”, igualmente el botón de pánico al momento de activarse se cambiara la imagen en activado.

Figura 4. 7. Botón de activar la sirena

Podemos ver que nuestro cliente se está comunicando correctamente con nuestro servidor, ya que todas las peticiones que se hacen al servidor (encender o apagar ya sea

70

el cuarto, la oficina o sirena), devuelve con un “Encender” o un “Apagar” según sea el caso.

4.5.2 Pruebas en la plataforma Android Se verificara la conexión al servidor desde un usuario en Android, al momento de abrir nuestra APP, al igual que en Windows aparece la ventana de login, aquí se debe introducir un nombre de usuario y contraseña válidos, al momento de escribir un nombre incorrecto o una contraseña no válida da el siguiente error

Figura 4. 8. Usuario o contraseña incorrectos

Ahora introduciremos un nombre de usuario y contraseña que sean válidos o que exista en la base de datos del servidor. Si es que se puede acceder a la siguiente ventana es porque realmente existe comunicación por medio de sockets con nuestro servidor, al igual que en Windows cada usuario tiene sus propios privilegios que fueron anteriormente habilitados por el servidor al momento de su creación, en esta aplicación se puede observar que las dos plantas del hogar están detalladamente definidas, así se tiene en la primera planta o planta baja el mando de encender o apagar el foco de la oficina, y a su vez el sensor de humo el cual activara automáticamente la serena.

Figura 4. 9. Encendido o apagado de la iluminación

71

En la segunda planta del hogar se tiene el botón para la manipulación de la iluminación del cuarto así como también la activación de la sirena, y a su vez el sensor de movimiento que activa la sirena automáticamente.

Figura 4. 10. Opciones de la planta Alta

Con todo esto se puede comprobar que el cliente Android en realidad se está comunicando mediante sockets, puesto que todas las peticiones que se realizó al servidor que es el que devuelve una respuesta de acuerdo a la actividad solicitada.

72

CAPITULO V 5

ANALISIS DE RESULTADOS

En el siguiente capítulo se analiza los resultados del proyecto de tesis y como se fue dando el desarrollo del mismo, ya que tanto en el hardware como en el software se tuvo un sin número de problemas, la mayoría de estos fueron resolviéndose en el transcurso de la tesis. 5.1

Análisis de resultados de la configuración del hardware

Configuración de los dispositivos XBee Configuración modo AT La configuración AT permite configurar los XBee de una forma sencilla con parámetros específicos y así poder establecer una comunicación entre dos o más módulos, en dicha configuración existe una desventaja ya que al momento que se desea enviar un paquete a varios XBee destinatarios, es necesario entrar en modo comandos para cambiar la dirección de un nuevo dispositivo y luego se debe regresar a modo datos para enviar la trama deseada, por lo tanto la red se hace demasiado lenta ya que se tiene que hacer eso cada vez que se desee enviar los datos por separado. (concepts, 2012) Configuración modo API La configuración de modo API ciertamente es más complicada a nivel de programación pero a su vez provee de mayor características como la flexibilidad al momento de realizar el envío y recepción de datos, esta configuración es recomendable para utilizar en redes grandes donde se desee que la comunicación sea rápida y eficaz, en esta configuración no es necesario entrar y salir de modo comandos para introducir una nueva dirección de destino, ya que esta configuración hace que los XBee espere por una secuencia especifica de bytes que le indiquen el tipo de operación que debe realizar. Si se desea enviar paquetes a varios dispositivos se debe tener un XBee como Coordinador, el cual será el encargado de enviar los datos al destinatario seleccionado. Esta es una configuración ideal para trabajar en una red de tipo malla. (concepts, 2012) De acuerdo a los resultados que se obtuvo en la configuración de los dispositivos del protocolo ZigBee en modo AT y en modo API, se decidió utilizar la segunda opción, con esto se logra que la red sea de manera “Mesh” y sobre todo rápida, sin retardos en la comunicación. Cuando se requiere enviar un paquete, es necesario escribir la trama adecuada mencionando la dirección del dispositivo a la cual se está emitiendo, y así no tener retrasos en la comunicación entrando y saliendo de modo comandos para introducir un nuevo destino. 73

Al observar las características de la Tabla 2.1 se puede apreciar que el alcance de los XBee Series 2 es superior a Series1, es por esa razón que se utilizó el Series 2 para lograr una comunicación con mayor distancia entre dispositivos XBee. Al momento de los análisis, se puede mencionar que los resultados de la comunicación entre dispositivos del Protocolo ZigBee de acuerdo al alcance interno, resultó que no pueden comunicarse a una ubicación de 40 metros como se menciona en teoría en la Tabla 2.1, por ejemplo, un dispositivo ubicado en la planta alta no puede comunicarse con un dispositivo situado en la planta baja a la distancia de 17 metros aproximadamente, es por esa razón que la ubicación de los dispositivos es muy importante para su comunicación. Al ser necesario colocar dispositivos a largas distancias es muy probable que no se comuniquen, esto se puede resolver utilizando un nuevo dispositivo ubicado de tal manera que puedan reenviar la información hasta su destino. Resultados de la comunicación entre dispositivos XBee de acuerdo a su alcance interno: S/N Si Si Si Si Si Si Si No No No

Alcance (m) 5 10 11 12 13 14 15 20 30 40

Alcance Interno (m) No No No Si Si Si Si Si Si Si

Alcance (m)

0

20

40

60

Figura 5. 1. Alcance de Comunicación entre dispositivos XBee

Cabe recalcar que las características de los dispositivos de cada serie son similares (excepto el alcance) y hacen exactamente lo mismo, pero a pesar de que hacen lo mismo no son compatibles entre las dos series, la razón es que utilizan diferentes chipset y el protocolo de cada uno es diferente. Otro factor importante es el voltaje de alimentación, de acuerdo a la teoría soporta de 2,8 V a 3,6 V de corriente continua, a continuación se presenta una tabla con voltajes utilizados para su comprobación:

74

Funcionalidad No No No Si Si Si Si Si Si Si Si Si

Alimentación (Vcc) 2,5 2,6 2,7 2,8 2,9 3 3,1 3,2 3,3 3,4 3,5 3,6

Alimentacion (Vcc) Si Si Si Si Si Si Si Si Si No No No

Alimentacion (Vcc)

0

1

2

3

4

Figura 5. 2. Voltaje de Alimentación de un XBee.

Se ha utilizado voltajes de alimentación con valores inferiores a los que se menciona en la Tabla 2.1 para comprobar su funcionalidad, se puede apreciar en la Figura 5.2 que empieza a funcionar un XBee a partir de 2,8 V de corriente continua. No se ha utilizado valores superiores a 3,6 V como indica la Tabla 2.1 para evitar que se averíe el dispositivo. Según los resultados de configurar un XBee como Router, End Device y Coordinador, se puede aludir que es necesario tener dispositivos como Router API. Estos son capaces de retransmitir los paquetes entre ellos. Es muy útil para que puedan comunicarse entre todos sin necesidad de que se encuentren cerca del Coordinador, el mismo que envía la trama al más cercano y este emite al siguiente hasta llegar al indicado, mientras que el End Device API carece de la capacidad de enrutar paquetes, es decir, no retiene la información para repetir la señal a otro dispositivo sin importar cual fuere su configuración. Se comunica directamente con un nodo padre, puede ser Coordinador o Router, también se ha decidido utilizar un dispositivo como Coordinador API para que forme la red con los Routers dentro del mismo PAN ID, y así puedan interactuar entre todos retransmitiendo los paquetes hasta encontrar el destino. Para el acoplamiento del dispositivo XBee es necesario contar con una base donde se adapte dicho dispositivo, es cuando surgió un problema, no se contaba con la base para el XBee, es por esa razón que se elaboró un soporte donde se puedan utilizar solo los pines necesarios para el funcionamiento de cada dispositivo.

75

Figura 5. 3. Base para el dispositivo XBee

Todos los circuitos armados fueron de gran ayuda, cada uno tiene una función diferente, siendo la excepción los circuitos de iluminación, es decir, estos tienen la misma funcionalidad pero su armado es diferente, esto se debe a que se tuvo que basar en la facilidad de la implementación y en la factibilidad que se tenía en el hogar, ya que en el circuito de la iluminación de la oficina se implementó un regulador de voltaje de 12V a 3,3V, el motivo es que la dificultad de obtener 3,3V es más que la obtención de 12V. Cabe recalcar que cada uno de los circuitos es probado antes de su implementación final en el hogar.

Figura 5. 4. Circuito armado para la iluminacion.

Uno de los circuitos con más complicaciones fue para el sensor de humo, el mismo es diseñado para poder manipular la sirena al momento de su activación. El sensor de humo tuvo que ser modificado, puesto que al momento de activarse se quedaba dando un pulso, el cual impedía que se desactive para una nueva activación. Para solucionar dicho inconveniente, se tuvo que colocar un pulsante para el apagado del sensor luego de que 76

envíe el pulso hacia la sirena, así mismo este circuito fue probado antes de su implementación.

Figura 5. 5. Circuito para el Sensor de Humo

Al momento de realizar pruebas de funcionalidad de los dispositivos XBee, ciertos dispositivos daban un error, el cual fue investigado y se llegaba a la única solución que era hacer un “reseteo” a los dispositivos, lo cual se puede logar mediante la herramienta del “XBee Explorer” con la opción del “Reset”, y lamentablemente para el desarrollo de este proyecto se había conseguido el “Explorer” que no tiene dicha opción. 5.2

Análisis de resultados del Servicio de Comunicación

Se ha utilizado el Raspberry-Pi debido a sus grandes ventajas en comparación a otros dispositivos como un PC normal o a su vez maquinas dedicadas a un propósito específico como son servidores, las principales ventajas que proporciona un RaspberryPi es el bajo consumo de energía ya que aproximadamente consume 700mA, pero lo recomendable para que la funcionalidad del Raspbian sea un cien por ciento es tener un cargador de 1A de energía, ya que por ejemplo se probó con un cargador de 0.5A y el Raspbian se prendió pero los periféricos no funcionaban correctamente, siendo el problema la fuente de alimentación, Al momento de la instalación del Sistema Operativo Raspbian, se utilizó distintos SD de diferentes capacidades de la marca Kingston, dando un problema de reconocimiento de archivos al momento de encender el Raspberry Pi, es decir, no se visualizaba absolutamente nada en pantalla y por lo tanto era un impedimento para la ejecución del servicio de comunicación. Se realizó la instalación de Raspbian en un SD cuya capacidad es de 8 Gb y de marca Pqi de clase 4, dando como resultado exitoso en el arranque, pues ya visualizaba la interface gráfica del Sistema Operativo permitiendo la ejecución de la aplicación que se utiliza de servidor. La tarjeta SD que garantiza la transferencia de datos adecuada para la ejecución de Raspbian debe ser mínimo de clase

77

4. A continuación se presenta una tabla con las velocidades de transferencia que tiene cada clase. Clase Clase 2 Clase 4 Clase 6 Clase 10 UHS Clase 1 UHS Clase 3

Velocidad 2 MB/s 4 MB/s 6 MB/s 10 MB/s 10 MB/s 30 MB/s

Tabla 5. 1. Clases de SD con velocidad de transferencia.

Otras de las grandes ventajas es el bajo precio del mismo así como también el tamaño reducido ya que prácticamente viene siendo una tarjeta que podemos llevarla a cualquier sitio e instalarla en un lugar con muy poco espacio.

Figura 5. 6. Raspberry – Pi

Como todo sistema también tiene sus inconvenientes, ya que Raspbian no cuenta con memoria suficiente para la interacción de las aplicaciones, esto se tuvo que solucionar a nivel de software ya que se realizó la comunicación mediante sockets, donde cada petición que recibía de un cliente se volvía a enviar a todos los usuarios conectados mediante un método que guardaba las peticiones en una variable, esto sucedía porque estaba implementado con el DefaultListModel, ya que este daba el problema porque se iba llenando la memoria del Raspbian con dichas peticiones y a su vez empezaba a dar errores y consigo lentitud al sistema. Este problema se resolvió realizando la comunicación mediante sockets de manera que exista un hilo por cada cliente que se conecte al servidor, para enviar directamente a los usuarios conectados y no guardar en ninguna variable las peticiones realizadas, con esto aseguramos una comunicación directa con todos los dispositivos conectados al servidor garantizando un retardo mínimo en la transmisión de datos, otro de los inconvenientes que tiene el Raspberry-Pi es su procesador ya que el mismo cuenta con muy poca capacidad para trabajar con procesos grandes a la vez, pero al momento de analizar detenidamente el funcionamiento tanto de 78

velocidades, como de almacenamiento en memoria al ejecutar el sistema, se tuvo que descartar este problema ya que su funcionalidad fue lo esperado. El servidor Raspberry Pi implementado en el proyecto de tesis usa una micro SD de 8 Gb de capacidad de almacenamiento de los cuales 1,5 Gb consume el sistema operativo Raspbian, la Base de datos ocupa 3,5 Kb y la aplicación del proyecto de tesis ocupa 6.58 Mb. Descripción

MB

Raspbian

1536

Base de Datos

0,003398

Almacenamiento SD

APP

6,58

Espacio Libre

8192

16%

0%

0%

84%

Raspbian Base de Datos APP Espacio Libre

Figura 5. 7. Almacenamiento del SD del Raspbian

La Base de datos con la herramienta LAMP está compuesta por una base de nombre XBee, la misma que está conformada por tres tablas, login, roles y XBee, es así que a continuación se explica detalladamente los cálculos aproximados que alcanzaría el sistema para su almacenamiento completo. Al momento de analizar obtenemos un total de 142 datos, logrando que tenga un peso de 3,51 kb eso da a entender que cada usuario tiene un peso en la base de datos de 0,03 kb, es así que se necesita 225 millones de usuarios para que la capacidad del SD se llene completamente, esto se resolvió con la siguiente formula: (P.U * X = Es_Disco) P.U = Peso de cada Usuario X = Cantidad de Usuarios Es_Disco = Espacio en Disco TABLA FILAS COLUMNAS DATOS Login 7 4 28 XBee 5 6 30 Roles 4 21 84 TOTAL DE DATOS 142 Tabla 5. 2. Análisis de datos para el almacenamiento

5.3

Análisis de resultados de las Aplicaciones para el control de los dispositivos del Protocolo ZigBee

Al ejecutar la aplicación, automáticamente detectará si se encuentra dentro del hogar (red local, Wi-Fi) o fuera (vía Internet), una vez realizada la conexión comenzará a 79

interactuar con el servidor, enviando paquetes para la realización de peticiones. Para conocer los tiempos de envío (desde el usuario) y confirmación de peticiones (desde el servicio de comunicación) se usa el programa denominado Wireshark. Encendido de los dispositivos finales: Para poder realizar el análisis de cada uno de los tiempos de respuesta que tiene el servidor al momento de las peticiones que realiza el usuario se tuvo que acudir a la ayuda de Wireshark ya el mismo tiene la capacidad de monitorear la red y darnos los tiempos aproximados en que se están realizando dichas peticiones, a continuación se presentan las imágenes de confirmación del servidor a las peticiones realizadas por el usuario.

Figura 5. 8. Confirmación al momento de la petición de Alarma desde el usuario

Figura 5. 9. Confirmación al momento de la petición de iluminación del dormitorio desde el usuario

80

Figura 5. 10. Confirmación al momento de la petición de iluminación de la oficina desde el usuario

Acción Botón de Pánico (Alarma) Dormitorio (Iluminación) Oficina (Iluminación)

Petición (s) 0,197411999 0,202758000 0,200817000

Confirmación (s) 0,165377000 0,142697000 0,154644000

Tabla 5. 3. Encendido de los dispositivos finales con Windows fuera del hogar

Apagado de los dispositivos finales: Las figuras que se observan a continuación son los tiempos de respuestas de las peticiones que se generan al momento de que un cliente desea realizar alguna acción en la Aplicación

Figura 5. 11. Petición de activación de la alarma

81

Figura 5. 12. Petición de iluminación del dormitorio desde el usuario

Figura 5. 13. Petición de iluminación de la oficina desde el usuario

Acción Botón de Pánico (Alarma) Dormitorio (Iluminación) Oficina (Iluminación)

Petición (s) 0,152022000 0,155182000 0,150767000

Confirmación (s) 0,179242000 0,173132000 0,195767000

Tabla 5. 4. Apagado de los dispositivos finales con Windows fuera del hogar

En la tabla 5.5 y tabla 5.6 se presentará un análisis del tiempo de emisión y recepción de peticiones desde un cliente Android cuando el usuario se encuentra fuera del hogar. Encendido de los dispositivos finales: Acción Botón de Pánico (Alarma) Dormitorio (Iluminación) Oficina (Iluminación)

Petición (s) 0,264522000 0,231658000 0,27365000

Confirmación (s) 0,268731000 0,176932000 0,265139000

Tabla 5. 5. Encendido de los dispositivos finales con Android fuera del hogar

82

Apagado de los dispositivos finales: Acción Botón de Pánico (Alarma) Dormitorio (Iluminación) Oficina (Iluminación)

Petición (s) 0,263499000 0,216443000 0,298453000

Confirmación (s) 0,183621000 0,153876000 0,182433000

Tabla 5. 6. Apagado de los dispositivos finales con Android fuera del hogar

También se realizó un análisis de los tiempos de envío y recepción de peticiones por un cliente bajo el Sistema Operativo Windows y un usuario con Android, con la diferencia de que el usuario se encuentre conectado a la red local, es decir conectada dentro del hogar. Tablas de tiempos desde un cliente Windows. Encendido de los dispositivos finales: Acción Botón de Pánico (Alarma) Dormitorio (Iluminación) Oficina (Iluminación)

Petición (s) 0,175226000 0,194288000 0,198673000

Confirmación (s) 0,189873000 0,136983000 0,158142000

Tabla 5. 7. Encendido de los dispositivos finales con Windows dentro del hogar

Apagado de los dispositivos finales: Acción Petición (s) Botón de Pánico (Alarma) 0,189362000 Dormitorio (Iluminación) 0,191840000 Oficina (Iluminación) 0,124269000

Confirmación (s) 0,168253000 0,182260000 0,184799000

Tabla 5. 8. Apagado de los dispositivos finales con Windows fuera del hogar

Tablas de tiempos desde un cliente Android. Encendido de los dispositivos finales: Acción Botón de Pánico (Alarma) Dormitorio (Iluminación) Oficina (Iluminación)

Petición (s) 0,193216000 0,191429000 0,202144000

Confirmación (s) 0,194322000 0,214751000 0,188979000

Tabla 5. 9. Encendido de los dispositivos finales con Android dentro del hogar

83

Apagado de los dispositivos finales: Acción Botón de Pánico (Alarma) Dormitorio (Iluminación) Oficina (Iluminación)

Petición (s) 0,198723000 0,209837000 0,178392000

Confirmación (s) 0,169283000 0,175322000 0,171829000

Tabla 5. 10. Apagado de los dispositivos finales con Android dentro del hogar

Siendo “Petición” medido en segundos, es el tiempo en llegar la solicitud al servidor enviada por un usuario, mientras que “Confirmación” es el tiempo que demora en verificar la llegada de los paquetes a los clientes desde el servidor, también es medido en segundos. A continuación se presenta una tabla comparativa de Tiempos de peticiones que realiza un cliente Windows, cuando se encuentra fuera del hogar (vía Internet) y cuando se encuentra dentro del hogar (red loca, Wi-Fi).

Descripción

Fuera

Tiempos de respuesta Windows

Dentro 0,205

Botón de Pánico

0,19741

0,17523

0,2 0,195

0,20276 0,19741 0,19429

0,20082 0,19867

0,19

Dormitorio (Iluminación)

0,20276

0,19429

0,185

Fuera

0,18

Dentro

0,175

Oficina (Iluminación)

0,17523

0,17

0,20082

0,19867

0,165 0,16

Figura 5. 14. Tiempos de peticiones desde cliente Windows dentro y fuera del hogar.

Tabla comparativa de tiempos de peticiones que realiza un usuario Android, cuando se encuentra fuera del hogar (vía Internet) y cuando se encuentra dentro del hogar (red loca, Wi-Fi).

84

Descripción

Fuera

Tiempos de respuesta Android

Dentro 0,3

Botón de Pánico

0,26452

0,19322

0,25 0,2

Dormitorio (Iluminación)

0,23166

0,19143

0,27365

0,26452 0,23166 0,19322

0,19143

0,20214

0,15

Fuera Dentro

0,1

Oficina (Iluminación)

0,27365

0,20214

0,05 0

Figura 5. 15. Tiempos de peticiones desde cliente Android dentro y fuera del hogar.

De acuerdo a los resultados obtenidos, el tiempo de comunicación con el servidor es factible independientemente del Sistema Operativo donde se encuentre instalada la Aplicación (Android o Windows) del cliente y sobre todo sin importar la ubicación del usuario, es decir, puede encontrarse dentro o fuera del hogar, teniendo la segunda opción la necesidad de conectarse vía Internet para realizar las peticiones. Por ejemplo, cuando un cliente realiza la petición para encender la iluminación del Dormitorio, el tiempo aproximado que demora en llegar los datos al servidor es de 0,202758000 segundos, a partir de ahí se encarga de hacer el proceso para prender el Foco. Además el servicio de comunicación envía de vuelta al usuario una confirmación de haber recibido con éxito la petición, el tiempo de regreso es aproximadamente de 0,166714000 segundos, con esta respuesta la APP cambiará de estado según sea la petición. Las aplicaciones fueron realizaras en dos sistemas operativos, Windows y Android, el sistema operativo Android es compatible con librerías de java, esto es una ventaja puesto que es un lenguaje de programación que se viene estudiando desde los primeros años de universidad, por lo tanto se tiene las bases necesarias para desarrollar aplicaciones en Android, también se puede mencionar que es un sistema operativo OpenSource, esto quiere decir que no es necesario de licencias para desarrollar aplicaciones bajo esta plataforma. Después de realizar una investigación de los sistemas operativos más usados, se encontró que en la actualidad la mayoría de dispositivos móviles tiene instalada la plataforma Android, de acuerdo a la firma de Canalys ha realizado un estudio de los dispositivos más vendidos en el mudo, donde menciona que se han puesto a la venta una 85

cantidad de 279,4 millones de móviles, de los cuales el 81% cuentan con Android, mientras que IOS tiene un 16% de esos dispositivos y Windows Phone de Microsoft solo un 3% Otro de los sistemas operativos escogido para realizar el proyecto de tesis es Windows, ya que es el sistema más utilizado en todo el mundo, existiendo más del 90% de computadoras en el mercado siendo Windows 7 la versión más utilizada por los clientes, además es compatible con el lenguaje de programación Java.

5.4

Análisis Económico

A continuación se presenta el análisis económico del costo total de la inversión realizada para la implementación del proyecto, así como el beneficio obtenido con el desarrollo del mismo. Al efectuar los cálculos para conocer la rentabilidad de si es factible o no invertir en el proyecto y saber si se tendrá un beneficio concluyente viable, se emplea los siguientes indicadores: -

Valor Actual Neto (VAN) Tasa Interna de Retorno (TIR)

5.4.1 Valor Actual Neto (VAN) “El valor actual neto de un proyecto de inversión se define como el valor actual de todos los flujos de caja generados por el proyecto de inversión menos el coste inicial necesario para la realización.” (Hernandez) A continuación se presenta la fórmula para calcular el VAN: 𝑉𝐴𝑁 = −𝐴 + 𝐹𝑁𝐶1 + 𝐹𝑁𝐶2 + ⋯ + 𝐹𝑁𝐶𝑛 (1 + 𝑘)1 + (1 + 𝑘)2 + ⋯ + (1 + 𝑘)𝑛 Siendo: “A = Capital Invertido o coste inicial.” “FNC = Flujo neto de caja o flujo de tesorería al final de cada periodo (año, mes, ect).” “k = Tipo de actualización.” (Tg, tasa de oportunidad o rentabilidad que se espera ganar.) “n = Horizonte temporal de la inversión o vida útil estimada para la inversión.” 5.4.2 Tasa Interna de Rendimiento; “Se define como aquel tipo de actualización o descuento que iguala el valor actual de los flujos netos de caja con el desembolso inicial.” (Hernandez) 𝐴 = −𝐴 + 𝐹𝑁𝐶1 + 𝐹𝑁𝐶2 + ⋯ + 𝐹𝑁𝐶𝑛 86

O bien. (1 + 𝑘)1 + (1 + 𝑘)2 + ⋯ + (1 + 𝑘)𝑛 𝑉𝐴𝑁 = −𝐴 + 𝐹𝑁𝐶1 + 𝐹𝑁𝐶2 + ⋯ + 𝐹𝑁𝐶𝑛 = 0 (1 + 𝑟)1 + (1 + 𝑟)2 + ⋯ + (1 + 𝑟)𝑛 Siendo r la representación de la TIR. El presupuesto que tomaremos en cuenta llevará consigo los materiales y la mano de obra, incluido los colaboradores que se reúnen para el proyecto. Se tomará en cuenta el tiempo que durará la culminación del mismo. ITEM

DESCRIPCION

CANT. COSTO UNIT.

COSTO TOTAL (IVA INCLUIDO)

Hardware

1

Dispositivos XBee

4

32,5

130

2

XBee Xplorer USB

1

21,30

23,86

3

Raspberry PI

1

54

60,48

4

Micro SD

1

10

10

5

Router

1

45

45

12

Sensores

2

20

40

13

Sirena

1

20

20

15

Cables

-

10

10

16

Dispositivos electrónicos

4

15

60

17

Adaptador de voltaje

1

5

5

20

Instalación

2

600

1200

Software 1

APP Cliente

2

700

1400

2

APP Servidor

1

1632

1632

TOTAL

4636,34

Tabla 5. 11. Tabla del Análisis Económico

5.4.3 Cálculos para el VAN Con este proyecto se ha propuesto tener una tasa anual de 50% de ganancia por un periodo de 2 años, suponiendo que se tendrá 12 clientes al año y que el sistema será vendido al costo de 6000 $, teniendo en cuenta la inversión de 4636,34 $, se procede a calcular el VAN. 87

Ganancia año 1= 6000x12 = 72000 Ganancia año dos= 6000x12 = 72000 Año 1 Flujo de caja Neto 72000

Año 2 72000

Tabla 5. 12. Análisis de las Ganancias en dos años

Siendo los valores para calcular el VAN los siguientes: A = 4636,34 $ FNC = 72000 $ k = 0,5 n=2 𝑉𝐴𝑁 =

72000 72000 + − 4636,34 (1 + 0,5) (1 + 0,5)2 𝑉𝐴𝑁 = 75363,66 $

Si VAN > 0, el proyecto es rentable. Si VAN = 0, también es rentable pues la tasa de ganancia (k) ya está incluida. Si VAN < 0, el proyecto no sería rentable. Como se puede observar, el proyecto es factible pues ofrece una ganancia rentable para su elaboración, cabe recalcar que esa ganancia es en un periodo de dos años, por lo tanto seria mensualmente 3140,15 $ de ganancia. 5.4.4 Cálculos para TIR. Se procede a realizar el cálculo para conocer la tasa máxima que puede tener el proyecto para que sea factible o rentable. Ganancias año 1= 6000x12 = 72000 Ganancias año dos= 6000x12 = 72000

Flujo de caja Neto

Año 1 72000

Año 2 72000

Tabla 5. 13. Análisis de las Ganancias en dos años

Siendo los valores para calcular el VAN los siguientes: A = 4636,34 $ FNC = 72000 $ r =? 88

n=2 0=

72000

72000

+ (1+𝑟)2 − 4636,34 (1+𝑟)

Despejando r: r = 15,47 % De acuerdo al resultado se obtiene una tasa del 15,47%, este valor es la tasa máxima que puede tener el proyecto, si el producto tuviese un valor mayor el proyecto empezaría a no ser rentable, es decir a menor tasa mayor será su rentabilidad.

89

CONCLUSIONES En el proceso de ejecución del proyecto de tesis, existieron problemas en lo que respecta a la comunicación desde un cliente hacia el servidor, resulta que por cada petición que hacía un cliente independientemente Windows o Android un error se incrementaba en el servidor a pesar de que su funcionalidad era la correcta. El problema se hacía más visible cuando las peticiones se incrementaban debido a esto surgió un retardo en la comunicación, se puede concluir que el tiempo de muestreo en los análisis de la comunicación fue aceptable para el proyecto, dicha aseveración fue corroborada con la comparación de pruebas anteriores en el cual el tiempo de respuesta fuera mayor al existente, teniendo así un buen funcionamiento. La implementación del proyecto de tesis buscaba adquirir un servidor con tamaño óptimo de manera que este no ocupe un espacio notable en el hogar, adicionalmente que este cuente con las características internas lo suficientemente adecuadas para ejecutar el servicio de comunicación. El Raspberry Pi es un computador que tiene esas particularidades, pues sus dimensiones son de 25x20x9 mm, lo cual revela el ahorro significativo de espacio, cuenta con una memoria RAM integrada de 512 Mb la misma que garantiza la ejecución exitosa de la APP. Según pruebas desarrolladas se ultima que el servidor está funcionando a la perfección, ya que este es el encargado de receptar peticiones y emitir una respuesta de solicitud mediante sockets a los clientes conectados, permitiendo de tal forma la actualización de todos los dispositivos en un tiempo factible. Al realizarse las pruebas con los clientes y no existir problemas en la trasmisión de peticiones hacia el servidor, permite observar que los módulos podrán ejecutarse en la plataforma Linux sin tener inconvenientes del lenguaje en el que fueron desarrollados. Al mencionar los dispositivos del protocolo ZigBee, se llega a un punto en la investigación donde se dificultaba la indagación de información de la configuración de los dispositivos, para alcanzar los conocimientos necesarios para la operación de los XBee el punto clave fue el esfuerzo y dedicación en buscar los documentos que discutan sobre la configuración para la comunicación entre los dispositivos del protocolo ZigBee (XBee), resaltando dentro de lo aprendido, el armado de las tramas hexadecimales, gracias a las cuales se puede enviar paquetes a todos los nodos que se encuentren dentro de una red ZigBee con sus respectivos PAN ID configurados. Los dispositivos del protocolo ZigBee ofrecen grandes ventajas como se explicó en el desarrollo del proyecto, pero en la mayoría de dispositivos existe un porcentaje mínimo de inconvenientes, siendo este la des-configuración automática del dispositivo XBee. Otro de los problemas que surgió con los dispositivos XBee es la manera de volverlos a reprogramar, concluyendo que la única solución es la utilización de un XBee Xplorer 90

USB que cuente con la opción “reset”. Los mismos que demostraron ser útiles para la realización del Proyecto de Tesis. Desde el punto de vista de los resultados obtenidos en las pruebas con las aplicaciones, se puede concluir que se lograron cumplir con los objetivos planteados, siendo las aplicaciones amigables de tal manera que el usuario pueda interactuar fácilmente con las mismas, así mismo al ser factible el desarrollo se puede mencionar que los tiempos de respuesta demuestran el óptimo funcionamiento de dichas aplicaciones. Finalmente, se menciona que se puede construir un sistema domótico con un presupuesto dentro de un rango módico al valor de los dispositivos y de los APPs, estos datos se pueden confirmar observando el análisis económico que se realizó para el proyecto de tesis. La ventaja principal de este sistema Domotico es el cableado mínimo que se utiliza en el hogar, ya que otras empresas pueden brindar servicios con cableado conectado a un Panel Principal. Uno de los objetivos principales de este proyecto es realizar lo mismo o algo similar de aquellas empresas pero de manera inalámbrica o cablear lo menos posible.

91

RECOMENDACIONES Para trabajar con los dispositivos del Protocolo ZigBee, se recomienda configurarlos como “Router API” debido a su gran funcionalidad y a su vez cuenta con muchos privilegios, mientras que al hacerlo como “End Device API” tiene ciertas desventajas que se había mencionado con anterioridad en el desarrollo del proyecto, por ejemplo, de manera “Router API” todos los dispositivos pueden comunicarse entre sí, y cuando un Coordinador API envía una señal, todos reciben y vuelven a retransmitir la señal hasta que llegue al dispositivo que le corresponde, dando así una red mesh y garantizando la comunicación con todos los dispositivos de este protocolo que se encuentren activos dentro de la misma red con sus respectivo PAN ID. Además, es recomendable la opción de “API” y no “AT”, debido a que de esta manera se puede trabajar directamente con un Pin especifico del dispositivo ZigBee, y así enviar una señal desde el Coordinador para ponerle como “Up” siendo Activo o como “Down” Inactivo mediante una trama hexadecimal, mientras que de la manera “AT” se envía cadenas de textos que en este caso no tendría sentido porque se necesita controlar un Pin directamente y no leer el texto ingresado o enviado desde o hacia un dispositivo ZigBee. En el servidor Raspberry Pi, se recomienda tener cuidado al momento de desarrollar el sistema de comunicación para no tener complicaciones de memoria por parte de la Raspberry, por ejemplo, se realizó la comunicación mediante sockets, donde cada petición que recibía de un cliente se enviaba una respuesta a todos los usuarios conectados, mediante un método que guardaba las peticiones en una charla con la implementación de DefaultListModel, donde este era el que daba el problema porque se iba llenando en memoria todas la peticiones y empezaba a dar errores. La recomendación de acuerdo a los resultados, es realizar la comunicación mediante sockets de manera que exista un hilo por cada cliente que se conecte al servidor, para enviar directamente a los usuarios conectados y no guardar en ningún método las peticiones realizadas. Con esto aseguramos una comunicación directa con todos los dispositivos conectados al servidor garantizando un retardo mínimo en la transmisión de datos. Finalmente se podría recomendar al usuario de ser posible, que obtenga un dispositivo móvil bajo la plataforma Android, el mismo que tenga la posibilidad de poner Chip de alguna operadora que sea de su preferencia, esto con la intención de que pueda contratar un plan de datos, con la finalidad de que siempre tenga acceso al sistema para que pueda controlar o monitorear lo que está sucediendo en su hogar. La APP está programada para tener acceso a los controles desde cualquier parte del mundo siempre y cuando tenga disponibilidad de Internet, así como también puede inspeccionar sin la necesidad 92

del mismo, esto puede darse cuando esté dentro del hogar si por algún motivo se haya cortado Internet, como puede notarse, existen dos opciones para controlar los dispositivos, puede hacerlo desde fuera o dentro del hogar con o sin la necesidad de conexión a Internet.

93

ANEXOS Anexo 1 Tabla de Características de los XBee XBee

Máxima Velocida d de Datos

Banda de Frecuencia

Poder de Transmisión

Anten a

Pines Digitales

Entradas ADC

Rango

115.2 kbP

2.4 GHz

1 mW (+0 dBm)

Builtin

8

(7) 10-bit

300ft (100m)

250kbp s

2.4 GHz

1mW output (+0dBm)

Builtin

8

(6) 10-bit

300ft (100m )

250kbp s

2.4 GHz

2mW output (+3dBm)

Builtin

8

(6) 10-bit

400ft (120m)

250kbp s

2.4 GHz

2mW output (+3dBm).

Builtin

8

(6) 10-bit

400ft (120m )

250kbp s

2.4 GHz

2mW output (+3dBm)

RPS MA

8

(6) 10-bit

400ft (120m )

250kbp s

2.4 GHz

2mW output (+3dBm)

Builtin

8

(6) 10-bit

400ft (120m)

250kbp s

2.4 GHz

50mW output (+17dBm).

RPS MA

8

(6) 10-bit

1 mile (1600m )

XBee 1mW PCB Antena

XBee 1mW Wire Antena

XBee 2mW Chip Antena - Series 2

XBee 2mW PCB Antena - Series 2 (ZigBee Mesh)

XBee 2mW RPSMA - Series 2

XBee 2mW Wire Antena Series 2 (Mesh)

XBee Pro 50mW RPSMA - Series 2 (Mesh)

94

250kbp s

2.4 GHz

50mW output (+17dBm).

Builtin

8

(4) 10-bit

1 mile (1600m )

250kbp s

2.4 GHz

60mW output (+18dBm).

Builtin

8

(6) 10-bit

1 mile (1600m )

250kbp s

2.4 GHz

60mW output (+18dBm)

Builtin

8

(6) 10-bit

1 mile (1600m )

156 Kbps

ISM de 900MHz

50 mW (+17 dBm)

RPS MA

10

(6) 10-bit

6 miles (10 km)

XBee Pro 50mW Serie 2.5 Wire Antena

XBee Pro 60mW serie 1 PCB Antena

XBee Pro 60mW Wire Antena

XBee Pro 900 RPSMA Tabla Anexo 1. 1

95

Anexo 2 Manual de Técnico El servidor se ejecutará en el Raspberry Pi, el mismo que tiene el Sistema Operativo Raspbian, una vez encendido el Raspberry Pi, lo primero que se hace es abrir un Terminal, a continuación escribir la dirección donde se encuentra la aplicación, y por último para ejecutar digitando java –jar “nombre de la aplicación.jar” y en ese momento se abrirá la interface del servidor, es ahora cuando el cliente podrá realizar peticiones. La primera ventana que aparece es la de Login, hasta aquí el cliente ya podrá interactuar con el servidor, desde aquí en adelante solo la persona asignada como Técnico podrá ingresar a las opciones existentes dentro de la aplicación. El Técnico deberá introducir un nombre de usuario y una contraseña válidos, después de llenar los datos se podrá validar de dos maneras: a. Se puede hacer Clic en el botón “Entrar” b. Justo después de haber digitado la contraseña se puede dar un “Enter” del teclado.

Figura A2. 1. Login y usuario del Servidor

En caso de haber introducido uno de los campos incorrectos, o a su vez que la persona a ingresar no esté configurada como técnico y más bien se encuentre como usuario, entonces no podrá ingresar al sistema y devolverá una advertencia.

Figura A2. 2. Advertencia, Usuario o Contraseña INCORRECTO

De haber introducido correctamente la información solicitada, la siguiente ventana a visualizar es la de “Opciones”, es aquí donde el Técnico debe escoger una de las dos 96

opciones existentes dependiendo de lo que necesite realizar “Manipulación de Usuarios” y “Manipulación de Dispositivos”. En esta ventana existe una pequeña introducción de lo que el Técnico puede realizar en cada opción.

Figura A2. 3. Opciones, Manipulación de Usuarios, Manipulación de Dispositivos

1) Si el Técnico escoge la opción “USUARIOS” aparecerá una nueva ventana donde podrá visualizar todos los controles necesarios y útiles para ingresar, modificar, etc. Dentro de esta ventana están deshabilitados algunos controles y habilitados otros, los que se encuentran habilitados por defecto son los botones de: - Listar: Sirve para visualizar todos los usuarios creados configurados como “Técnicos” ó como “Usuarios”, en esta tabla se puede ver el nombre de usuario, la contraseña por si el usuario ha olvidado la misma, también indica si es de tipo “Técnico” o de tipo “Usuario”, es decir, las únicas personas que se encuentren como Técnicos serán las que puedan entrar al servidor, existe un campo que informa de los roles que tiene asignado cada usuario

Figura A2. 4. Lista de Usuarios existentes.

97

-

También se encuentra habilitado por defecto la opción Eliminar, introducir el código del usuario a eliminar y dar Clic en el botón “Eliminar” o simplemente dar un “Enter” desde el teclado. Para ello debe buscar a la persona y ver que código posee, pero antes se debe escoger la opción “Modificar Usuario” que es la que habilita a “Buscar”, una vez habilitado se procede a escribir el nombre de usuario y presionar un “Enter” desde el teclado o hacer Clic en el botón “Buscar” y se llenarán automáticamente todos los datos como son el id, Usuario, Contraseña y se señalarán todos los roles que se les ha asignado.

Figura A2. 5. Venta Principal de Manipulación de Usuario.

-

Una vez obtenido todos los datos, tienen dos maneras de reutilizarlos, es decir, se puede modificar cualquier dato menos el id, luego presionar “Editar” y a continuación le da un aviso y con este asegura el Técnico que se haya guardado correctamente los datos con la nueva configuración

Figura A2. 6. Advertencia, Datos Modificados Correctamente.

-

O a su vez si no desea modificar, simplemente con el id que se obtuvo en el campo Id, la escribe dentro de la opción de “Eliminar” y presionar “Enter” y si todo ha salido bien, devolverá un aviso confirmando su eliminación

98

Figura A2. 7. Advertencia, confirmación de eliminación de Usuario.

-

Si lo que desea es crear un usuario nuevo debe señalar “Crear Usuario”, al dar clic se habilitará la opción “Crear” y se deshabilitarán “Editar” y “Buscar”, esto con la finalidad de que el Técnico evite confusiones, los campos Usuario, Contraseña y los roles que serán asignados se habilita, donde automáticamente en el campo “Id” se introduce con el código que le corresponderá al nuevo usuario que será creado (figura 8), faltaría llenar los otros campos que son Usuario, Contraseña, y se debe asignar por lo menos un Rol a un usuario caso contrario el sistema da una advertencia (figura 9), también devuelve otro aviso si no se llena todos los campos (figura 10). De haber llenado todos los campos necesarios y de haber asignado por lo menos un rol, se procede a guardar haciendo clic en “Crear” y aparece un aviso comprobando que se ha guardado con éxito (figura 11).

Figura A2. 8. Crear Usuario

Figura A2. 9. Advertencia, Debe seleccionar por lo menos un Rol.

99

Figura A2. 10. Advertencia, Llenar todos los campos.

Figura A2. 11. Datos Ingresados Correctamente.

2) Si el Técnico desea escoger la opción de “DISPOSITIVOS”, Aquí podrá realizar las actividades similares a las de “USUARIO”, es decir, podrá crear, modificar, listar, buscar y eliminar un Dispositivo XBee, como se puede observar, los botones de “Eliminar” y “Listar” están por defecto habilitados y el resto se encuentran deshabilitados al menos que escojan una de las dos opciones “Crear Dispositivo” o “Modificar Dispositivo” dependiendo de lo que necesite hacer. Si lo que necesita es eliminar un elemento, basta con seleccionar “Modificar Dispositivo”, que es la que habilita el control “Modificar” y “Buscar”

Figura A2. 12. Ventana Principal de Manipulación de Dispositivos.

Una vez teniendo habilitado estas opciones se procede a introducir un nombre de dispositivo valido en la opción “Buscar” y damos “Enter” del teclado y se llenarán todos los datos correspondientes a este nombre siendo:  

Id: es el código único de cada dispositivo con el que el Técnico lo identificará. Nombre: es el nombre con el que se conoce a un dispositivo para poder diferenciarlo de los demás. 100



SH-Sl: este campo es el identificador que tiene cada dispositivo en todo el mundo y es en hexadecimal, se lo puede ver en configuraciones mediante el software X-ctu o en la parte inferior del dispositivo (ver Figura 2.10), y debe ingresarse como se visualiza, es decir separado por un “/”  Trama Encender: es una trama hexadecimal calculada con anticipación (revisar capítulo 2) siendo específicamente para poner activo un pin del dispositivo  Trama Apagar: Es la trama hexadecimal para decir que pin se desea que esté como inactivo hasta que se diga lo contrario.  Estado: este campo indica si el dispositivo final (puede ser un foco por ejemplo) está encendido siendo igual a 1 y 0 si está apagado. Para buscar un dispositivo en la opción “Buscar”, si se llegase a introducir un nombre que no exista en la base de datos inmediatamente aparece un mensaje advirtiendo que el usuario es incorrecto

Figura A2. 13. Nombre de dispositivo no Existe

En caso de que el dispositivo si exista, se logra conseguir los datos, aquí existe dos maneras de procesar los mismos, si lo que desea es cambiar algún campo solo lo modifica y a continuación hacer clic en “Editar” donde un dialogo aparece confirmando que se ha modificado exitosamente

Figura A2. 14. Advertencia, Datos Modificados Correctamente.

Si al contrario lo que desea es eliminar el dispositivo entonces con el id del XBee se procede a introducir en el campo de “Eliminar” y dar “Enter”, con esto se logra la eliminación del dispositivo confirmado por un mensaje.

Figura A2. 15. Advertencia, Eliminación de dispositivos Exitosa.

101

Si el Técnico necesita visualizar todos los dispositivos existentes, es necesario presionar directamente el control “Listar”, lo que hace es mostrar una tabla con todos los dispositivos con sus datos correspondientes.

Figura A2. 16. Lista de dispositivos existentes.

Si lo que necesita es crear un nuevo dispositivo, es necesario que escoja la opción “Crear Dispositivo” lo que automáticamente se habilita el control “Crear” y todos los campos necesarios para el nuevo XBee, es obligatorio llenar todos los datos solicitados caso contrario nos da una advertencia

Figura A2. 17. Advertencia, datos obligatorios.

Una vez introducido todos los campos procedemos a presionar sobre el control “Crear” y a continuación aparece un dialogo confirmando que se ha introducido satisfactoriamente.

Figura A2. 18. Advertencia, Datos ingresados correctamente.

102

Anexo 3 Manual de Usuario El siguiente Manual de usuario, servirá para los clientes en las dos plataformas tanto para Windows como para Android, una vez creado un usuario con sus respectivos roles en el Servidor, se podrá utilizar la aplicación en los clientes en las plataformas antes mencionadas. Se deberá hacer Clic en el ícono de la aplicación y la primera ventana que debe aparecer es la de Login, que es donde se ingresa Usuario y Contraseña, después de llenar los datos necesarios se puede validar de dos maneras si es o no correcta la información: a. Se puede hacer Clic en el botón “Entrar” b. Después de escribir la contraseña inmediatamente se puede dar un “ENTER” en el teclado.

Figura A3. 1. Ventana Principal de Login del Cliente

Si el nombre de usuario o la contraseña no son correctos, el sistema devuelve la siguiente advertencia:

Figura A3. 2. Advertencia, Usuario o Contraseña Incorrectos.

De haber sido correcta la información introducida, la siguiente ventana que debe aparecer es donde se encuentran todos los controles del hogar, habilitados únicamente los que le corresponde a cada usuario, a continuación se muestra una imagen de los controles de un usuario con todos los privilegios. 103

Figura A3. 3. Venta de Controles.

En esta parte, se puede apreciar los controles separados por plantas, a) En la planta baja existe un control para encender o apagar la iluminación de la oficina del hogar, por ejemplo, si en el control está escrito la palabra “Encender” eso significa que la iluminación está pagada, si pulsamos, entonces el control cambiará de estado a “Apagado” y la imagen también cambiará y se entenderá por su color que está encendido o apagado. b) En la planta alta existe un control para:  Encender o apagar la iluminación de un cuarto, así mismo depende del estado en el que se encuentre, y si se pulsa el control el estado cambiará, y la imagen que se encuentra cerca también cambiará haciendo entender que ha sufrido un evento.  También para encender o apagar una sirena que en este caso sería como un Botón de Pánico, su funcionamiento es similar a los controles antes explicados, es decir existirá un cambio de estado al igual que la imagen correspondiente cada que se pulse el control, cabe mencionar que la sirena también puede ser activada tanto por el sensor de movimiento como por el sensor de humo.  Y existe un control para activar o desactivar el sensor de movimiento, es decir, si activamos esta opción entonces cada que exista presencia la sirena empezará 104

a sonar, cambiando automáticamente el estado del control de la sirena al igual que la imagen. c) Se puede apreciar un componente en la parte inferior el mismo que es solo informativo, esto quiere decir que cada vez que active la sirena este elemento informa el motivo de su activación, por ejemplo, si el control para activar o desactivar el sensor de movimiento esta como “Activado”, entonces al existir presencia la sirena empezará a sonar y automáticamente aparecerá en este elemento un mensaje avisando que sensor se ha activado, algo importante por mencionar, el sensor de humo siempre está en estado pasivo esperando a la presencia de humo para en ese momento cambiarse a estado activo e inmediatamente encender la sirena. Todos los cambios que ocurran en los controles independientemente del usuario que los esté utilizando, se podrá visualizar en todos los clientes que se encuentren conectados al servidor en ese instante, es decir, si el Usuario “A” encendió el foco de la oficina con un dispositivo ya sea celular, Tablet o computadora, entonces el usuario “B” podrá visualizar en su dispositivo el cambio que ocurrió, y si un usuario “C” decide ingresar al sistema, automáticamente verá los controles con los estados actualizados en ese momento. Lo que es la iluminación, también se puede apagar o encender mediante un interruptor independiente para cada foco que existente en el hogar, al momento de pulsarlo se podrá observar en la aplicación que el control correspondiente cambiará de estado al igual que la imagen que se encuentra a su lado.

105

BIBLIOGRAFÍA Andreu, J. (1 de Junio de 2010). Servicios en Red. (Editex) Recuperado el 18 de 09 de 2014 Android. (s.f.). Google Inc. . Obtenido de http://developer.android.com/about/index.html Angel, C. (2005). Tecnologias Mysql. Recuperado el 15 de Octubre de 2014, de Tecnologias Mysql. Bonilla, I. (Noviembre de 2012). Sockets: Protocolos de comunicación TCP y UDP. Obtenido de Sockets: Protocolos de comunicación TCP y UDP: http://dsp.mx/blog/sistemas-de-informacion/49-sockets-tcp-udp Bresnahan, R. B.-C. (08 de 2013). Raspberry Pi. Recuperado el 2014 Caprile, S. R. (17 de Junio de 2011). google.books.com. Recuperado el 08 de 09 de 2014 Carlos, M. J. (15 de 07 de 2013). Sistemas Inalambricos. Recuperado el 2014 concepts, X. a. (2012). Digi. Recuperado el 2014, de Copyright ©2014 Digi International Inc. Cuello, J. (Junio de 2013). Diseñando app, Primera edición . Recuperado el Septiembre de 2014, de Diseñando app. Digi. (s.f.). ZigBee Wireless Standard . Recuperado el 08 de 2014, de http://www.digi.com/technology/rf-articles/wireless-zigbee Digi, I. (2008). Configuration & Test Utility Software. Recuperado el 05 de 09 de 2014, de http://ftp1.digi.com/support/documentation/90001003_A.pdf Falgueras, B. C. (Abril de 2003). Ingenieria del Software. (Editorial UOC) Recuperado el 10 de 2014, de Editorial UOC. Faludi, R. (2011). Wireless Sensor Networks. Recuperado el 06 de 09 de 2014 Fernando, M. A.-P.-F. (28 de 05 de 2012). Diseño e implementacion de un prototipo para manejo de cartas de menu en un restaurante usando tecnologia ZigBee. Quito, Pichincha, Ecuador . Folgado, J. g.-L. (25 de 07 de 2010). Muchoslibros.com. Recuperado el Agosto de 2014 Gallifa, X. S. (2006). protocol ZigBee. Recuperado el 15 de 09 de 2014, de protocol ZigBee. Gallifa, X. S. (2006). Protocol ZigBee. Recuperado el 16 de 09 de 2014 106

Gascón, A. (2014). ZigBee y el Estandar IEE. Recuperado el Agosto de 2014, de http://www.dea.icai.upco.es/sadot/Comunicaciones/ GC. Reports, t. (18 de 02 de 2013). Tutorial - Reports Wireless.com. Recuperado el 18 de Agosto de 2014, de http://www.tutorial-reports.com/wirelles/zigbee/zigbeecharacterstics.php Halsey, M. (22 de 07 de 2009). Microsoft MVP for Windows. Recuperado el Octubre de 2014, de Books.com. Hernandez, N. D.-Y.-M. (s.f.). Finanzas coorporativas en la practica. International, D. (s.f.). Calculating the Checksum of an API Packet. Obtenido de International: http://www.digi.com/support/kbase/kbaseresultdetl?id=2206 Labrador, R. M. (Marzo de 2008). Taller de Instalacion Servidor LAMP. Recuperado el 19 de 09 de 2014 Mik, M. (08 de 2013). Introduccion al Android. Recuperado el 2014, de Books.com. Nazim, B. (2014). Informatica Tecnica. Recuperado el Octubre de 2014, de Android. Neealy S. Shah, R. A. (s.f.). “Socket Hijacking”. P, S. (28 de 09 de 2011). Informatica Tecnica. Recuperado el Octubre de 2014, de Android. Parada, R. C. (26 de Diciembre de 2011). HellDeskCom. Recuperado el 24 de 09 de 2014, de http://www.hell-desk.com/acceder-al-puerto-serie-programando-enjava/ Passaret, S. J. (2005). Domotica y Hogar Digital. Recuperado el 15 de 09 de 2014 Perez, M. (20 de 11 de 2011). RC Libros. Recuperado el Octubre de 2014 S. Junestrand, X. P. (17 de 12 de 2012). Domotica y Hogar Digital. Recuperado el Octubre de 2014, de International Thomson. Salgado, I. V. (2011-2012). ZigBee y sus Aplicaciones . Recuperado el 02 de Septiembre de 2014, de http://www.dea.icai.upco.es/sadot/Comunicaciones/avanzadas/Zigbee%20y%20s us%20aplicaciones.pdf Sommerville, I. (2005). Ingenieria del Software, Septima Edicion. Obtenido de Madrid. Soriano, J. E. (2012). Andorid Programacion de Dispositivos. (Primera, Editor) Recuperado el 2014, de Marcombo.SA. 107

Wallace, M. R.-S. (13 de 08 de 2012). Make. Recuperado el 2014, de Makezine.com. Wilde, A. C.-D. (17 de 07 de 2010). Editorial Norma. Recuperado el Septiembre de 2014, de Libri Mundi.

108

proponer documentos