Universidad de Alcalá Escuela Politécnica Superior GRADO EN INGENIERÍA TELEMÁTICA Trabajo Fin de Grado Desarrollo de sistema domótico y aplicación de gestión Android, conectados mediante plataforma IoT. Autor: Víctor Ibarra Moreno Tutor/es: Bernardo Alarcos Alcázar 2016 UNIVERSIDAD DE ALCALÁ Escuela Politécnica Superior GRADO DE INGENIERÍA TELEMÁTICA Trabajo Fin de Grado Desarrollo de sistema domótico y aplicación de gestión Android, conectados mediante plataforma IoT. Autor: Víctor Ibarra Moreno Director/es: Bernardo Alarcos Alcázar TRIBUNAL: Presidente: Antonio García Herráiz Vocal 1º: David Fernández Barrero Vocal 2º: Bernardo Alarcos Alcázar CALIFICACIÓN: ................................................... FECHA: ............................................ AGRADECIMIENTOS Me gustaría dedicar este espacio a todas las personas que me han ayudado y mostrado su apoyo en la realización de este proyecto. En primer lugar a mi familia, que tanto me ha apoyado durante este tiempo y a la que le debo todo. A mi madre por interesarse continuamente sobre el progreso de este proyecto atendiendo atentamente a mis explicaciones aunque no entendiese la mitad. A mi padre, por darme la libertad todos estos años para investigar, muchas veces con desastroso resultado, y que me ha permitido llegar hasta donde he llegado. Gracias por dejarme desmontar toda la habitación. Y a mi hermano, que ha soportado también mil y una pruebas fallidas de la aplicación, y me ha aportado muchas buenas ideas para incorporar en este proyecto. También agradecer a Bernardo su gran interés mostrado durante el desarrollo de todo el proyecto, siempre ha estado ahí para darme su ayuda y consejo. Ha sido un gusto trabajar con él. Agradecer a Miguel su inestimable ayuda con los problemas que han ido surgiendo en torno a la electrónica. Gracias a su ayuda ha sido posible arrancar definitivamente el desarrollo del sistema al comienzo complicado. Agradecer también a Alicia y Elena sus consejos entorno al diseño y marketing del proyecto. Para el recuerdo queda el paseo nocturno por Madrid reflexionando sobre cuál sería el nombre definitivo de la aplicación. Y por último, a mis amigos que me han ayudado a desconectar cuando era necesario, y que también han estado dispuestos a escuchar mis demostraciones del proyecto con la misma ilusión con la que yo lo hacía. Muchas personas han puesto su granito de arena para llegar hasta aquí, a todas ellas GRACIAS. GRADO EN INGENIERÍA TELEMÁTICA ÍNDICE ÍNDICE ........................................................................................................................ 1 ÍNDICE DE IMAGENES ............................................................................................. 3 RESUMEN ................................................................................................................... 7 PALABRAS CLAVE ................................................................................................... 7 SUMMARY ................................................................................................................. 7 KEYWORDS................................................................................................................ 7 RESUMEN EXTENDIDO ............................................................................................ 9 CAPÍTULO 1: INTRODUCCIÓN Y PLANTEAMIENTO DE OBJETIVOS: ........... 11 1.1 Introducción .................................................................................................. 12 1.2 Objetivos y planteamiento de trabajo ............................................................ 13 1.3 Selección de servidor IoT. ............................................................................. 14 1.4 Requisitos del sistema ................................................................................... 15 CAPÍTULO 2: HARDWARE DEL SISTEMA DOMÓTICO ...................................... 19 2.1 Introducción .................................................................................................. 20 2.2 Núcleo del sistema domótico ........................................................................ 20 2.3 Sensores........................................................................................................ 23 2.4 Actuadores ................................................................................................... 25 2.5 Definición de entradas y salidas del sistema .................................................. 27 2.6 Presupuesto ................................................................................................... 30 CAPÍTULO 3: SOFTWARE DEL SISTEMA DOMÓTICO ....................................... 31 3.1 Introducción .................................................................................................. 32 3.2 Librería ESP-8266 ....................................................................................... 32 3.3 Definición de canales y campos en ThingSpeak ........................................... 34 3.4 Filosofía de funcionamiento ......................................................................... 34 3.5 Funcionamiento básico ................................................................................ 35 3.6 Chequeo de eventos ...................................................................................... 36 3.7 Función updateParametroTS()....................................................................... 37 3.8 Función enviarHTTP() .................................................................................. 40 3.9 Servidor ........................................................................................................ 41 3.9.1 Función comprobarPeticionesServidor() ................................................. 41 3.9.2 Función ejecutarComandos()................................................................... 43 3.9.3 Configuración de router .......................................................................... 45 3.10 Control de Persiana .................................................................................. 45 3.10.1 Cálculo de tiempos y posición ............................................................... 47 3.11 Control Aire Acondicionado ............................................................................ 48 CAPÍTULO 4: DOMOTE, DESCRIPCIÓN GENERAL ............................................. 51 4.1 Introducción .................................................................................................. 52 4.2 Entorno de desarrollo y versiones Android .................................................... 52 4.3 Introducción a la programación en Android .................................................. 53 4.4 Concepto de sala ........................................................................................... 54 1 DESARROLLO DE SISTEMA DOMÓTICO Y APLICACIÓN DE GESTIÓN ANDROID, CONECTADOS MEDIANTE PLATAFORMA IOT. CAPÍTULO 5: VISIÓN DE USUARIO ...................................................................... 55 5.1 Introducción .................................................................................................. 56 5.2 Diagrama de flujo ......................................................................................... 56 5.3 Fase de Configuración .................................................................................. 58 5.4 Visión general ............................................................................................... 63 CAPÍTULO 6: ESTRUCTURA INTERNA ............................................................... 73 6.1 Introducción .................................................................................................. 74 6.2 Funcionamiento y sistema de clases .............................................................. 74 6.3 Servicio Núcleo ............................................................................................ 75 6.3.1 Almacenamiento y gestión de los datos .................................................. 75 6.3.2 Actualización periódica de los campos…………………………………..77 6.3.3 Comprobación de notificaciones y alarmas............................................. 79 6.4 Conexión Activities - Núcleo ........................................................................ 81 6.5 Obtención de gráficas ................................................................................... 82 6.6 Botones ......................................................................................................... 83 6.6.1 Botón Simple ....................................................................................... 84 6.6.2 Interruptor ............................................................................................ 84 6.6.3 Barra de progreso ................................................................................. 85 6.6.4 Evento de pulsado ................................................................................ 85 6.7 Estados de la Aplicación ............................................................................... 86 6.7.1 Aplicación Abierta en primer plano ...................................................... 86 6.7.2 Aplicación Abierta en segundo plano ................................................... 86 6.7.3 Aplicación Cerrada ............................................................................... 87 6.8 Alarmas y Notificaciones .............................................................................. 87 6.8.1 Condiciones ......................................................................................... 88 6.8.2 Eventos ................................................................................................ 90 6.9 Asistente de Voz ........................................................................................... 92 6.9.1 Api.ai ................................................................................................... 92 6.9.2 Integración de Api.ai en Android .......................................................... 96 CAPÍTULO 7: SEGURIDAD DEL SISTEMA DOMÓTICO ...................................... 99 7.1 Introducción ................................................................................................ 100 7.2 Servicios de seguridad ThingSpeak ............................................................. 101 7.2.1 Apikeys .............................................................................................. 101 7.2.2 Conexiones SSL ................................................................................. 101 7.3 Ataques al sistema domótico ....................................................................... 102 7.3.1 Ataque MITM al núcleo del sistema ................................................... 102 7.3.2 Ataque MITM a la aplicación Domote................................................ 105 7.4 ThingHTTP ................................................................................................ 108 CONCLUSIONES Y FUTUROS TRABAJOS ......................................................... 111 REFERENCIAS ....................................................................................................... 113 ANEXO .................................................................................................................... 117 1. Esquemático Arduino Nano ............................................................................ 117 2. Esquemático de Sistema de Prototipado Departamento ................................... 118 3. Código Sistema Domótico .............................................................................. 119 2
Description: