cambiar a curso:   2016-17   2018-19


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2017-18

Sistema de gestión, consulta y adquisición de datos de sensores con MQTT_SN en plataformas de bajo coste


Tecnologías Específicas

Ingeniería del Software
 


Descripcion y Objetivos

La gestión de información en la actualidad está jugando un papel muy importante en una gran cantidad de campos aplicados. El origen de esta información es variado pero existe una fuente muy importante que viene de los datos recogidos por los sensores. Esta información permite que las aplicaciones puedan cambiar su comportamiento de forma dinámica dependiendo de la información recogida por los sensores a esta tecnología se la conoce como Context Awareness. Un paradigma muy utilizado en estos casos es el de Publicación-Subscripción en el que tenemos un conjunto de publicadores de información y un conjunto de subscriptores a dicha información. Existen dos tipos distintos de estrategias a la hora de usar este paradigma uno centrado en predicados y otros en grupos de noticias. Los centrados en predicados definen una condición de subscripción bajo la cual se producen las notificaciones, mientras que los grupos de noticias funcionan al estilo de los servicios RSS donde se permite la subscripción a un grupo y las notificaciones se producen tras publicarse información en el mismo.

El estándar MQTT (MQ Telemetry Transport) implementa este paradigma usando el segundo tipo de soluciones, es decir, mediante la gestión de grupos de noticias definido mediante el estándar ISO/IEC PRF 20922. MQTT ofrece una solución “ligera” sobre el protocolo TCP/IP. Éste estándar define una versión específica para su uso en redes de sensores MQTT_SN. La aplicación Mosquitto ofrece una implementación para la versión 3.1 y 3.1.1 de este protocolo. Mosquitto se haya bajo el paraguas de Eclipse y ofrece una solución de código abierto. Su objetivo actual es su uso para el intercambio de mensajes en el contexto de las IoT (internet de las cosas) tales como sensores de bajo consumo eléctrico o dispositivos móviles como los teléfonos, minicomputadores de placa única de bajo coste estilo Raspberry PI o microcontroladores como Arduino. El sistema operativo Raspbian nativo de las plataformas Raspberry PI soportan esta aplicación de forma nativa.

El objetivo principal será el uso del programa Mosquitto en plataformas Raspberry PI como bróker y la publicación desde plataformas Arduino de información relativa a sensores. Como subobjetivos se deberá estudiar las distintas tecnologías comentadas anteriormente así como desarrollar una herramienta que nos permita monitorizar de forma remota el flujo de la información.

 


Metodología y Competencias

Pasos:

  • Estudio tecnológico:
    • MQTT y redes de sensores
    • Plataformas Raspberry y Arduino
    • Uso de Mosquitto
  • Análisis del problema
  • Propuesta de una solución
  • Desarrollo de un prototipo para la monitorización remota (aplicación web)
    • Estudio y comparativa de metodologías de desarrollo e IDEs.
    • Análisis y Diseño
    • Implementación y Pruebas

Competencias:

Intensificación de Ingeniería de Computadores:

 Capacidad de diseñar y construir sistemas digitales, incluyendo computadores, sistemas basados en microprocesador y sistemas de comunicaciones.

Mediante el uso de microcontroladores y microcomputadores de bajo coste estilo Arduino y RaspberryPy.

 Capacidad de desarrollar procesadores específicos y sistemas empotrados, así como desarrollar y optimizar el software de dichos sistemas.

Mediante el uso de microcontroladores y microcomputadores de bajo coste estilo Arduino y RaspberryPy.

 Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.

Mediante el uso de microcontroladores y microcomputadores de bajo coste estilo Arduino y RaspberryPy.

 Capacidad de diseñar e implementar software de sistema y de comunicaciones.

Mediante el uso del protocolo MQTT_SN especialmente diseñado para sensores y basado en los paradigmas Publish/Subscribe.

 Capacidad de analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.

Mediante el uso de microcontroladores y microcomputadores de bajo coste.

 Capacidad para comprender, aplicar y gestionar la garantía y seguridad de los sistemas informáticos.

Mediante el uso de microcontroladores y microcomputadores de bajo coste estilo Arduino y RaspberryPy.

 Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.

Mediante el uso de microcontroladores y microcomputadores de bajo coste estilo Arduino y RaspberryPy.

 Capacidad para diseñar, desplegar, administrar y gestionar redes de computadores.

Mediante el uso del protocolo MQTT_SN especialmente diseñado para sensores y basado en los paradigmas Publish/Subscribe.

Intensificación de Ingeniería del Software:

 Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos 

 Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos.

 Capacidad de dar solución a problemas de integración en función de las estrategias, estándares y tecnologías disponibles.

Mediante el uso de la tecnología MQTT_SN específica para la comunicación en redes de sensores. 

 Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.

Mediante el uso de procesos de desarrollo rápido como Scrum.

 Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que pudieran presentarse.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos.

 Capacidad para diseñar soluciones apropiadas en uno o más dominios de aplicación utilizando métodos de la ingeniería del software que integren aspectos éticos, sociales, legales y económicos.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos usando protocolos como el MQTT_SN.

 

Intensificación de Tecnologías de la Información:

 Capacidad para comprender el entorno de una organización y sus necesidades en el ámbito de las tecnologías de la información y las comunicaciones.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos.

 Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos usando protocolos como el MQTT_SN.

 Capacidad para emplear metodologías centradas en el usuario y la organización para el desarrollo, evaluación y gestión de aplicaciones y sistemas basados en tecnologías de la información que aseguren la accesibilidad, ergonomía y usabilidad de los sistemas.

Mediante el uso de patrones de diseño centrados en el usuario que utilicen técnicas como los story-boards.

 Capacidad para seleccionar, diseñar, desplegar, integrar y gestionar redes e infraestructuras de comunicaciones en una organización.

Mediante el uso de la tecnología MQTT_SN específica para la comunicación en redes de sensores. 

 Capacidad para seleccionar, desplegar, integrar y gestionar sistemas de información que satisfagan las necesidades de la organización, con los criterios de coste y calidad identificados.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos.

 Capacidad de concebir sistemas, aplicaciones y servicios basados en tecnologías de red, incluyendo Internet, web, comercio electrónico, multimedia, servicios interactivos y computación móvil.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos usando protocolos como el MQTT_SN.

 Capacidad para comprender, aplicar y gestionar la garantía y seguridad de los sistemas informáticos.

Mediante el desarrollo de sistemas de toma de datos de sensores que a su vez muestren los datos obtenidos usando protocolos como el MQTT_SN.

 


Medios a utilizar

El material necesario son las plataformas Raspberry PI 3 y Arduino Intel Edison así como el material informático necesario para el desarrollo del prototipo. Todo ello se suministrará en las dependencias del I3A que posee el grupo ReTiCS del cual forma parte el director de este proyecto.

 


Bibliografía

[1] MQTT 3.1.1 specification: http://www.iso.org/iso/catalogue_detail.htm?csnumber=69466

[2] Mosquitto site: https://mosquitto.org/

[3] "Raspberry Pi 3 is out now! Specs, Benchmarks & More". The MagPi Magazine. 1 April 2016.

[4] "Arduino - Introduction". Disponible en: arduino.cc.

 


Tutor


DIAZ DESCALZO, GREGORIO
 

Alumno


ROLDÁN GARCÍA, JAVIER