1. Objetivos
1.1. Motivación
1.2. Objetivos generales
1.3. Objetivos específicos
2. Introducción
2.1. Internet de las cosas
2.1.1. Aplicaciones
2.1.1.1. Aplicaciones de consumo
2.1.1.2. Aplicaciones comerciales
2.1.1.3. Aplicaciones industriales
2.1.1.4. Aplicaciones de infraestructura
2.1.1.5. Aplicaciones militares
2.1.1.6. Aplicaciones en el deporte
2.1.2. Tendencias y características
2.1.3. Arquitectura
2.1.3.1. Tecnología distribuida
2.1.3.2. Arquitectura escalable
2.1.4. Eficiencia energética
2.1.5. Complejidad
2.1.6. Seguridad
3. Tecnologías analizadas 24
3.1. Conceptos esenciales de Electrónica
3.1.1. Placa de Desarrollo
3.1.2. Microcontrolador
3.1.3. Pinouts
3.1.4. Serial Port y Baud Rate
3.1.5. Protocolos de Comunicación en Serie
3.1.5.1. USB (Universal Serial Bus)
3.1.5.2. UART (Universal Asynchronous Receiver and Trans mitter)
3.1.5.3. I2C (Inter-Integrated Circuit)
3.1.5.4. SPI (Serial Peripheral Interface)
3.2. Hardware: sensores y componentes
3.2.1. Filtros de Señales
3.2.2. GPS
3.2.2.1. Satnav Regionales
3.2.2.2. Trilateración
3.2.2.3. Detectando la ubicación
3.2.2.4. NMEA, el protocolo de comunicación
3.2.3. Acelerómetro
3.2.3.1. Aceleración Lineal
3.2.4. Giroscopio
3.2.4.1. Funcionamiento de un giroscopio MEMS
3.2.5. Magnetómetro
3.2.6. Hardware y Definición de los Módulos
3.2.6.1. Ublox-NEO-M8N
3.2.6.2. MPU9250
3.2.6.3. Adafruit Feather HUZZAH ESP8266
3.2.6.4. Raspberry Pi
3.3. Protocolo de Comunicación MQTT
3.3.1. Introducción
3.3.2. Publish/Subscribe
3.3.3. Topics/Subscriptions
3.3.4. Quality of Services
3.3.5. Clean session / Durable connections
3.3.6. Wills
3.3.7. Security
3.3.8. MQTT-SN
3.4. Software analizado
3.4.1. Arduino IDE
3.4.1.1. Introducción
3.4.1.2. Formato básico del código Arduino
3.4.2. Time Series Database (TSDB)
3.4.2.1. InfluxDB
3.4.3. Grafana
3.4.3.1. Introducción
3.4.3.2. Panels
3.4.3.3. Dashboards
3.4.3.4. Data Sources
3.4.3.5. Logs
3.4.4. Lenguajes utilizados
3.4.4.1. Python
3.4.4.2. C++
4. Propuesta del Prototipo y aporte de la tesina
5. Desarrollo del Prototipo
5.1. Conexión del Hardware
5.2. Introducción a las librerías y pruebas de Conexión
5.2.1. Adafruit y GPS uBlox NeoM8
5.2.2. Adafruit y MPU9250
5.2.3. Conexión WiFi del Adafruit y PC
5.3. Integrando las tres conexiones
5.4. Broker MQTT
5.4.1. Conectando con el broker
5.4.2. Enviando los datos al broker
5.5. Calculando la Aceleración y la Velocidad
5.5.1. La problemática de los datos en crudo
5.5.2. Filtro de Madgwick y cuaterniones
5.5.3. Obteniendo Aceleración
5.5.4. Verificación de movimiento
5.5.5. Reducción de ruido mecánico por software
5.5.6. Integrando la aceleración para obtener el resultado final
5.5.7. Arreglo en reconexión y problema de datos basura
5.5.8. Obteniendo la distancia recorrida
6. Pruebas del prototipo y comparativas
6.1. Recibiendo y Procesando la data
6.1.1. Mosquitto broker MQTT
6.1.2. Leyendo y procesando los datos del broker
6.1.3. Información persistida en InfluxDB
6.1.4. Obteniendo y visualizando las métricas con Grafana
6.1.5. Raspberry Pi 4 como nodo middleware de almacenamiento y procesamiento
6.1.6. Comparativa con dispositivo profesional PlayerTek
6.1.6.1. Pricing
7. Conclusiones y líneas de trabajo futuro
7.1. Conclusiones
7.2. Trabajos futuros