El pasado 8 de octubre tuvo lugar otra exitosa edición del evento The API Hour organizado en el Centro de Innovación BBVA. En esta ocasión la temática fue Internet of Things (IoT). El reto que nos planteamos consistió en medir las constantes vitales del edificio y del evento, así que desarrollamos, junto al equipo IoE de BBVA, un prototipo con esta funcionalidad. Se trata de un proyecto original de BBVA donde BEEVA Labs participa como partner tecnológico.
Sensores
Para sensorizar el espacio utilizamos dispositivos SensorTag SimpleLink, un multisensor compatible con Bluetooth 4.0. Customizamos el firmware de estos dispositivos para modificar su comportamiento y transformarlos en iBeacon. De esta manera obtuvimos los datos de temperatura ambiental, humedad, presión atmosférica y luminosidad en las distintas salas.
Image may be NSFW.
Clik here to view.
Utilizamos una Raspberry Pi para captar los datos de dichos sensores y enviarlos a la nube utilizando MQTT. Además, a través de un micrófono USB captamos el nivel de ruido en tiempo real.
Para enriquecer los datos con el contexto posicional, utilizamos iBeacons, balizas con Bluetooth de bajo consumo, de las que ya hablamos en alguna ocasión (Beacons, usos y posibilidades)
Backend y APIs
Elegimos un stack MEAN para el desarrollo del backend. El framework de NodeJS nos permitió prototipar rápidamente las API Rest que necesitábamos. Usamos la noSQL MongoDB, ya que necesitábamos una base de datos orientada a documentos capaz de manejar grandes cantidades de registros y poca concurrencia. En el caso de las mediciones de volumen, fueron alrededor de 800.000 documentos. Además, MongoDB nos permitió gestionar colecciones dinámicas no definidas. De esta manera, guardamos todos los datos recibidos por los canales de comunicación de MQTT para exponerlos a través de una API.
Monitorizamos la actividad en las redes sociales, Twitter, tweets con el hashtag del evento, retweets y la cuenta del evento. Utilizamos la API de NLP Unloop para descubrir los temas y keywords más relevantes durante el evento.
Image may be NSFW.
Clik here to view.
Para facilitar la gestión de la ubicación de los sensores y monitorizar el movimiento de los asistentes de un espacio a otro utilizamos la plataforma Ubiqons. Mediante su API también enviamos notificaciones contextuales a los asistentes.
Image may be NSFW.
Clik here to view.
Aplicaciones
APP Móvil
Decidimos desarrollar una aplicación móvil para el evento y mostrar el funcionamiento y el potencial de la localización en interiores. Además, de visualizar datos del programa, ponentes e información del evento, incluimos características de contextualización mediante Ubiqons. De esta manera, los asistentes al evento podían comprobar su ubicación junto a los datos del sensor más cercano.
Image may be NSFW.
Clik here to view.
Google Glass
Dado que la arquitectura la orientamos a APIs y todos los datos permanecen en la nube, decidimos implementar rápidamente una aplicación para las Google Glass. Monitorizando los beacon cercanos obtenemos la localización y posteriormente conseguimos mostrar los datos del SensorTag más cercano.
Image may be NSFW.
Clik here to view.
Holograma
En el pasillo de acceso de entrada al auditorio existe un holograma, por lo que se nos ocurrió mostrar un modelo 3D del edificio con un mapa de calor usando los datos. El modelado de la planta baja del centro de innovación ha sido realizado con la librería ThreeJS basada en WebGL a partir de un plano vectorizado. El suelo está compuesto por nodos rectangulares a los que se les aplica una variación en el color y reflejo según los datos de temperatura, humedad y nivel de iluminación obtenidos de las mediciones de los SensorTag a través de la API.
Image may be NSFW.
Clik here to view.
Dashboard
Aprovechando las grandes pantallas del CIBBVA, decidimos mostrar un dashboard incluyendo todos los datos del edificio y APIs. Mediante una gráfica y siguiendo una línea temporal se podía visualizar los datos de los sensores en los diferentes espacios, los ponentes, las charla o los momentos más ruidosos. En cuanto a tecnologías se ha utilizado AngularJS para completar el stack MEAN junto a librerías como D3JS.
Image may be NSFW.
Clik here to view.
El equipo que llevó a cabo la prueba de concepto fue grupo formado por el BEEVA Labs y el equipo de IoE de BBVA. Creemos que la prueba de concepto llevada a cabo es muy ilustrativa y sirve de buen ejemplo de la utilidad de las APIs y el IoT en cualquier entorno.
Aprendizaje
Aún siendo una prueba de concepto relativamente pequeña, siempre obtenemos algún aprendizaje. MongoDB es capaz de soportar una gran cantidad de datos donde no se necesita una gran concurrencia, como fue nuestro caso. La Raspberry Pi es una excelente herramienta para prototipado, la gran compatibilidad mediante el puerto USB con cualquier conectividad y su GPIO permite extender sus funcionalidades. El SDK de los SimpleLink es flexible y permite customizar los servicios y la gestión de la conectividad, en nuestro caso Bluetooth 4.0 BLE.