INSTITUTO POLITÉCNICO NACIONAL
QUE PARA OBTENER EL GRADO DE: MAESTRO EN CIENCIAS
EN INGENIERÍA ELÉCTRICA
DESARROLLO DE UN SISTEMA DE CONTROL
DOMÓTICO UTILIZANDO UN MICROCONTROLADOR
Y TECNOLOGÍAS PLC
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
SECCIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN
R
ESUMEN
En este trabajo se presenta el desarrollo de un sistema domótico utilizando tecnologías PLC (Power Line Communications), este sistema se encuentra instalado en una vivienda y cuenta con accesibilidad vía internet. En la implementación física del sistema se dispuso de un conjunto de elementos sensores y actuadores incorporados en la vivienda, mediante los cuales es posible cubrir algunos de los objetivos de la domótica como seguridad, confort y ahorro energético. Con el fin de gestionar y manipular el conjunto de elementos domóticos descritos, se desarrolló además un sistema de control vía web, el cual consiste en una microcomputadora con sistema operativo LINUX conocido como “Raspberry Pi”, esta contiene un módulo Ethernet necesario para la comunicación, así como puertos “USB”, utilizados para realizar una interfaz serial con el elemento de control centralizado “FRDM-K64F” de la compañía de Freescale® que es
el encargado de ejecutar acciones de las señales recibidas de acuerdo a las peticiones realizadas por el usuario. Este trabajo contiene el desarrollo del sistema domótico utilizando un servidor web básico en el FRDM-K64F programado en la plataforma de mbed. También se desarrolló un servidor web con mayores características implementado en Raspberry Pi. Para la programación de estos servidores se utilizaron diferentes lenguajes de programación web como lo son HTML, PHP y Python®. La
implementación de la aplicación domótica en la vivienda dio resultados satisfactorios, obteniéndose un sistema de bajo costo con conectividad vía internet, así como la capacidad de interconexión con dispositivos que cuenten con protocolos de comunicación diferentes.
A
BSTRACT
The development of an automated system using PLC technology (Power Line Communications) is presented in this work, this system is installed in a house and it has internet accessibility. Physical development was made using a set of sensing and actuating devices, incorporated to the house, which cover some of the home automation goals such as security, comfort, and energy saving. In order to manage and manipulate the set of automation devices, a web control system was developed, based on a microcomputer LINUX-OS known as Raspberry Pi which contains an Ethernet module, needed to communicate, USB ports to interface via serial communication to the centralized control element FRDM-K64F, whose responsibility lies on executing actions using the received signals from the user’s requests. This work contains the home automation development using a basic, FRDM-K64F based web server, programmed using mbed. Also, a more complex web page based on Raspberry Pi was made. To program these servers, diverse programming languages were used, such as HTML, PHP and Python. The home automation application was implemented with satisfactory results, obtaining a low cost, web based system with the ability to communicate even with different protocol based devices.
C
ONTENIDO
Página RESUMEN ... VII ABSTRACT ... IX CONTENIDO ... XI LISTA DE FIGURAS ... XV LISTA DE TABLAS ... XIX ABREVIATURAS ... XXICAPÍTULO 1: INTRODUCCIÓN ... 1
1.1PRELIMINARES ... 1
1.2PLANTEAMIENTO DEL PROBLEMA... 1
1.3OBJETIVO... 2
1.4OBJETIVOSESPECÍFICOS ... 2
1.5 JUSTIFICACIÓN ... 2
1.6LIMITACIONES Y ALCANCES ... 2
1.7ESTADO DEL ARTE ... 3
1.7.1 Trabajos Desarrollados a Nivel Internacional ... 3
1.7.2 Trabajos Desarrollados a Nivel Posgrado en el IPN. ... 5
1.8APORTACIONES... 5
1.9ESTRUCTURA DE LA TESIS ... 6
CAPÍTULO 2: DOMÓTICA E INTERNET DE LAS COSAS ... 9
2.1INTRODUCCIÓN ... 9
2.2DOMÓTICA ... 9
2.2.1 Definición de domótica ... 10
2.2.2 Áreas de aplicación de la domótica ... 10
2.3INTERNET DE LAS COSAS (IOT) ... 12
2.3.1 Definición del IoT ... 12
2.4 LENGUAJES DE PROGRAMACIÓN WEB ... 13
2.4.1 HTML ... 13
2.4.2 CSS ... 14
2.4.3 JavaScript® ... 16
2.4.4 PHP ... 18
2.4.5 Python® ... 20
CAPÍTULO 3: CASO DE ESTUDIO ... 23
3.1INTRODUCCIÓN ... 23
3.3.4.3 Sensor de Presencia ... 37
3.3.4.4 Reed Switch ... 38
3.3.4.5 Sensor de Temperatura ... 38
3.3.4.6 Sensor de Nivel ... 39
3.3.4.7 Relevador ... 40
CAPÍTULO 4: DESARROLLO DEL SISTEMA DOMÓTICO ... 41
4.1INTRODUCCIÓN ... 41 4.2DISPOSITIVOS ... 41 4.2.1 Raspberry Pi ... 41 4.2.2 FRDM-K64F... 42 4.2.3 Etapa de Potencia ... 43 4.3PROGRAMAS Y PROTOCOLOS ... 44
4.3.1 Programación del Servidor Web en FRDM-K64F ... 44
54 4.3.2 Programación del Servidor Web en Raspberry Pi ... 57
CAPÍTULO 5: RESULTADOS ... 73
5.1 INTRODUCCIÓN ... 73
5.2 PRUEBAS Y RESULTADOS ... 73
5.2.1 FRDM-K64F... 73
5.2.2 Raspberry Pi ... 82
CAPÍTULO 6: CONCLUSIONES Y RECOMENDACIÓN DE TRABAJOS A FUTURO ... 89
6.1CONCLUSIONES ... 89
6.2APORTACIONES ... 90
6.3TRABAJOS FUTUROS Y RECOMENDACIONES ... 90
REFERENCIAS ... 93 APÉNDICE A: ETIQUETAS HTML ... 95 A.1INTRODUCCIÓN ... 95 A.2ETIQUETAS HTML ... 95 APÉNDICE B: CSS (PROPIEDADES) ... 97 B.1INTRODUCCIÓN ... 97 B.2PROPIEDADES DE CSS ... 97
APÉNDICE C: TOPOLOGÍA DE REDES DOMÉSTICAS ... 99
C.1INTRODUCCIÓN ... 99
C.2TOPOLOGÍAS ... 99
APÉNDICE D: ESPECIFICACIONES TÉCNICAS DE LOS MÓDEMS PLC NETGEAR XE102 ... 101
D.1INTRODUCCIÓN ... 101
D.2CARACTERÍSTICAS TÉCNICAS DE LOS MÓDEMS PLC ... 101
APÉNDICE E: PRINCIPIO DE FUNCIONAMIENTO DE LOS SENSORES UTILIZADOS ... 103
E.1INTRODUCCIÓN ... 103
E.2FUNCIONAMIENTO SENSOR DE GAS ... 103
E.3FUNCIONAMIENTO SENSOR DE LLUVIA ... 104
E.4FUNCIONAMIENTO SENSOR DE PRESENCIA ... 106
E.5FUNCIONAMIENTO REED SWITCH ... 106
E.6HOJA DE ESPECIFICACIONES SENSOR DE TEMPERATURA (LM35) ... 107
F.2CARACTERÍSTICAS ... 108
APÉNDICE G: CARACTERÍSTICAS DEL FRDM-K64F ... 110
G.1INTRODUCCIÓN ... 110
G.2CARACTERÍSTICAS ... 110
APÉNDICE H: CÓDIGOS DE PROGRAMACIÓN DEL SISTEMA DOMÓTICO EN EL FRDM-K64F ... 112
H.1INTRODUCCIÓN ... 112
H.2CÓDIGOS ... 112
APÉNDICE I: INSTALACIÓN DE PAQUETERÍAS EN RASPBERRY PI ... 120
I.1INTRODUCCIÓN ... 120
I.2RASPBIAN-WEEZY ... 120
I.3PAQUETERÍAS ... 121
APÉNDICE J: CÓDIGOS DE PROGRAMACIÓN DEL SERVIDOR WEB EN RASPBERRY PI ... 125
J.1INTRODUCCIÓN ... 125
L
ISTA DE
F
IGURAS
Página
FIGURA 2.1ÁREAS DE APLICACIÓN DE LA DOMÓTICA [ADAPTADO DE 18]. ... 11
FIGURA 2.2ELEMENTOS MÍNIMOS DE UN DOCUMENTO HTML BÁSICO. ... 13
FIGURA 2.3SELECTOR Y DECLARACIÓN EN CSS[ADAPTADO DE 26]. ... 15
FIGURA 2.4FORMA CSS CON ETIQUETA <LINK>[ADAPTADO DE 26]. ... 15
FIGURA 2.5FORMA CSS CON ETIQUETA <STYLE>[ADAPTADO DE 26]. ... 16
FIGURA 2.6FUNCIONAMIENTO DE JAVASCRIPT®. ... 17
FIGURA 2.7ORDEN DE INSTRUCCIONES JAVASCRIPT® EN DOCUMENTO HTML[ADAPTADO DE 24]. ... 18
FIGURA 2.8CÓDIGO PHP DENTRO DEL HTML FORMA 1. ... 19
FIGURA 2.9CÓDIGO PHP DENTRO DEL HTML FORMA 2. ... 19
FIGURA 2.10CÓDIGO CORRESPONDIENTE A UNA LLAMADA A PHP EN HTML MEDIANTE FORMULARIO FORMA 3.. 20
FIGURA 2.11CÓDIGO ESCRITO EN PYTHON PARA QUE APAREZCA EN CONSOLA HELLO WORLD®[33]. ... 20
FIGURA 2.12EJEMPLO DE UN CÓDIGO EN PYTHON ALMACENADO EN UN ARCHIVO CON EXTENSIÓN .PY, EL CUAL DESPLIEGA LA FRASE HELLO WORLD [33]. ... 21
FIGURA 2.13EJECUCIÓN DEL PROGRAMA [33]. ... 21
FIGURA 3.1PLANO ARQUITECTÓNICO DE LA VIVIENDA. ... 23
FIGURA 3.2ESQUEMA DE LA INSTALACIÓN ELÉCTRICA DEL SISTEMA DOMÓTICO. ... 24
FIGURA 3.3RED CON TOPOLOGÍA EN ESTRELLA UTILIZADA PARA EL CASO DE ESTUDIO. ... 26
FIGURA 3.4ÁMBITO DE TRABAJO DE PLC EN LA RED ELÉCTRICA [35]. ... 27
FIGURA 3.5INTERVALOS DE FRECUENCIA DE OPERACIÓN DE LA RED ELÉCTRICA Y PLC[ADAPTADO DE 35]. ... 28
FIGURA 3.6MÓDEMS PLC CONECTADOS A LOS CONTACTOS ELÉCTRICOS.LA LÍNEA GRUESA REPRESENTA LA LÍNEA DE TRANSMISIÓN ELÉCTRICA Y LA LÍNEA DELGADA CORRESPONDE A LA SEÑAL DEL ROUTER. ... 29
FIGURA 3.7MÓDEMS PLC INCORPORADOS AL CASO DE ESTUDIO. ... 30
FIGURA 3.8MODELO CLIENTE SERVIDOR DEL CASO DE ESTUDIO CONECTADO EN RED. ... 32
FIGURA 3.9FUNCIONAMIENTO DEL PROTOCOLO HTTP. ... 32
FIGURA 3.10ARGUMENTOS ENVIADOS AL SERVIDOR CUANDO SE REALIZA UNA PETICIÓN, A TRAVÉS DEL PROTOCOLO HTTP. ... 33
FIGURA 3.11RESPUESTA DEL SERVIDOR A LA SOLICITUD DEL CLIENTE. ... 34
FIGURA 3.12CONEXIÓN DE LOS ELEMENTOS DEL SISTEMA DOMÓTICO AL FRDM-K64F. ... 36
FIGURA 4.1CARACTERÍSTICAS PRINCIPALES DE RASPBERRY PI 2B. ... 42
FIGURA 4.2CARACTERÍSTICAS PRINCIPALES DEL FRDM-K64F. ... 43
FIGURA 4.3CIRCUITO DEL RELEVADOR. ... 43
FIGURA 4.4DIAGRAMA DE FLUJO GENERAL DE LA PROGRAMACIÓN DEL SERVIDOR WEB. ... 45
FIGURA 4.5ESQUEMA DE LOS ELEMENTOS DEL SISTEMA DOMÓTICO CON EL FRDM-K64F COMO SERVIDOR. ... 46
FIGURA 4.6DIAGRAMA DE BLOQUES DEL SISTEMA DOMÓTICO CON EL FRDM-K64F COMO SERVIDOR. ... 46
FIGURA 4.7DIAGRAMA DE FLUJO DE LA PROGRAMACIÓN DE COMUNICACIÓN ETHERNET MEDIANTE DHCP. ... 47
FIGURA 4.8DIAGRAMA DE FLUJO DE LA PROGRAMACIÓN DE COMUNICACIÓN ETHERNET MEDIANTE DIRECCIÓN IP ESTÁTICA. ... 49
FIGURA 4.9DIAGRAMA DE FLUJO DE LA PROGRAMACIÓN WEB... 51
FIGURA 4.10DIAGRAMA DE FLUJO DE LA PROGRAMACIÓN DE ACCIONAMIENTO DE LOS ELEMENTOS DEL SISTEMA DOMÓTICO. ... 53
FIGURA 4.18DIAGRAMA DE FLUJO DE LA FUNCIÓN ELEMENTO(X) PARA EL ACCIONAMIENTO DE LOS DISPOSITIVOS
DEL SISTEMA DOMÓTICO. ... 63
FIGURA 4.19DIAGRAMA DE FLUJO DE LA FUNCIÓN ELEMENTO(X) PARA EL ACCIONAMIENTO DE LOS DISPOSITIVOS DEL SISTEMA DOMÓTICO CONTINUACIÓN. ... 64
FIGURA 4.20DIAGRAMA DE FLUJO FUNCIÓN PUERTA(). ... 65
FIGURA 4.21DIAGRAMA DE FLUJO FUNCIÓN VENTANA(). ... 65
FIGURA 4.22DIAGRAMA DE FLUJO FUNCIÓN PRESENCIA(). ... 66
FIGURA 4.23DIAGRAMA DE FLUJO FUNCIÓN GAS(). ... 66
FIGURA 4.24DIAGRAMA DE FLUJO DE FUNCIÓN TEMPERATURA(). ... 67
FIGURA 4.25DIAGRAMA DE FLUJO DE FUNCIÓN LLUVIA(). ... 67
FIGURA 4.26DIAGRAMA DE FLUJO DE FUNCIÓN NIVEL(). ... 68
FIGURA 4.27DIAGRAMA DE FLUJO DE LA PROGRAMACIÓN DE LA COMUNICACIÓN SERIAL ENTRE EL FRDM-K64F Y RASPBERRY PI. ... 69
FIGURA 4.28DIAGRAMA DE FLUJO DE LA PROGRAMACIÓN EN PHP DEL MÉTODO DE ENVIÓ DE PETICIONES. ... 70
FIGURA 4.29DIAGRAMA DE FLUJO DE LA PROGRAMACIÓN EN PHP DE LA INTERFAZ DE USUARIO. ... 71
FIGURA 5.1VISUALIZACIÓN EN CONSOLA TERATERM DE LOS PARÁMETROS OBTENIDOS EN LA COMUNICACIÓN ETHERNET UTILIZANDO UNA DIRECCIÓN IP ESTÁTICA PARA EL FRDM-K64F. ... 74
FIGURA 5.2VISUALIZACIÓN EN CONSOLA TERATERM DE LOS PARÁMETROS OBTENIDOS EN LA COMUNICACIÓN ETHERNET UTILIZANDO UNA DIRECCIÓN IP DINÁMICA PARA EL FRDM-K64F. ... 74
FIGURA 5.3VISUALIZACIÓN DE PETICIÓN DE CLIENTE CONECTADO. ... 75
FIGURA 5.4 ENVIÓ Y RECEPCIÓN DE PETICIONES POST. ... 76
FIGURA 5.5PÁGINA DE PRUEBA QUE MUESTRA UN CONTADOR. ... 79
FIGURA 5.6INTERFAZ DE USUARIO DEL SISTEMA DOMÓTICO EN UNA PC. ... 80
FIGURA 5.7INTERFAZ DE USUARIO DEL SISTEMA DOMÓTICO EN IOS. ... 81
FIGURA 5.8INTERFAZ DE USUARIO DEL SISTEMA DOMÓTICO EN ANDROID. ... 81
FIGURA 5.9ASIGNACIÓN DE DIRECCIÓN IP ESTÁTICA A RASPBERRY PI. ... 82
FIGURA 5.10ASIGNACIÓN CORRECTA DE IP ESTÁTICA PARA RASPBERRY PI. ... 83
FIGURA 5.11PING A WWW.GOOGLE.COM DESDE RASPBERRY PI. ... 83
FIGURA 5.12VISUALIZACIÓN DE PETICIONES. ... 84
FIGURA 5.13 SECCIÓN 1 DE LA INTERFAZ DE USUARIO WEB. ... 85
FIGURA 5.14SECCIÓN 2. ... 85 FIGURA 5.15SECCIÓN 3. ... 86 FIGURA 5.16SECCIÓN 4. ... 86 FIGURA 5.17SECCIÓN 5. ... 87 FIGURA 5.18SECCIÓN 6. ... 87 FIGURA 5.19SECCIÓN 7. ... 88
FIGURA C.1RED CON TOPOLOGÍA EN MALLA [46]. ... 99
FIGURA C.2RED CON TOPOLOGÍA EN ESTRELLA [46]. ... 100
FIGURA C.3RED CON TOPOLOGÍA EN BUS [46]. ... 100
FIGURA C.4RED CON TOPOLOGÍA EN ÁRBOL [46]... 100
FIGURA C.5RED CON TOPOLOGÍA EN ANILLO [46]. ... 100
FIGURA E.1INSTALACIÓN DEL SENSOR DE GAS SEGÚN LA NOM-002-STPS-2010[49]. ... 104
FIGURA E.2ELEMENTOS DEL MÓDULO DETECTOR DE LLUVIA YL-83.SECCIÓN A:PLACA CON PISTAS CONDUCTORAS EN BAQUELITA.SECCIÓN B:CIRCUITO DE CONTROL. ... 104
FIGURA H.1CÓDIGO PARA INICIAR COMUNICACIÓN ETHERNET UTILIZANDO IP ESTÁTICA. ... 112
FIGURA H.2CÓDIGO PARA INICIAR COMUNICACIÓN ETHERNET UTILIZANDO IP DINÁMICA. ... 113
FIGURA H.3CÓDIGO PARA LA PROGRAMACIÓN HTML DE LA PÁGINA WEB. ... 113
FIGURA H.4FUNCIÓN ENCUENTRA_ELEMENTO(). ... 114
FIGURA H.5FUNCIÓN ENCUENTRA_ELEMENTO() CONTINUACIÓN. ... 114
FIGURA H.8CÓDIGO PARA OBTENER EL ESTADO DE LOS ELEMENTOS 3. ... 117
FIGURA H.9CÓDIGO DE LA PROGRAMACIÓN WEB DEL ESTADO DE LOS ELEMENTOS. ... 117
FIGURA H.10FUNCIÓN GAS. ... 118
FIGURA H.11 FUNCIÓN TEMPERATURA. ... 118
FIGURA I.1CONEXIÓN SSH EN TERA TERM. ... 120
FIGURA I.2IDENTIFICACIÓN EN SSH. ... 121
FIGURA I.3DOCUMENTO HTML QUE MUESTRA LA INSTALACIÓN CORRECTA DE APACHE. ... 121
FIGURA I.4CÓDIGO EN PHP PARA VERIFICAR SU INSTALACIÓN. ... 123
FIGURA I.5RESULTADO DE LA INSTALACIÓN DE PHP. ... 123
FIGURA J.1DECLARACIÓN DE VARIABLES, FUNCIONES Y OTROS ELEMENTOS PARA LA PROGRAMACIÓN EN FRDM-K64F. ... 125
FIGURA J.2PROGRAMA PRINCIPAL EN MBED PARA EL FRDM-K64F. ... 126
FIGURA J.3DEFINICIÓN DE LA FUNCIÓN ELEMENTO(X). ... 126
FIGURA J.4DEFINICIÓN DE LA FUNCIÓN ELEMENTO(X). ... 127
FIGURA J.5DEFINICIÓN DE LA FUNCIÓN ELEMENTO(X). ... 127
FIGURA J.6DEFINICIÓN DE FUNCIÓN PUERTA(). ... 129
FIGURA J.7DEFINICIÓN DE FUNCIÓN VENTANA(). ... 129
FIGURA J.8DEFINICIÓN DE FUNCIÓN PRESENCIA(). ... 129
FIGURA J.9DEFINICIÓN DE LA FUNCIÓN GAS(). ... 130
FIGURA J.10DEFINICIÓN DE LA FUNCIÓN TEMPERATURA(). ... 130
FIGURA J.11DEFINICIÓN DE LA FUNCIÓN LLUVIA(). ... 130
FIGURA J.12DEFINICIÓN DE LA FUNCIÓN NIVEL(). ... 131
FIGURA J.13PROGRAMA EN PYTHON PARA INTERFAZ ETHERNET-SERIAL ... 131
FIGURA J.14DEFINICIÓN DE BIBLIOTECAS Y CONEXIÓN. ... 132
FIGURA J.15CÓDIGO DE DATOS ENVIADOS DEL 1-7 POR SERIAL MEDIANTE PYTHON. ... 133
FIGURA J.16CÓDIGO DE DATOS ENVIADOS DEL 8-14 POR SERIAL MEDIANTE PYTHON ... 134
FIGURA J.17CÓDIGO DE DATOS ENVIADOS POR SERIAL MEDIANTE PYTHON ... 134
FIGURA J.18CÓDIGO EN PHP DE LOS DATOS ENVIADOS MEDIANTE EL MÉTODO POST. ... 135
FIGURA J.19CÓDIGO PHP DE LA INTERFAZ DE USUARIO WEB. ... 135
FIGURA J.20CÓDIGO PHP DE LA INTERFAZ DE USUARIO WEB. ... 136
FIGURA J.21CÓDIGO PHP DE LA INTERFAZ DE USUARIO WEB. ... 136
L
ISTA DE
T
ABLAS
Página
TABLA 3.1INFORMACIÓN DE LOS ELEMENTOS IMPLEMENTADOS EN EL CASO DE ESTUDIO. ... 24
TABLA 3.2MODELO DE LA ARQUITECTURA TCP/IP. ... 31
TABLA 3.3CARACTERÍSTICAS DE LOS SENSORES UTILIZADOS. ... 35
TABLA 3.4CARACTERÍSTICAS DE LOS ACTUADORES UTILIZADOS. ... 35
TABLA 3.5CARACTERÍSTICAS PRINCIPALES DE FUNCIONAMIENTO DEL MQ-2. ... 37
TABLA 3.6CARACTERÍSTICAS PRINCIPALES DE FUNCIONAMIENTO DEL YL-83. ... 37
TABLA 3.7CARACTERÍSTICAS PRINCIPALES DE FUNCIONAMIENTO DEL PIRHC-SR501. ... 38
TABLA 3.8CARACTERÍSTICAS PRINCIPALES DE FUNCIONAMIENTO DEL REED SWITCH. ... 38
TABLA 3.9CARACTERÍSTICAS PRINCIPALES DE FUNCIONAMIENTO DEL LM35. ... 39
TABLA 3.10CARACTERÍSTICAS PRINCIPALES DE FUNCIONAMIENTO DEL HC-SR04. ... 39
TABLA 3.12CARACTERÍSTICAS PRINCIPALES DE FUNCIONAMIENTO DEL RELEVADOR. ... 40
TABLA 5.1PARÁMETROS OBTENIDOS DE LA COMUNICACIÓN ETHERNET PARA EL FRDM-K64F UTILIZANDO UNA DIRECCIÓN IP ESTÁTICA... 73
TABLA 5.2PARÁMETROS OBTENIDOS DE LA COMUNICACIÓN ETHERNET PARA EL FRDM-K64F UTILIZANDO UNA DIRECCIÓN IP DINÁMICA. ... 74
TABLA 5.3VISUALIZACIÓN DE LOS RESULTADOS DE LAS PETICIONES EN TERATERMLÁMPARA1 APAGADO. ... 76
TABLA 5.4VISUALIZACIÓN DE LOS RESULTADOS DE LAS PETICIONES EN TERATERMLÁMPARA2 ENCENDIDO/APAGADO,LÁMPARA 3 ENCENDIDO. ... 77
TABLA 5.5VISUALIZACIÓN DE LOS RESULTADOS DE LAS PETICIONES EN TERATERMLÁMPARA 3 APAGADO Y VENTILADOR ENCENDIDO/APAGADO. ... 78
TABLA 5.6VISUALIZACIÓN DE LOS RESULTADOS DE LAS PETICIONES EN TERATERM LLUVIA, TEMPERATURA, PUERTA, VENTANA, PRESENCIA Y GAS. ... 79
TABLA 5.7PARÁMETROS ASIGNADOS A RASPBERRY PI UTILIZANDO UNA DIRECCIÓN IP ESTÁTICA. ... 82
TABLA A.1ETIQUETAS HTML. ... 95
TABLA A.2ETIQUETAS HTMLCONTINUACIÓN. ... 96
TABLA B.1ATRIBUTOS CSS. ... 97
TABLA D.1CARACTERÍSTICAS DE LOS MÓDEMS PLCNETGEAR XE102[47]. ... 101
TABLA F.1DESCRIPCIÓN DE LAS CARACTERÍSTICAS DE RASPBERRY PI 2B[52]. ... 108
A
BREVIATURAS
𝐶𝐸 Electrónica de Consumo (Consumer Electronics*). 𝐶𝑆𝑆 Hojas de Estilo en Cascada (Cascading Style Sheets*).
𝐷𝐻𝐶𝑃 Protocolo de Configuración de Host Dinámico (Dynamic Host Configuration Protocol*).
𝐻𝑇𝑇𝑃 Protocolo de Transferencia de Hipertexto (HyperText Transfer Protocol*).
𝐻𝑇𝑀𝐿 Lenguaje de Marcas de Hipertexto (HyperText Markup Language*). 𝐼𝐶𝑇 Tecnología de las Comunicaciones e Información (Information and
Communication Technology*).
𝐼𝐸𝐸𝐸 Instituto de Ingenieros Eléctricos y Electrónicos (Institute of Electrical and Electronics Engineers*).
𝐼/𝑂 Entrada/Salida (Input/Output).
𝐼𝑜𝑇 Internet de las cosas (Internet of Things*). 𝐼𝑃 Protocolo de Internet (Internet Protocol*).
𝐼𝑆𝑂 Organización Internacional de Normalización (International Organization for Standardization*).
𝐿𝐴𝑁 Red de Área Local (Local Area Network*).
𝑀𝐴𝐶 Control de Acceso al Medio (Media Access Control*).
𝑂𝐹𝐷𝑀 Multiplexación por División de Frecuencias Ortogonales (Orthogonal Frequency Division Multiplexing*).
𝑃𝐻𝑃 Pre-Procesador de Hipertexto (Hypertext Preprocessor*).
𝑃𝐿𝐶 𝑜 𝐵𝑃𝐿 Comunicación por la Red Eléctrica (Power Line Communications /Broadband over Power Line *).
𝐺𝑃𝑅𝑆 Servicio General de Paquetes de Radio (General Packet Radio Service*).
𝑇𝐶𝑃/𝐼𝑃 Protocolo de Control de Transmisión/Protocolo de Internet (Transmission Control Protocol/Internet Protocol*).
C
APÍTULO
1:
I
NTRODUCCIÓN
1.1 PRELIMINARES
En este capítulo se presenta el planteamiento del problema, los objetivos a alcanzar y los límites de este trabajo, también se muestran algunos de los trabajos que se han desarrollado sobre domótica utilizando la red eléctrica como medio de comunicación, y otros en los que se desarrollaron servidores web, siendo estos de nivel internacional así como los realizados en el IPN. Por último se encuentra la estructura general del contenido por capítulo del trabajo desarrollado.
1.2 PLANTEAMIENTO DEL PROBLEMA
Un sistema domótico requiere de instalación adicional de cableado, incluso en muchos de los casos es necesario que la vivienda en la que se implemente se encuentre en construcción, en caso contrario se deben realizar modificaciones a la misma para desarrollar la instalación correspondiente, lo cual aumenta los costos de la implementación del sistema domótico. Este es un problema que presenta la domótica debido a que la instalación es lo más importante al momento de realizar el envió de las señales necesarias para las determinadas acciones a ejecutar. Los módems PLC son una tecnología que permite enviar información a través de la red eléctrica, por lo que es una buena opción para implementaciones domóticas, ya que no es necesario colocar cable adicional, además de que la tecnología PLC presenta interoperabilidad con otros equipos que trabajan con diferentes protocolos de comunicación, haciéndose necesaria esta característica entre los diversos dispositivos para aplicaciones domóticas, de esta
1.3 OBJETIVO
Diseñar e implementar un Sistema Doméstico de Control Domótico compatible con la tecnología PLC (“Power Line Communications”) con accesibilidad vía internet, así como los protocolos correspondientes ante la inminente incorporación de redes inteligentes (“Smart Grids”) en el Sistema Eléctrico Nacional.
1.4 OBJETIVOS ESPECÍFICOS
1. Implementar un Sistema de Sensores y Actuadores para una vivienda. 2. Diseñar un Sistema Automatizado de una vivienda.
3. Implementar un Servidor Web para gestionar y administrar el Sistema Domótico.
1.5 JUSTIFICACIÓN
Debido a que la CFE ha iniciado acciones importantes para modernizar e implementar su infraestructura bajo el concepto de red eléctrica inteligente (REI), habiendo incorporado dicho proyecto en el plan nacional de desarrollo 2012-2026 que incluya la seguridad energética, la sustentabilidad ambiental y la eficiencia económica y productiva de la red, surge la necesidad de hacer uso de las tecnologías PLC en el control de la energía, para mejorar el consumo y eficiencia de esta a nivel doméstico, entre otros aspectos, por lo cual este trabajo reúne los requisitos de estos intereses.
1.6 LIMITACIONES Y ALCANCES
Debido a que una aplicación domótica requiere de distintos sensores y actuadores para llevarla a cabo y algunos de estos son costosos, solo se implementarán aquellos que son más económicos, mientras que aquellos que no fueron posibles de adquirir serán solamente simulados.
Por lo que con este trabajo se pretende alcanzar lo siguiente:
Implementación de un Sistema de Iluminación.
Supervisión de un Sistema de Nivel de Agua.
Implementación de Detección de Factores Ambientales como lo son lluvia y temperatura.
Implementación de un Sistema de Seguridad para una puerta y una ventana. Esto debido a que solo se cuenta con un par de módems PLC.
Implementación de un Sistema de Seguridad de Presencia.
Colocación de un sensor de Gas. La acción que tendrá esta parte del trabajo será el accionamiento de una alarma, debido a que la válvula que se debiera accionar para evitar la fuga de gas es de alto costo.
1.7 ESTADO DEL ARTE
1.7.1 Trabajos Desarrollados a Nivel Internacional
A continuación se presentan los trabajos desarrollados a nivel internacional:
En 2008, tomando en cuenta que el consumo energético tiende a crecer en proporción al aumento del número de electrodomésticos, en la referencia [1] se desarrolló un sistema que no necesitaba cableado adicional para la administración de energía en casa. En este trabajo se utilizó la comunicación con PLC mediante las líneas eléctricas para la supervisión y control de los aparatos electrodomésticos, así mismo se describe un módulo de medición de energía, el módem PLC y un microcontrolador para medir el consumo eléctrico. También se diseñó un servidor doméstico que soporta la interfaz de usuario web, lo que permite la supervisión y control de los aparatos por medio de internet.
En el año de 2010, se encuentra el presentado por la referencia [2], en donde se propone un pequeño servidor web de ahorro de energía que funciona con un sistema operativo en tiempo real y que fue incorporado a los aparatos electrodomésticos, este servidor se implementó en un microprocesador ARM de 32 bits, utilizando los protocolos de comunicación TCP/IP así como el protocolo HTTP para desarrollar aplicaciones de servidor y cliente. Se desarrollaron pruebas generales a los servicios web a través de internet para verificar el prototipo, los cuales mostraron resultados de la operación de textos e imágenes almacenados en el servidor, otra prueba que se realizó fue la función del servidor a través de una red LAN para confirmar la estabilidad del servidor. En el año 2011 en la referencia [3] se desarrolló un sistema para la adquisición de datos
publicaron datos de una red de sensores inalámbricos en una página web para un hogar mediante un servidor remoto, con el cual los usuarios podían controlar los dispositivos del hogar. En este trabajo se muestra la arquitectura del sistema, diseño e implementación del hardware propuesto.
Otro trabajo realizado en 2011 propuesto por la referencia [5], toma los problemas que se presentan al mantener un servidor funcionando todo el tiempo para el proceso de supervisión de un sistema en casa, por lo que proponen un servidor web en lugar de un servidor basado en PC. Este trabajo utiliza la comunicación Ethernet, el sistema permite la automatización y un sistema de supervisión. La interfaz de usuario proporciona la capacidad de controlar los electrodomésticos y preguntar por el estado de funcionamiento en que estos se encuentran. Así mismo los usuarios pueden controlar la seguridad del hogar por medio de diferentes sensores instalados.
También en el año 2011 en la referencia [6], se analizó el requisito de bases de datos para el desarrollo de un servidor web, con lo que combina el diseño de bases de datos en la puerta de enlace doméstica utilizando una arquitectura SQLite. El servidor web es programado utilizando el sistema operativo Linux, para posteriormente aplicarlo a la vivienda.
En 2013, debido a que la comunicación a través de la red eléctrica resulta más barata en cuanto a otras técnicas de comunicación y que las compañías electrónicas están buscando por las aplicaciones mediante la red eléctrica en domótica, lectura de energía, etc., en la referencia [7] se propuso una nueva arquitectura para un módem PLC económico y fácil de usar, la propuesta de este trabajo se basa en la transmisión y recepción de datos por la red eléctrica para aplicaciones en el hogar.
Otro trabajo realizado en 2013 por la referencia [8], presenta un mini servidor web de bajo costo para un sistema de supervisión de energía, el cual permite a los residentes controlar el consumo energético de los aparatos domésticos para lograr minimizar los costos energéticos. En este trabajo el proveedor de energía puede acceder a conocer el consumo sobre la base de datos que este sistema presenta, por lo que este sistema se puede incorporar a las redes inteligentes, siendo un sistema robusto y de bajo costo. En el año 2014, en la referencia [9] se propone un control remoto de equipos domésticos a través de una aplicación en Android, basado en una tarjeta Raspberry Pi. En este trabajo se presentan los códigos desarrollados para permitir la comunicación entre el usuario remoto, el servidor web y la tarjeta Raspberry Pi. También se presenta la interfaz desarrollada para asegurar la comunicación entre la aplicación instalada en el teléfono inteligente y la Raspberry Pi.
1.7.2 Trabajos Desarrollados a Nivel Posgrado en el IPN.
Entre los trabajos desarrollados a nivel posgrado en el IPN se encuentran los siguientes:
En el año 2003, en la referencia [10] se diseñó un sistema micro web server que permite el acceso remoto vía internet para el control y supervisión de señales analógicas y digitales. Se describe el desarrollo de dicho sistema con acceso a una red tipo Ethernet para proporcionar servicios básicos de TCP/IP. Se visualiza la información en un navegador proponiendo un sistema de servicio de archivos que cumple con los estándares HTML y código Java. El dispositivo es el responsable de la lectura de datos de sensores y dispositivos así como del cambio de estado de los actuadores conectados al sistema.
En 2009, la referencia [11] diseñó y desarrolló un sistema que utiliza tecnologías PLC para el uso de redes eléctricas como medio de comunicación, el sistema es un gestor de Bases de Datos y elementos de seguridad. Su objetivo fue desarrollar un sistema web de apoyo a la educación que permitiera al IPN ofrecer a los usuarios una fuente de conocimiento a través de la web. La información manipulada a través de la ella es protegida por elementos de seguridad, evitando pérdidas de información y confiabilidad al manejar los datos contenidos en el sistema.
En 2011, en la referencia [12] se propuso, diseñó, implementó y evaluó un Modelo de Sistema Domótico Virtual Aplicado a Entornos Educativos que ofrece servicios a los usuarios para facilitar tareas o actividades a través de dispositivos móviles. La implementación de este modelo se llevó a cabo en el laboratorio de Maestría de Cómputo Móvil en la ESCOM, dicho modelo fue evaluado por usuarios del IPN obteniendo excelentes resultados.
1.8 APORTACIONES
Con la realización de este trabajo se aporta lo siguiente:
1.9 ESTRUCTURA DE LA TESIS
Capítulo 1. Se presenta la estructura general del trabajo, así como el planteamiento
del problema, el objetivo y la justificación muestran las razones que surgieron para desarrollar el tema. Se presenta una revisión bibliográfica acerca de los trabajos relacionados con la domótica, servidores web y el IoT. También se muestra la delimitación del trabajo y se mencionan las aportaciones derivadas de la misma.
Capítulo 2. Domótica e Internet de las Cosas. Se encuentra la introducción sobre
domótica y sus objetivos, así como los problemas presentes en esta. Así mismo se incluye una introducción sobre el IoT y se explican los lenguajes de programación utilizados para este trabajo.
Capítulo 3. Contiene información sobre la vivienda en la que se implementó el
sistema domótico, así como la topología de la red doméstica utilizada. Se muestra además el funcionamiento de los módems PLC y se explican los protocolos de comunicación implementados. Finalmente se presenta información correspondiente a los dispositivos sensores y actuadores que forman parte del caso de estudio.
Capítulo 4. Se muestran los diagramas de flujo de los códigos realizados para el
desarrollo del servidor web correspondientes a la comunicación, peticiones cliente-servidor, para el accionamiento de los dispositivos y la interfaz de usuario web así como las características principales que surgieron para la elección del servidor.
Capítulo 5. Se incluyen las pruebas realizadas al servidor web y las conclusiones a
las que se llegaron a lo largo de la realización del trabajo. Así mismo se aportan recomendaciones para trabajos futuros y se muestran las aportaciones realizadas con el desarrollo de la tesis.
Apéndice A. Se describen las etiquetas HTML para realizar un documento de este
tipo principalmente las utilizadas para la realización del trabajo.
Apéndice B. Se muestran las propiedades que contiene CSS para dar estilo a un
documento HTML.
Apéndice C. Contiene las topologías domésticas utilizadas generalmente como lo
son estrella, bus, anillo, malla y árbol.
Apéndice D. Incluye las características de funcionamiento de los módems PLC
Netgear XE102 utilizados.
Apéndice F. Se indican las características de la microcomputadora Raspberry Pi. Apéndice G. Contiene las características del FRDM-K64F.
Apéndice H. Se presenta la programación de la aplicación domótica en el
FRDM-K64F.
Apéndice I. Explicación de los pasos a seguir para la instalación del sistema
operativo LINUX en Raspberry Pi, así como las paqueterías necesarias para el desarrollo del servidor web.
Apéndice J. Muestra la programación realizada en la microcomputadora Raspberry
C
APÍTULO
2:
D
OMÓTICA E
I
NTERNET DE LAS
C
OSAS
2.1 INTRODUCCIÓN
En este capítulo se da una breve introducción a la domótica y se presentan algunas definiciones sobre esta. Se muestran además las áreas de aplicación de los sistemas domóticos. También se presenta la definición del IoT y los lenguajes de programación utilizados para desarrollar este trabajo como lo son HTML, JavaScript®, PHP y
Python®.
2.2 DOMÓTICA
Con el creciente avance de las Tecnologías de la Información y de Comunicaciones (TIC) y la evolución de la Electrónica e Informática que se han hecho parte de nuestro entorno estando presentes en la vida diaria, han provocado que surjan conceptos tales como viviendas domóticas, inmótica, ciudades inteligentes, etc. Es gracias a los avances tecnológicos, cambios sociales y oportunidades de negocio que dichos conceptos han sido impulsados [13,14].
La domótica surgió en la década de los 70 cuando aparecieron los primeros dispositivos de automatización basados en la tecnología X10, los primeros equipos fueron instalados en Estados Unidos, estos estaban limitados a la regulación de la temperatura en edificios. A finales de los 80 y principios de los 90 a estos edificios les fue instalado un Sistema de Cableado Estructurado o SCE los cuales permitían el transporte de voz y datos así como la conexión de dispositivos de control y seguridad. Los edificios que
2.2.1 Definición de domótica
A continuación se presentan algunas definiciones sobre domótica:
La palabra domótica proviene del latín “domus” que significa casa y del francés “informatique” que quiere decir informática o según otros autores “robotique” cuyo significado es robótica [13].
Una vivienda domótica es una agrupación de equipos automatizados, que están asociados por funciones, las cuales disponen de la capacidad de comunicarse interactivamente entre ellas a través de un canal doméstico que las integra [14].
La domótica es una tecnología que combina la electrónica y la informática con el objetivo de automatizar una vivienda [15].
La domótica es la automatización de una vivienda. Es una técnica en la que se pueden integrar diversas tareas tales como el control de Iluminación, seguridad, supervisión de aparatos electrodomésticos, eficiencia energética de la vivienda, etc., definido por [16].
El término domótica se refiere a la técnica que permite la automatización de las instalaciones eléctricas de viviendas [17].
La domótica es el conjunto de sistemas informáticos y de telecomunicaciones los cuales permiten controlar y automatizar total o parcialmente una vivienda en todos sus aspectos como el confort, la seguridad, la comunicación o el ahorro energético [18].
2.2.2 Áreas de aplicación de la domótica
Un sistema domótico puede realizar diversas tareas dependiendo de las necesidades de los usuarios o cada usuario en particular, es aquí en donde la domótica juega un papel muy importante, ya que se trata de controlar y/o automatizar distintos aspectos del entorno [15,18].
El sistema domótico se divide en cuatro áreas de aplicación, estas son mostradas en la Figura 2.1.
Figura 2.1 Áreas de aplicación de la domótica [Adaptado de 18].
Las áreas de aplicación mostradas en la Figura 2.1 también son llamadas áreas de gestión de la domótica. A continuación se describen cada una de ellas:
Ahorro Energético: Al llevar a cabo la programación de ahorro energético en un sistema domótico se toma en cuenta la climatización, iluminación, gestión de aparatos electrodomésticos, etc., gracias al sistema domótico se puede mejorar la eficiencia energética de las viviendas, esto se logra al instalar mecanismos automáticos que perciben la presencia o ausencia de personas o que desactivan un sistema de ventilación o calefacción cuando detectan la apertura de una ventana [16,18].
Seguridad: La seguridad es un aspecto importante para el ser humano, ya que este tiende a proteger sus bienes materiales y a su familia. En los hogares existen riesgos que pueden poner en peligro a las personas que los habitan, entre estos
Confort: Otra área de gestión domótica es el confort. El confort se define como todo aquello que produce bienestar y comodidad. El confort ha ganado un lugar muy fuerte en las aplicaciones domóticas, debido a que en un principio la domótica estaba enfocada en la seguridad. En esta área se encuentran funciones como la regulación de la iluminación, programación de riego automático, automatización de persianas, control de temperatura, accionamiento de electrodomésticos, etc [13, 15, 16].
Comunicaciones: La última área de aplicación de la domótica son las comunicaciones. Esta área de gestión incluye funciones de supervisión de la instalación de sistemas multimedia como lo son la TV, audio, videojuegos, etc., así como el control del sistema domótico a través del teléfono móvil o internet desde cualquier punto [13, 15].
2.3 INTERNET DE LAS COSAS (IOT)
La frase “Internet of Things” fue propuesta por el centro Auto-ID del MIT en 1999 [19,20].
El término Internet of Things ha sido ampliamente utilizado por investigadores y profesionales para describir la combinación del mundo real con el mundo virtual de tecnología de la información por medio de tecnologías de identificación automática, sistemas en tiempo real, sensores y actuadores.
La detección de la condición física de las cosas a través de sensores, junto con la recolección y procesamiento de los datos detallados de las mismas, permite una respuesta inmediata a los cambios en el mundo real.
Gracias a los avances de miniaturización y minimización de costos de la tecnología de redes de sensores, tecnologías y aplicaciones, el internet de las cosas se convirtió en relevante para la industria y el usuario final [19].
2.3.1 Definición del IoT
El Internet de las Cosas es un concepto en el cual las tecnologías de la información del mundo virtual se integran sin problemas con las cosas del mundo real [19].
El IoT se refiere a la construcción de una red basada en Internet que cubre todas las cosas en el mundo mediante el uso de tecnologías para relacionar la identificación automática de cosas e intercambio de información [20].
El IoT es lo que obtenemos cuando conectamos las cosas, las cuales no son operadas por humanos si no por internet [21].
El término Internet de las Cosas es usado para describir dispositivos (cosas) con conexión a internet permitiéndoles interactuar unas con otras [22].
El Internet de las Cosas se refiere al crecimiento de objetos cotidianos que adquiere conectividad, habilidades de detección e incremento de potencia de cálculos [23].
2.4 LENGUAJES DE PROGRAMACIÓN WEB
Algunos de los lenguajes de programación y mecanismos utilizados para llevar a cabo el Internet de las Cosas son HTML, CSS, Python, PHP, JavaScript, etc. Por lo que estos serán mencionados a continuación.
2.4.1 HTML
El acrónimo HTML se refiere a HyperText Markup Languaje (Lenguaje de Marcas de Hipertexto). Un documento HTML consta de dos partes principalmente, una es la información que contiene y la otra son las instrucciones que le dirán al equipo (ordenador) como desplegar dichas instrucciones. HTML permite mediante un conjunto de instrucciones como mostrar un contenido. El encargado de traducir este conjunto de instrucciones es el llamado Web browser o navegador. Se espera que las instrucciones sean las mismas independientemente del sistema operativo en que se encuentre el navegador, este es un objetivo llamado independencia de plataforma que se esperaría en la práctica pero no es posible debido a que los comandos utilizados para diferentes plataformas no son los mismos.
Los elementos anteriores son las partes que componen a un documento HTML. Estos elementos son llamados etiquetas, la mayoría de las etiquetas en un documento HTML son de apertura y cierre, en algunos casos solo es necesaria la apertura. Una etiqueta de apertura está representada por comillas angulares “< >” y se escribe entre ellas, mientras que para las etiquetas de cierre se agrega una diagonal enseguida de la primer comilla angular “</ >”, de igual manera se escribe entre ellas. Las etiquetas <HTML> y </HTML> definen los límites del documento HTML.
La etiqueta <HEAD> contiene toda la información del documento como lo son:
Titulo
Estilos (aspecto del documento HTML)
Enlaces (donde se encuentra ubicado el documento HTML)
Script
Por cada documento HTML se necesita únicamente un par de elementos <HEAD> </HEAD>, y un par de elementos <BODY></BODY>. Existen variedades de etiquetas para realizar un documento HTML, estas se encuentran definidas en el apéndice A. Un documento HTML proporciona la interfaz de I/O, mientras que JavaScript y PHP se encargan de manejar los cálculos. La programación con HTML proporciona ventajas con respecto a una gran variedad de interfaces que superan a los lenguajes basados en texto tales como C [24].
HTML es un lenguaje normalizado de acuerdo al W3C, el cual es una comunidad internacional dedicada al desarrollo de estándares web creada por Tim Berners-Lee y Jeffrey Jaffe en el Massachusetts Institute of Technology [25].
2.4.2 CSS
CSS es un mecanismo que permite configurar los parámetros de una página web, entre estos parámetros se encuentran el color, tamaño, sangrías en el documento, tipo de letra, etc. CSS puede trabajar en conjunto con HTML, al unir estos la función de HTML es dar estructura a la página web, mientras que CSS se encarga de darle el formato del contenido previamente estructurado por HTML. CSS está soportado por todos los navegadores al día de hoy, también se encuentra normalizado de acuerdo al W3C. El modo de funcionamiento de CSS es a base de reglas donde cada una de estas índica el estilo que será aplicado al documento, por lo tanto se puede tener más de una regla, estas están divididas en dos partes:
El selector es un enlace entre el documento y el estilo, este específica los elementos que serán afectados por la declaración. La declaración se compone de la propiedad y el valor, por lo tanto este define cual será el efecto sobre el elemento.
Como ejemplo del selector y la declaración se tiene:
Figura 2.3 Selector y declaración en CSS [Adaptado de 26].
En la Figura 2.3 se muestra que el selector o elementos ℎ3, serán afectados por la declaración, cambiando la propiedad del 𝑐𝑜𝑙𝑜𝑟 a 𝑏𝑙𝑢𝑒.
Las formas más populares para darle estilo a un documento son las siguientes:
Con el uso de la etiqueta <link>, el cual servirá para vincular una hoja de estilo externa con el documento y la cual debe ser colocada en la sección <head>. Ejemplo:
Ejemplo:
Figura 2.5 Forma CSS con etiqueta <style> [Adaptado de 26].
Usando los estilos directamente en los elementos con la etiqueta <style> dentro de <body> como el ejemplo mostrado en la Figura 2.3 [26].
Las propiedades que contiene CSS se muestran en el apéndice B.
2.4.3 JavaScript®
JavaScript® es un lenguaje de programación interpretado orientado a objetos, debido
a esto requiere de un intérprete para poder ser traducido y de esta manera ser comprendido por el procesador. JavaScript® se ejecuta del lado del cliente (navegador),
el cual es el encargado de interpretar el código, por esta razón JavaScript® no se
compila, se traduce.
Figura 2.6 Funcionamiento de JavaScript®.
Este lenguaje de programación fue creado para trabajar junto con HTML para la creación de páginas web interactivas, debido a que HTML permite por si solo obtener páginas web estáticas en las cuales se muestran textos con estilos pero no se puede interactuar con el usuario. El propósito de JavaScript es el de acceder y modificar los componentes de una interfaz de información existente. El documento HTML se convierte en la interfaz para JavaScript®.
JavaScript® involucra amplias capacidades de manipulación de texto, así como cálculos
de operaciones matemáticas y una amplia variedad de problemas de computación [24]. Cuando se utilizan variables, funciones o parámetros no es necesaria su declaración, esto recibe el nombre de tipado dinámico.
JavaScript® se encuentra estandarizado en la Ecma international que es una asociación
europea industrial fundada en 1961 y se dedica a la normalización de la Tecnología de las Comunicaciones e Información (ICT) y Electrónica de Consumo (CE) [27]. El estándar ECMAScript®, está documentado en la ECMA-262 este estándar también se
encuentra aprobado por la ISO como ISO-16262 [27, 28].
Uno de los principales retos al utilizar HTML/JavaScript® es que no son ambientes
completamente normalizados, esto debido a los diversos dialectos que presentan, estos problemas son muy complejos inclusive para programadores experimentados [24]. Las etiquetas utilizadas para programación JavaScript® son la etiqueta de apertura
<script> y la etiqueta de cierre </script>.
Cuando se ingresan instrucciones JavaScript® en un documento HTML, estas quedan
Figura 2.7 Orden de instrucciones JavaScript® en documento HTML [Adaptado de 24]. 2.4.4 PHP
Es un lenguaje de programación que se encuentra dentro de documentos HTML, este lenguaje se ejecuta del lado del servidor, es un lenguaje de código abierto, por lo que se le pueden añadir mejoras y compartirlas con otros usuarios [29].
PHP puede funcionar en casi todos los sistemas operativos, por lo tanto es un lenguaje multiplataforma.
Se creó en el año de 1994 por Rasmus Lerdorf, cuando se necesitaba conocer las veces que se había accedido a una página en particular [29, 30].
Debido a que en aplicaciones para la ciencia y la ingeniería es importante contar con la capacidad de leer y escribir archivos de datos, se utiliza PHP para cubrir estos requerimientos. PHP reside en un servidor remoto o local en lugar de ser descargado en un navegador como es el caso de JavaScript. PHP proporciona además la capacidad de recibir peticiones de un documento HTML y actuar sobre esas peticiones [24, 30]. Para agregar código PHP en un documento HTML se puede realizar de las siguientes maneras:
Forma 1. Dentro del mismo documento HTML y dentro de las etiquetas <html> y </html>.
Figura 2.8 Código PHP dentro del HTML forma 1.
Forma 2. Dentro del mismo documento HTML y fuera de las etiquetas <html> y </html>.
Ejemplo:
Figura 2.9 Código PHP dentro del HTML forma 2.
Forma 3. Mediante un formulario en HTML y mandarlo a llamar desde este, mientras el código PHP estará dentro de un archivo con extensión .php
Ejemplo:
Figura 2.10 Código correspondiente a una llamada a PHP en HTML mediante formulario forma 3.
2.4.5 Python®
Python® es un lenguaje de programación de alto nivel, existen diversos programas
de alto nivel como lo son C, C++, Fortran, Cobol, etc [31, 32].
Se considera que Python® es un lenguaje interpretado porque los programas de
Python® son ejecutados por un intérprete. Python® se inicia con su aplicación
correspondiente como puede ser: ActivePython, PythonWin, IDLE y PythonIDE. Al inicializar esta aplicación se muestra un mensaje en el que se puede comenzar a escribir programas en un ciclo de lectura-evaluación [33].
Ejemplo:
Figura 2.11 Código escrito en Python para que aparezca en consola Hello World® [33].
En la Figura 2.11 se muestra el código para imprimir el mensaje “Hello World” mediante el comando print, con lo que se despliega dicho mensaje del programa en Python.
Ejemplo:
Figura 2.12 Ejemplo de un código en Python almacenado en un archivo con extensión .py, el cual despliega la frase Hello World [33].
En la Figura 2.12 el caracter “#” en la primera línea de código indica un comentario. En la segunda línea el comando “print “permite mostrar texto en pantalla, en este caso el texto “Hello World”
Para ejecutar el programa anterior se debe colocar el nombre del archivo con su extensión .py entre símbolos de porcentaje como sigue:
C
APÍTULO
3:
C
ASO DE ESTUDIO
3.1 INTRODUCCIÓN
En este capítulo se detalla el caso de estudio del trabajo, mostrando el plano eléctrico de la vivienda en la cual se instaló el sistema domótico así como la topología y los protocolos utilizados para los diferentes sensores y actuadores implementados.
3.2 PLANO ELÉCTRICO
El sistema domótico realizado en el presente trabajo fue implementado en una vivienda, cuyo plano arquitectónico se muestra en la Figura 3.1.
De la Figura 3.1 se puede apreciar la vista superior de la vivienda que consta generalmente de 3 zonas. La zona 1 y 2, como aparecen enumeradas en la figura representan dos habitaciones comunes y la zona 3 representa la sala de la vivienda. La Tabla 3.1 contiene la información de los sensores y actuadores implementados en la zona 3 de la vivienda.
TABLA 3.1INFORMACIÓN DE LOS ELEMENTOS IMPLEMENTADOS EN EL CASO DE ESTUDIO.
Elemento Descripción
F1 Circuito relevador acciona Lámpara1
F2 Circuito relevador acciona Lámpara2
F3 Circuito relevador acciona Lámpara3
V Circuito relevador acciona Ventilador
Rv Reed Switch para ventana
Rp Reed Switch para puerta
N Sensor ultrasónico para nivel de tanque
L Sensor de Lluvia
G Sensor de gas
T Sensor de Temperatura
P Sensor de Presencia
La conexión desarrollada para el intercambio de la información de los sensores, así como las señales de activación para los actuadores se realizó utilizando un cableado oculto por canaletas, concentrado en el dispositivo de gestión FRDM-K64F. La Figura 3.2 muestra un esquema de la instalación eléctrica del sistema domótico.
El plano eléctrico de la Figura 3.2, muestra la localización aproximada de los actuadores y sensores que componen al sistema domótico descrito en este capítulo. Las señales eléctricas provenientes de los sensores se muestran en la Figura 3.2 con una línea punteada. Las señales de control de los dispositivos actuadores se muestran con una línea continua. Ambas señales se concentran en el FRDM-K64F.
3.3 RED DOMÉSTICA
Una red doméstica es aquella que se caracteriza por la topología del sistema de control, medio de transmisión, protocolos y comunicación utilizados en esta.
Para que la aplicación funcione dentro del mismo lugar en que se implementó el sistema domótico, se utilizó una red LAN, debido a que este tipo de red cubre un área geográfica relativamente pequeña que es aplicable al caso de estudio.
3.3.1 Topología de la Red Doméstica
Es el modo de interconectar equipos y sistemas en la red LAN. Es la representación geométrica de la relación de todos los enlaces (medio de comunicación físico que transfiere los datos de un dispositivo a otro) y dispositivos que los enlazan entre sí (también llamados nodos).
El modo de topología a utilizar dependerá de factores como el sistema de control y el sistema de cableado según las especificaciones del sistema [34].
Existen diferentes modos de topología de redes domésticas, entre las más comunes se encuentran estrella, anillo, malla, árbol y bus, estas son detalladas en el apéndice C. Para este caso de estudio se aplicó la Red con topología en Estrella, debido a que utiliza un Sistema de Control Centralizado, es decir, existe un solo equipo de control (FRDM-K64F) y todos los componentes de la red doméstica (sensores y actuadores) están conectados a este equipo como se muestra en la Figura 3.3.
Figura 3.3 Red con topología en estrella utilizada para el caso de estudio.
El envió de señales desde el equipo de control FRDM-K64F/Raspberry pi hacia los elementos sensores y actuadores son transmitidas por la infraestructura de la red eléctrica de la vivienda utilizando un par de módems PLC comerciales cuyas características se muestran en el apéndice D.
Las señales medidas por los dispositivos sensores, son enviadas al equipo de control, el cual se encarga de tomar una decisión y realizar una acción en respuesta.
3.3.2 Comunicación por la Red Eléctrica
La comunicación de esta aplicación domótica se lleva a cabo mediante la red eléctrica utilizando un par de módems PLC colocados en los contactos eléctricos del caso de estudio. La tecnología PLC es aquella que se utiliza en la red eléctrica de media y baja tensión (127 V) con el objetivo de proporcionar servicios como lo son voz, video y datos. En la Figura 3.4 se muestra el ámbito de trabajo de PLC en la red eléctrica el cual se encuentra desde media tensión hasta la baja tensión, presentándose aquí el caso de estudio (Residencia).
Figura 3.4 Ámbito de trabajo de PLC en la Red Eléctrica [35].
PLC se divide en tres diferentes redes dependiendo del segmento de la red eléctrica en que este se aplique:
Red de Distribución o Backbone. Esta ópera en la red de media tensión, siendo esta la que conecta múltiples usuarios o redes, se encarga de prever señales para uso doméstico, comercial e industrial.
Red de Acceso u Outdoor. Esta red va desde el transformador hasta el usuario final utilizando la red eléctrica de baja tensión, este tramo es conocido como última milla. El concepto de última milla se encuentra definido en las telecomunicaciones y se refiere al tramo que abarca el final de la línea de comunicación hasta el usuario final [36].
Red Doméstica o Indoor. Esta red abarca toda la infraestructura de la red eléctrica de la casa del usuario final, comercio o industria, permitiendo crear
Figura 3.5 Intervalos de frecuencia de operación de la red eléctrica y PLC [Adaptado de 35]. Los primeros sistemas PLC surgieron en el año de 1950 y fueron conocidos como control de ondulación, estos sistemas únicamente se podían comunicar en una sola dirección. A finales de 1990 surgieron los sistemas PLC que permitían comunicaciones bidireccionales en la línea de baja tensión por ejemplo en lecturas del medidor y aplicaciones de automatización del hogar.
El término Power Line Carrier apareció en el final de la Segunda Guerra Mundial en 1945, en ese periodo la mayoría de las líneas telefónicas habían sido destruidas por lo que había más infraestructura de líneas de la red eléctrica. Por este motivo se diseñaron sistemas de transmisión de datos por los cables de alta y media tensión teniendo como objetivo la comunicación [37].
Los módems PLC permiten establecer conexiones de área local utilizando la infraestructura eléctrica por lo que cada contacto eléctrico se convierte en un punto de acceso a la red.
3.3.2.1 Arquitectura de PLC
La tecnología PLC consiste en el envió de información sobre la infraestructura de la red eléctrica existente, debido a esto se puede obtener una red de área local o conexiones Ethernet de los contactos eléctricos de la instalación como se muestra en la Figura 3.6.
Figura 3.6 Módems PLC conectados a los contactos eléctricos. La línea gruesa representa la línea de transmisión eléctrica y la línea delgada corresponde a la señal del router.
El principio de funcionamiento de PLC consiste en la superposición de una señal de alta frecuencia (1.6 a 35 MHz como se mostró en la Figura 3.5) sobre la señal de baja frecuencia de la red eléctrica (60 Hz) sin que el rendimiento de la red se vea afectado. La señal de baja frecuencia de la red eléctrica se encarga de la transmisión de la energía y la señal de alta frecuencia de la transmisión de datos circulando ambas por el mismo medio.
Un módem PLC transmisor convierte una señal digital en una señal analógica realizándose así un proceso de modulación para ser transferido por la red eléctrica. Al pasar la información por la red, se añadirá ruido presente en esta ocasionado por aparatos electrodomésticos por lo que el módem receptor mediante un filtro pasa altas incorporado en el únicamente dejara pasar las frecuencias de interés. Enseguida se recibirá la señal modulada y el módem PLC receptor realizara un proceso de demodulación en el cual convierte la señal analógica recibida en la señal digital enviada por el módem PLC transmisor como se muestra en la Figura 3.7 [11, 38].
Figura 3.7 Módems PLC incorporados al caso de estudio. 3.3.3 Protocolos de Comunicación
Entre los protocolos utilizados para el desarrollo del caso de estudio, se encuentra el HTTP, el cual está dentro de la tecnología TCP/IP que contiene diferentes metodologías en las capas que lo conforman.
3.3.3.1 Protocolo TCP/IP
Debido al crecimiento de usuarios de redes e intercambio de información, surgió la necesidad de un protocolo que permitiera interconectar redes diferentes, soportara fallos y que admitiera el uso de distintas aplicaciones, sin importar el sistema operativo, tipo de conexión, etc.
El TCP/IP (Protocolo de Control de Transmisión/Protocolo de Internet) es el más utilizado en el mundo, debido a que este es la base de Internet, ya que posee una arquitectura de red compleja al contener diferentes metodologías de comunicación apiladas en capas.
En el año de 1973 el DoD (Departamento de Defensa de Estados Unidos) comenzó un proyecto para desarrollar una tecnología de comunicación de redes de transmisión de datos, por lo que surgieron dos redes diferentes, ARPANET que era dedicada a investigación y MILNET de uso militar. Se permitió a diferentes universidades participar en la investigación con ARPANET por lo que este modelo fue nombrado arquitectura TCP/IP debido a las iniciales de los dos protocolos más importantes [39].
El modelo de la arquitectura TCP/IP se encuentra integrado por capas organizadas como se muestra en la Tabla 3.2.
TABLA 3.2MODELO DE LA ARQUITECTURA TCP/IP.
TCP/IP 7
6
5 Capa de Aplicación (HTTP)
4 Capa de Transporte (TCP)
3 Capa de Red (IP)
Capa de Acceso a la Red (Ethernet)
2
1 Capa Física (par trenzado)
A continuación se describen las capas de la arquitectura TCP/IP:
Capa física: En esta capa se transmiten o reciben datos a través del medio físico.
Capa de Acceso a la Red: Esta capa define como se transmitirá la información por el medio físico a través de diferentes redes hasta llegar a su destino. Aquí se determina como se transmitirá la información por el cable, el tiempo que debe esperar para mandar la información y como se sabe hacia que elemento va dirigido el mensaje.
Capa de Red: Aquí se añaden las direcciones IP de origen y destino del elemento al que será enviada la información. Esta información es enviada en forma de paquetes y puede pasar por diferentes redes por lo tanto estos paquetes llegaran desordenados a la siguiente capa.
Capa de Transporte: Esta capa tiene como función establecer la comunicación entre el origen y el destino, se encarga de transmitir los paquetes sin errores al receptor y de forma ordenada.
Capa de Aplicación: Una vez establecida la conexión desde el origen al destino, la capa de aplicación proporciona los servicios de Internet.
la que se puede acceder a datos remotos. El cliente y el servidor están conectados en red [40].
En la Figura 3.8 se muestra el cliente y servidor para el caso de estudio conectado a la red.
Figura 3.8 Modelo cliente servidor del caso de estudio conectado en red.
Para el caso de estudio el cliente puede ser una computadora personal, un dispositivo móvil o cualquier otro que cuente con acceso a internet, mientras que el servidor fue implementado en un sistema basado en un microcontrolador FRDM-K64F y una microcomputadora Raspberry Pi 2B.
Este se encuentra basado en el protocolo de solicitud-respuesta, el cual está incluido en el protocolo TCP/IP. En la Figura 3.9 se muestra un esquema representativo del funcionamiento del protocolo HTTP, el cual consiste en que cada solicitud o petición que realice el cliente tendrá una respuesta por parte del servidor, cada solicitud que envié el cliente al servidor será independiente de las solicitudes realizadas anteriormente.
Cuando se accede a Internet utilizando la barra de direcciones del navegador, se establece una conexión TCP con el servidor web en el cual se encuentra la dirección especificada, esta dirección es la URL la cual tiene la forma http://..., por lo regular esta conexión es realizada a través del puerto 80, que es el puerto establecido por defecto del protocolo HTTP y el cual es utilizado para este trabajo. Cuando la conexión ha sido realizada, el cliente envía una petición (solicitud) por lo que se obtiene un mensaje por parte del servidor (respuesta), inmediatamente termina la conexión con el servidor y comienza de nuevo el ciclo de solicitud-respuesta.
Por lo tanto el protocolo HTTP puede distinguir únicamente entre solicitudes y respuesta, estas se diferencian por la primera línea. Cada petición y solicitud contienen cabeceras y cuerpo del mensaje, en este último se transmiten los datos y las cabeceras permiten obtener información relacionada con los datos transmitidos.
A continuación se muestra un ejemplo de la solicitud HTTP realizada por el cliente al servidor:
Figura 3.10 Argumentos enviados al servidor cuando se realiza una petición, a través del protocolo HTTP .
En la Figura 3.10 se muestra la solicitud del cliente hacia el servidor, por lo que en la primera línea se indica la versión HTTP utilizada, en este caso la 1.1 y el método utilizado para acceder al recurso solicitado, este método viene identificado mediante un URI (Universal Resource Identifier), que se encuentra definido por el estándar RFC 2396. Los métodos más comunes son GET y POST, estos métodos se diferencian por la forma de enviar información en formularios [41].
Las siguientes líneas dan información del cliente como lo es el navegador desde el que se está accediendo, así como la conexión establecida y el idioma. Se le indica al servidor
de conexión. La cuarta línea indica la longitud de la información enviada, mientras que las siguientes líneas indican información del tipo de respuesta en este caso text/html, así como información sobre el cliente. En la última línea se observa la solicitud realizada por el cliente al servidor, en este ejemplo se muestra LED=0 como petición.
Figura 3.11 Respuesta del servidor a la solicitud del cliente. 3.3.4 SENSORES Y ACTUADORES
Para desarrollar la aplicación domótica se requirió del uso de sensores que permitieran conocer el estado de las variables de interés y mediante el controlador tomar una decisión que es ejecutada por los dispositivos actuadores.
Un dispositivo sensor es aquel que detecta o mide una cantidad física como lo es: presión, temperatura, humedad, etc. Se encargan de captar la información del medio a automatizar [42, 43].
Un dispositivo actuador convierte una señal proveniente del controlador en una determinada acción sobre el sistema, estas pueden ser: activar/desactivar una alarma, apertura/cierre de puertas, encendido/apagado de Iluminación, etc [42, 43].
La arquitectura centralizada diseñada para el caso de estudio está caracterizada por el elemento de control del sistema, en este caso el FRDM-K64F, el cual es el encargado de detectar las señales provenientes de los dispositivos sensores para la activación de los actuadores que conforman el sistema.
En la Tabla 3.3 se muestran las características principales de los elementos sensores utilizados, así como la acción a desempeñar.
TABLA 3.3CARACTERÍSTICAS DE LOS SENSORES UTILIZADOS.
SENSOR TIPO DE SEÑAL DESCRIPCIÓN ACCIÓN
Gas Digital Señal digital alta
superando un umbral ajustable
Alarma, acción de electroválvula
Lluvia Digital Señal digital alta superando un umbral ajustable
Alerta con mensaje
Nivel Analógica Señal de tensión
(0-5 V Ajustable ) Supervisión acción de bomba y de agua
Temperatura Analógica Señal de tensión (0-5 V 10 m V / 1
°C )
Supervisión y
acción de
ventilador
Presencia Digital Señal digital alta superando un umbral ajustable
Supervisión
Reed Switch Digital Señal digital abierto y cerrado
Supervisión y alerta de abertura de ventanas
En la Tabla 3.4, se encuentran descritos los elementos actuadores y su acción a realizar. Más adelante se mostraran a detalle cada elemento mencionado en las tablas 3.3 y 3.4. El funcionamiento de los sensores se describe en el apéndice E.
TABLA 3.4CARACTERÍSTICAS DE LOS ACTUADORES UTILIZADOS.
ACTUADOR TIPO DE SEÑAL DESCRIPCIÓN ACCIÓN
Relevador Digital Señal digital Encendido y
Apagado de
Iluminación y ventilador.
Figura 3.12 Conexión de los Elementos del Sistema Domótico al FRDM-K64F.
Los módulos sensores constan de una terminal de alimentación de 5V de CD, una terminal de GND y una para la señal de salida o entrada según sea el caso hacia el FRDM-K64F.
3.3.4.1 Sensor de Gas
Uno de los objetivos de la domótica es la seguridad, por lo que uno de los elementos más utilizados en esta son los detectores de gas, humo o fuego. La acción que se realiza al detectar concentraciones de los elementos anteriores son señales que activan una alarma sonora o una señal que llega a la interfaz de usuario, esto con la finalidad de evitar incendios, intoxicación de los usuarios e incluso reducir la posibilidad de explosiones.
El sensor MQ-2 es utilizado en la detección de fugas de gas domésticas e industriales. Los gases que puede detectar este sensor son: gas GLP (gas licuado de petróleo), i-butano, propano, metano, alcohol, hidrogeno y humo. Para el caso de estudio se utilizó el sensor MQ-2 para la detección de gas GLP debido a que la vivienda doméstica del trabajo cuenta con dicho servicio.