Sofia2 IoT example with Android: Tag, you’re it!

example-overview.png

This post is an example on how easy is to integrate an IoT scenario using Sofia2 IoT platform. The example was presented on February 17th during an introduction lecture on Sofia2 basics for the Embedded & Distributed Systems Sofware Master course at the Universidad Politécnica de Madrid (UPM).

The setup will simulate a typical IoT scenario with just a couple of elements:

  • Android Smarpthone (running at least a 4.4 Android version)
  • BLE (Bluetooth Low Energy) Beacon
  • An upgraded user for Sofia2.com platform (ROL_COLABORADOR)

 

example-overview.png

The demo app will periodically fetch data from the smartphone’s accelerometer sensor and GPS. It will also operate as a BLE scanner, triggering an asynchronous event when the selected beacon is placed nearby. Data will be modeled using a Sofia2’s Ontology. Using Sofia2 console, we will create a Dashboard to represent periodic real-time data. A Groovy script will be also generated to evaluate whether the beacon was detected. If that is the case, it will send an e-mail to the user: “Tag, you’re it!”

Seguir leyendo “Sofia2 IoT example with Android: Tag, you’re it!”

Sofia2 IoT example with Android: Tag, you’re it!

Caso ejemplo Sofia2 IoT con Android : ¡Tú la llevas!

En este post se presentará un sencillo ejemplo de integración IoT sobre la plataforma Sofia2. Este ejemplo fue presentado el día 17 de Febrero en una charla de presentación y de formación de conceptos básicos de la plataforma IoT Sofia2 a los alumnos del Máster en Software de Sistemas Distribuidos y Empotrados, en el grupo de investigación SYST de la Universidad Politécnica de Madrid (UPM).

El escenario simulará un escenario típico de IoT con un par de elementos sencillos:

  • Smartphone Android (versión igual o superior a 4.4)
  • Dispositivo beacon con BLE (Bluetooth Low Energy)
  • Usuario en plataforma Sofia2.com, con nivel de ROL_COLABORADOR

 

example-overview.png

 

Para el demostrador se obtendrán datos periódicamente de los sensores de acelerómetro del terminal móvil y de la geo-posición del mismo. Además se realizará un escaneo sobre Bluetooth Low Energy (BLE) que cuando detecte la cercanía del Beacon seleccionado, dispare un evento asíncrono. En Sofia2, se recogerán los datos en una Ontología, representando acto seguido los valores periódicos en un Dashboard, y evaluando la ocurrencia del evento asíncrono en un Script que notificará de manera instantánea la detección del evento en el e-mail del usuario: ¡Tú la llevas!

Seguir leyendo “Caso ejemplo Sofia2 IoT con Android : ¡Tú la llevas!”

Caso ejemplo Sofia2 IoT con Android : ¡Tú la llevas!

Mejoras en el soporte de almacenamiento de binarios

Con la última versión de la plataforma Sofia2, ha llegado la posibilidad de operar con archivos binarios fuera de una ontología, esto permite el envío de binarios con un tamaño mayor al soportado por el tipo de dato Binary.

2015-06-17_17-31-41Como se expone en el gráfico anterior esta nueva funcionalidad consta de los siguientes módulos.

  • APIClient cliente Java que facilita la operatividad de upload, update, delete y recuperación de los binarios depositados en la plataforma.
  • Service exposición de un Servicio REST para subir ficheros a la plataforma.
  • Imeplentaciones Plugables a traves de las extensiones en modo Plugin podemos añadir nuevas implementaciones para el almacenamiento de los binarios, Actualmente se dispone de dos. Almacenamiento en la base de datos de tiempo Real (BDTR) y en sistema de ficheros (File).

El Servicio REST que expone el SIB soporta la subida de binarios a través de multipart, lo que permite adjuntar binarios sin límite de tamaño, la plataforma permite a través de su parametrización configurar el tamaño máximo de los binarios añadidos.2015-06-17_17-38-15

Los métodos que expone el servicio son.

  • Post. Para añadir un nuevo binario en la plataforma, en la respuesta del servicio se nos indicará el ID del Binario que debemos usar en las siguientes operaciones.

2015-06-17_17-42-07

  • Put. Para modificar un binario ya gestionado por la plataforma.

2015-06-17_17-44-26

  • Delete. Nos permite dar de baja un recurso gestionado por la plataforma (Será una baja lógica)

2015-06-17_17-45-17

  • Get. Podremos recuperar el Binario gestionado por la plataforma.

2015-06-17_17-46-25

Podemos observar que en todas operaciones se nos solicita un SessionId que obtendremos a través de un Join previo en la plataforma, para obtener un SessionId válido deberemos solicitar al administrador de la plataforma que nos otorgue permisos a alguno de nuestro Kp para usar BinaryRepository y con el nivel de actuación que deseemos Consultas, Inserciones o Completo.

En función del tipo de permiso podremos realizar todas las operaciones expuestas por el Servicio o solo aquellas para las que estemos autorizados.

Mejoras en el soporte de almacenamiento de binarios

API .NET Sofia2

En la release 2.20 de SOFIA2 se ha incluido el nuevo API .NET que implementa el protocolo SSAP sobre el protocolo REST.

Este API se ha desarrollado con .Net Framework 4.5, por lo que puede ser incluido en desarrollos basados en .Net Framework 4.5 o superior.

El paquete de instalación se encuentra en el siguiente enlace:

http://sofia2.org/apis/SOFIA2_API_NET/SOFIA2_APINET.zip

Una vez descargado, la estructura del paquete es la siguiente:

Donde podemos encontrar:

· Las librerías del API en la carpeta lib,

· Un proyecto de prueba con tests implementados para las distintas operaciones soportadas por el API.

Este proyecto de test muestra las mejores prácticas en el uso del API y claros ejemplos de la invocación de cada operación.

De esta manera, desarrollar un cliente SSAP .NET, será tan fácil como incorporar el API en nuestro proyecto, y personalizar el método de invocación a partir del código encontrado en el proyecto de prueba.

API .NET Sofia2