Proyecto presentado para el curso de Big Data para la Ciudad Inteligente, impartido por la Universidad Politécnica de Madrid con MiriadaX. Este proyecto trata de teorizar y conceptualizar una solución tecnológica basada en IoT y Big Data, para optimizar los recursos medioambientales de una comarca o municipio, ahorrando costes y creando un sistema sostenible. También abarca la posibilidad de monitorizar y notificar alertas en caso de incidencias medioambientales, así como también promover la participación ciudadana para alertar sobre dichas incidencias a través de apps móviles.
Proyecto Smart Green -IoT y Big Data para ciudades inteligentes
1. Big Data para la Ciudad Inteligente
Diseño de proyecto
Smart Green
Por Rafael Hernampérez Martín
9 de Mayo de 2017
2. Contenido
Introducción al proyecto............................................................................................................... 3
Conjunto de datos..................................................................................................................... 4
Visión general de la Arquitectura.............................................................................................. 4
Subsistema de adquisición de datos............................................................................................. 6
Diseño de arquitectura a alto nivel........................................................................................... 6
Diseño de nodos IoT.................................................................................................................. 7
Diseño de Centro de Datos ....................................................................................................... 7
Subsistema de gestión de datos.................................................................................................... 8
Conexión con el subsistema de adquisición de datos............................................................... 8
Diseño de arquitectura de alto nivel......................................................................................... 8
Detalle de las tecnologías implicadas ....................................................................................... 9
Subsistema de análisis de datos.................................................................................................... 9
Introducción a la solución planteada........................................................................................ 9
Detalle del análisis................................................................................................................... 10
Caso 1: Alertas anuales de humos ...................................................................................... 10
Caso 2: Nivel medio anual de humos.................................................................................. 10
Visualización de los datos analizados...................................................................................... 10
Datos a visualizar y resultados ............................................................................................ 10
Resumen de la historia y objetivo....................................................................................... 11
Diagramas generados.......................................................................................................... 11
3. Introducción al proyecto
El objetivo de Smart Green es gestionar y optimizar los recursos medioambientales de un
municipio o comarca, tales como bosques, jardines, zonas verdes, cultivos, etc.
Los objetivos que se persiguen son:
Sostenibilidad, optimización y eficiencia de los recursos medioambientales
Reducción de costes de mantenimiento, energía y agua
Vigilancia y control de los recursos
Alertas: meteorología, accidentes, incendios, furtivos, etc.
Gestión efectiva del conocimiento
Para conseguir lo anterior, Smart Green hará uso de las nuevas tecnologías, concretamente de
una red de sensores para medir el estado medioambiental de una zona verde (humedad,
humo/CO2, termómetro, presión, luz, cámaras, movimiento, etc.), la cual estará conectada a
un servidor centralizado que canalizará los datos obtenidos. Dicho servidor podrá acceder a
servicios de otros sistemas online afines (como un servicio de meteorología), y así generar
análisis complejos, simplificando las conclusiones en cuadros de mando interactivos, los cuales
medirán el estado de los recursos medioambientales, así como también la monitorización y
notificación ad-hoc y en tiempo real de alertas.
La energía de gran parte de estos dispositivos estará generada por paneles solares y molinos
de viento, a fin de ahorrar en costes, tanto de mantenimiento como de energía, y tener un
ecosistema totalmente sostenible.
Todo lo anterior estará complementado con apps móviles, que utilizarán los ciudadanos de
forma participativa y los técnicos medio ambientales del ayuntamiento para poder notificar
cualquier incidencia que pueda ocurrir.
Los sensores principales serán:
Humedad. La medición de este dato podrá gestionar óptimamente el riego. También
dispararía alarmas en el caso de rotura de sistemas de riego o inundaciones.
Humo. La cantidad de CO2 permite detectar posibles incendios o contaminación.
Termómetro. Mide la temperatura en ciertas zonas, a fin de proponer la plantación de
plantas más acordes a dichas temperaturas. También permite detectar posibles
incendios, o la predicción de niebla en combinación con los sensores de humedad.
Luz. Permitirá identificar qué plantas se adaptan mejor a la luz de determinadas zonas.
También permite configurar un umbral de luz a determinadas horas, a fin de identificar
algún posible incendio o si el día está nublado.
Movimiento. Permite detectar posibles intrusiones en zonas prohibidas, tales como
cazadores furtivos o ladrones de cosechas.
Cámaras. Permiten vigilar ciertas zonas conflictivas. En combinación con los sensores
de movimiento es posible detectar y registrar actos delictivos. Además, con drones de
vigilancia, será posible acceder a zonas donde las cámaras no consiguen alcanzar.
Medidor de tierra: Permite medir parámetros tales como el PH de la tierra.
Adicionalmente, se podrán conectar a estaciones meteorológicas locales, a fin de prever
contingencias, tales como el ahorro de riego, o, en el caso de heladas o tempestades, poder
proteger las plantas más vulnerables.
4. Conjunto de datos
Los datos gestionados por Smart Green serían los siguientes:
Input:
o Sensores: Registran las métricas correspondientes y con la frecuencia definida
o Cámaras y Drones: Información de vídeo sobre la actividad de video vigilancia
o Estado de salud de los sensores: Nivel de batería, posibles fallas, etc.
o Sistemas online externos: Por ejemplo, servicios meteorológicos online
o Apps: Alertas reportadas por ciudadanos y técnicos de campo
Output:
o Analítica: Tras el análisis de los inputs, se transforman los datos (ETL) y se
preparan para su visualización y su gestión para la toma de decisiones.
Visualización y notificación de alertas
Cuadros de mando interactivos
o Reactiva:
Riego: Control de las centralitas y válvulas de riego como respuesta a
las mediciones de humedad y a la previsión meteorológica
Video vigilancia: Activación de las cámaras en caso de detección de
intrusos o furtivos por parte de los sensores de movimiento
Notificación de alertas a bomberos, en caso de detección de incendios,
accidentes o catástrofes (ej: inundaciones)
Visión general de la Arquitectura
La arquitectura de la solución Smart Green está compuesta de cuatro niveles lógicos:
1. Nivel de usuario final. Comprende las aplicaciones que hacen uso del sistema, tales
como las apps de colaboración ciudadana o reporte de técnicos de campo, o las
herramientas de visualización de datos (cuadros de mando y alertas)
2. Nivel de sistema. Comprende las infraestructuras centralizadas del sistema,
especialmente referidas a los servidores (local y/o en la nube), así como también del
software de Big Data y bases de datos requeridos para procesar la información.
3. Nivel de comunicación. Comprende las tecnologías y los protocolos necesarios para
transmitir la información desde los sensores IoT hasta el nivel de sistema. También
comprende los protocolos necesarios para poder hacer llegar la información desde o
hacia el nivel de usuario final.
4. Nivel físico. Comprende los sensores y dispositivos necesarios para tomar las
mediciones y recopilar datos de interés para el sistema, así como también los
generadores de energía para estos aparatos, las baterías y otros dispositivos que
interactúan con Smart Green, tales como las centralitas y válvulas de riego.
5. Nota: Considerar también como dispositivos aquellos sobre los que interactúa el sistema Smart
Green en respuesta a eventos o alertas, tales como las centralitas y válvulas de los sistemas de
riego.
NivelFísico
Sensores Dispositivos
NivelComunicación
Protocolos
MQTT HTML FTP SSH
Telnet IPv4 IPv6
NivelSistema
Local
Server
Cloud
Server
NivelUsuario
6. Subsistema de adquisición de datos
Diseño de arquitectura a alto nivel
* NIVEL COMPUTACIÓN * NIVEL CONECTIVIDAD
Fuentes de información:
Medición del entorno
o Sensores IoT
Servicios externos:
o Servicio externo de Meteorología
Registro de incidencias
o App de participación ciudadana
o App de técnicos de campo
NIVEL APLICACION
Ciudadanos
Técnicos de campo
Servicios Externos
Android
iOS
Windows Phone
Web Services
API/REST
NIVEL SISTEMA / DATOS
ID sensor
Fecha/hora
Datos estado
Datos medición
Fecha/hora
Tipo alerta
Localización
Imágenes
Token
Fecha
Localización
Datos meteorológicos
Servidor HTTP/Web
Servidor BBDD
Cliente MQTT
Paho
Sensores Microprocesadores, Microcontroladores
NIVEL FISICO
ID sensor
Datos estado
Datos medición
Humedad
Termómetro
Humos
Luz
Movimiento
Tierra
etc
Arduino
Raspberry PI
Pasarelas
Routers
Mosquitto
Bluetooth/BLE, 6LowPAN, MQTT
WiFi,3G,6LowPAN
MQTT
3G,HTTP,
API/REST
3G,HTTP,
API/REST
7. Elementos de la solución:
Sensores IoT
Aplicaciones:
o Registro de incidencias (apps ciudadano y técnico de campo)
o Servicios externos (servicio de meteorología)
Pasarelas:
o Microordenadores y/o microprocesadores (depende del sensor y complejidad)
Sistema / Concentrador de datos:
o Hardware: servidor en local o en la nube
o Bases de datos: MongoDB
Diseño de nodos IoT
Sensores IoT de la solución:
Humedad
Luz
Humos
Movimiento
Termómetro
Medidor de tierra
Protocolos de comunicación de los sensores:
Nivel físico: Bluetooth/BLE
Nivel lógico: IPv6/6LowPAN
Ubicación: Puntos estratégicos de valor medioambiental, con cobertura hasta las pasarelas.
Pasarelas: Arduino o Raspberry, dependiendo de cobertura y complejidad, con caja
antivandalismo y resistente a las inclemencias meteorológicas y medioambientales.
Conectividad WiFi y/o 3G. Software de pasarela Kura y/o Mosquitto
Aplicación: MQTT (apoyo a la aplicación) y EXI (formato de mensajes)
Diseño de Centro de Datos
El Centro de Datos podrá ser un servidor físico y local, o bien un servidor virtual y en la nube. En
ambos casos, dicho servidor implementará software libre para soportar todas las necesidades.
Este centro de datos se apoyará en diferentes servicios:
Servidor Web/HTTP: Expondrá servicios web o API Restful para recepcionar la
información desde el sistema de registro.
Demonio o proceso desatendido: Invocará a servicios externos, según se requiera.
Cliente MQTT: Recepcionará los mensajes que lleguen desde las pasarelas.
Estos servicios procesarán y guardarán la información en HDFS o en una base de datos
MongoDB, para lo cual, el servidor tendrá instalado Hadoop y el servidor de MongoDB.
8. Subsistema de gestión de datos
Conexión con el subsistema de adquisición de datos
La propuesta de adquisición, sincronización y almacenamiento de datos será la siguiente:
El servidor expondrá un servicio web o una API/REST que permita a las aplicaciones de
registro (app de participación ciudadana y app de técnico de campo) invocar a servicios,
pasando los datos necesarios para registrar alertas. El propio servicio se conectará
directamente con MongoDB para almacenar dicha información.
El servidor dispondrá de procesos desatendidos (como demonios o tareas
programadas), o bien disparadores (triggers), que invoquen a los servicios externos
(como el de meteorología), capturar la información retornada, y, en consecuencia,
generar nueva información que se almacena en MongoDB y/o lanzar alguna acción
reactiva (como cambiar el estado de la centralita de los riegos en caso de lluvia).
El servidor, mediante el cliente MQTT, capturará los mensajes con la información de los
sensores. Como respuesta a estos mensajes, podrá optar por:
o Generar un archivo CSV y almacenarlo de forma distribuida en HDFS, para un
posterior procesamiento map/reduce por parte de Hadoop.
o Guardar esta información en MongoDB. La propia base de datos MongoDB
posee capacidades map/reduce con un buen rendimiento. Por otra parte,
también se puede lanzar el map/reduce sobre MongoDB mediante Spark.
Diseño de arquitectura de alto nivel
NIVEL APLICACION
Ciudadanos
Técnicos de campo
Servicios Externos
NIVEL SISTEMA
HTTP/API RESTFUL
NIVEL FISICO
HTTP/API RESTFUL
HTTP REQUEST
HDFS
9. Detalle de las tecnologías implicadas
Comunicaciones:
MQTT: Mensajería entre la pasarela y el servidor para transferir la información de los
sensores y dispositivos:
o Mosquitto: Broker de mensajería (lado de la pasarela)
o Paho: Cliente de mensajería (lado del servidor)
HTTP/API Restful: Mensajería de servicios web:
o Desde Apps de registro
o Hacia/Desde servicio web de meteorología
Almacenamiento distribuido: HDFS (Hadoop Distributed File System)
Base de datos: MongoDB (NoSQL orientada documentos)
Subsistema de análisis de datos
Introducción a la solución planteada
Debido a la complejidad y a las posibilidades de Smart Green, hablar de una única solución
(map/reduce) sería desaprovechar todo su potencial.
Map/reduce podría utilizarse para realizar síntesis básicas sobre los archivos CSV con la
información de los sensores. También podría realizarse sobre documentos en MongoDB, ya sea
mediante la propia base de datos (posee esta capacidad) o mediante Spark.
MongoDB, además, posee capacidades de funciones de agregado, que permiten obtener síntesis
de datos a través de consultas y operaciones de transformación de los datos.
Adicionalmente, se podrían realizar análisis más complejos a través de librerías de ciencia de
datos desde Python o mediante el lenguaje R. Estas tecnologías permiten tomar un dataset
complejo de datos y realizar operaciones de filtrado, organización, agrupación, etc., para llegar
al resultado esperado.
De cara a este proyecto, abordaremos un ejemplo simple mediante map/reduce, concretamente
en un único sensor (de los muchos posibles) y para dos casos en concreto (de los muchos
posibles). El sensor elegido es el de humos, y el primer caso es identificar el número de casos
anuales de exceso de humos (posibles incendios o por contaminación) de cada una de las zonas
medioambientales. El segundo caso es identificar el nivel medio anual de humos (suponiendo
que la frecuencia de medición es cada 15 minutos)
10. Detalle del análisis
Cada quince minutos, el sensor envía una medición de los humos de una zona. La pasarela
emitirá un mensaje MQTT al servidor con los datos necesarios:
Fecha/hora
Id del sensor
Zona medioambiental (nombre o identificador)
Nivel de humos.
El mensaje es recogido por el servidor, a través de Paho (cliente MQTT). Una vez recogidos los
datos, el servidor guardará estos datos en un archivo CSV dentro de un directorio en el sistema
de ficheros distribuido HDFS (o bien lo guardará en una colección en la base de datos MongoDB)
Caso 1: Alertas anuales de humos
El proceso de map/reduce realizará un mapeo con la clave Zona y el valor será el conteo de las
ocurrencias de mediciones. El filtrado deberá contemplar el año y el nivel máximo de humos
superado.
Caso 2: Nivel medio anual de humos
El proceso de map/reduce realizará un mapeo con la clave Zona y el valor será la media
aritmética de los valores de las mediciones, previo filtrado del año.
Visualización de los datos analizados
Datos a visualizar y resultados
Caso 1: Alertas anuales de humos
Datos: Zona, número de casos, año (título)
Resultado: Comparativa de casos por zona durante el año
Caso 2: Nivel medio anual de humos
Datos: Zona, nivel medio anual de humos (en ppm CO2), límite (referencia), año (título)
Resultado: Comparativa del nivel medio anual de humos por zona
11. Resumen de la historia y objetivo
Caso 1: Resumen de número de veces en que una determinada zona superó el índice de alerta
de humos durante todo el año.
Caso 2: Nivel medio anual de humos en una determinada zona, comparada con una referencia
límite para identificar la desviación.
Diagramas generados
Caso 1: Alertas anuales de humos
Caso 2: Nivel medio anual de humos
Nota: La opción más visual es la representación gráfica es mediante mapas geolocalizados