API Sofia2 para Rephone Kit

En esta entrada se presentará una guía de pasos a seguir para realizar un POST en Sofia2 desde el módulo Xadow BLE+GSM de Seeed, que es la pieza central del conjunto RePhone Kit.

Xadow BLE+GSM es una diminuta placa de desarrollo de aplicaciones de movilidad. Basado en uno de los chips de menor tamaño del mercado, presenta una interesante combinación de capacidades de comunicación, aportando capacidades de Bluetooth Smart o BLE, un modem 2G (GSM/GPRS) cuatribanda (850/900/1800/1900MHz) que cubre cualquier red GSM a nivel mundial.

post1

El SoC central utilizado es el MT2502 de Mediatek, con estas características principales:

  • Micro-controlador: Procesador RISC de 32-bit ARM7EJ-STM
  • Memoria RAM: 4 MB
  • Memoria FLASH: 16 MB
  • Alimentación: 3.3 ~ 4.2V(no SIM)/3.5 ~ 4.2V(con SIM)
  • Consumos estimados: 20mW (@standby sin radio), 30 mW (@standby GSM), 45mW (@standby Bluetooth).
  • Cuatribanda: 850/900/1800/1900MHz
  • GPRS: Modem de clase 12
  • Velocidad de reloj: 260 MHz
  • Conectores: Conectores de 35 pines y PIN Connector para concatenar modulo extra de Xadow (GPS, extensión de GPIO, LCD, etc); Conector JST 1.0 para la batería.ç
  • Interfaces: LCD, Audio, I2C, SPI, UART, y GPIOs.

Es destacable la amplia gama de opciones de programación para el kit, ofreciendo SDKs para C/C++ (sobre Eclipse), LUA, Arduino y Javascript. Sin embargo, es recomendable usar la plataforma Eclipse en C/C++ para poder acceder a toda la potencia del kit, ya que para el resto de opciones, ciertas librerías no han sido aún portadas por el fabricante.

El primer paso es configurar el entorno de desarrollo. Para ello Seeed dispone de varias guías paso a paso en como instalar los drivers y programas requeridos. En el caso del entorno de Eclipse, este enlace http://wiki.seeedstudio.com/wiki/Eclipse_IDE_for_RePhone_Kit contiene una guía detallada para empezar a programar la placa.

El siguiente paso es partir de uno de los ejemplos incluidos en el LinkIt Assist 2502 SDK 2.0. Para ello bastará con seleccionar Nuevo->Proyecto->LinkIt Assist 2502 SDK 2.0 Example->Example Application.

post1

En la siguiente pantalla bastará con dar nombre al proyecto y seleccionar la plataforma adecuada, en este caso LinkIt Assist 2502, y aceptar, para pasar a la selección del ejemplo de Network_HTTPS.

Tras esto el proyecto ya estará disponible en el workspace seleccionado. El sistema sobre el que funcionan las aplicaciones desarrolladas se basa en un sistema de llamadas al mismo, que lanzará callbacks en respuesta a estas llamadas.

El punto de entrada del programa se encuentra en el método vm_main de la fuente HTTPS.c. Como se observa en el código, se suscribe el programa a los eventos del sistema.

post1.png

En este ejemplo en concreto, se vincula el inicio del programa al evento del sistema VM_EVENT_CREATE, que se dispara al inicio de la operación del sistema.

La llamada a vm_timer_create_non_precise, crea un temporizador en el sistema, que ejecutará la función que se le pase por parámetro cuando expire el tiempo indicado (en ms). En este caso en concreto se puede observar que cada minuto se hace una llamada al método http_send_request. En este método vemos como se indican los métodos de callback que han de ser llamados desde el sistema, dependiendo de los eventos que reciba. Además en este método se llama a set_custom_apn que carga en el modem los datos de la tarjeta microSIM utilizada para comunicar. Los campos de la misma se pueden definir en las macros de la parte superior, estos son los campos a modificar:

post1

El APN de la red ha de introducirse en CUST_APN, mientras que el resto parámetros han de ser activados en el caso de que la tarjeta utilizase proxys para sus conexiones. Es importante destacar que hay que eliminar el requerimiento de código PIN para la tarjeta SIM a utilizar. Esto se puede hacer simplemente con un smartphone Android, accediendo a la tarjeta SIM y desactivando el bloqueo de la SIM, que pedirá una vez el código SIM, y tras esta operativa no lo pedirá nunca más.

Con la llamada a vm_https_channel, comenzará el proceso de conexión. Si todo ha ido bien, el sistema invocará el método https_send_request_set_channel_rsp_cb como callback, y es en este método donde realizaremos pequeñas modificaciones para realizar el POST a Sofia2. Estos cambios se realizarán en los parámetros que se pasan a la llamada al sistema vm_https_send_request, los cambios son los siguientes:

  • VM_HTTPS_METHOD_POST en lugar de VM_HTTPS_METHOD_GET
  • Configurar tanto VMHTTPS_TEST_URL como HTTP_HEADER con los valores adecuados de Sofia2
  • Introducir tanto HTTP_HEADER, como insert_sofia como mensajes a enviar y sus longitudes.

post1

Con estos cambios, la llamada quedaría como la siguiente:

post1

Para el primer mensaje que sería un JOIN, se podría formar el siguiente array, y asignarlo en la llamada anterior como parámetro.

post1

El siguiente paso tras realizar esta llamada al sistema, sería un callback por parte del mismo en el método https_send_read_request_rsp_cb, donde el valor de result = 0 nos indicaría que todo ha funcionado correctamente. Para añadir algunas líneas de depuración, podemos mostrar en el monitor las respuestas del servidor:

post1

Con todos estos pasos, el ejemplo estaría listo para realizar un JOIN en Sofia2. El siguiente paso sería el programa en la placa, pulsando sobre el botón de Build Application.

post1

A continuación habría que abrir el monitor, para poder comprobar que efectivamente hemos realizado un JOIN a Sofia2 gracias a los mensajes de depuración añadidos.

post1

En el menú de monitor, habrá que seleccionar el puerto de Debug, y conectarse al mismo para poder acceder al log que está lanzando el equipo. Cuando pase el tiempo definido en el temporizador que lanzaba https_send_request, se realizará la llamada y se podrá ver el log satisfactorio como el siguiente:

post1.png

Con esta base bastaría con construir una cadena con el esquema JSON de la ontología que se desease actualizar y seguir este mismo proceso para insertar una nueva instancia usando el SessionKey contenido en el JOIN previo satisfactorio.

API Sofia2 para Rephone Kit

Wizard generación de queries

En la versión 3.3 de Sofia2 se han actualizado las Herramientas Consola BDTR y BDH  y Mis Gadgets añadiendo un asistente para la generación de queries, lo que facilita al usuario la consulta de datos de sus ontologías, sin la necesidad de conocer el lenguaje.

A través de la consola de administración se puede acceder a la opción de menú Herramientas > Consola BDTR y BDH

1.png
Seguir leyendo “Wizard generación de queries”

Wizard generación de queries

Piloto Smart Industry

El piloto de Smart Industry está basado en la solución Integración IT/OT e Industrial Smart Asset. Trata de dar una visión global de los activos de una empresa que realiza distintos procesos de fabricación y generación.

La solución se personaliza en una empresa de fabricación de celulosa, y los datasets se almacenan en ontologías de Sofia2. Junto con el generador de instancias de la plataforma, se utilizarán para informar la parte visual y se actualizarán en tiempo real a distintos niveles: a nivel global, por planta, por línea y por asset.

Seguir leyendo “Piloto Smart Industry”

Piloto Smart Industry

Seguridad en Dashboards

En la última versión de Sofia2 se ha incorporado la seguridad en dashboards, de tal forma que ahora es el usuario el que decide quién puede visualizar los dashboards que realiza, pudiendo compartirlos con cualquier usuario, con un grupo de usuarios o con ninguno.


Cuando se crea un dashboard, por defecto estará como privado permitiendo que únicamente el propietario pueda visualizarlo. Si se quiere crear como público para que cualquier usuario pueda visualizarlo, solamente habrá que habilitar el checkbox para tal efecto.

captura1post

En el listado de dashboards se puede ver la privacidad de aquellos dashboards a los que se tiene acceso (los creados por uno mismo o de los proyectos a los que se pertenezca), de tal forma que si se quiere cambiar su privacidad se podrá editar el dashboard y cambiar esta propiedad.

captura2post

Si se quiere compartir el dashboard con un grupo de usuarios, únicamente habrá que añadirlo en el proyecto en el que se quiera compartir manteniendo el dashboard como privado.

Seguridad en Dashboards

Talleres IoT y Analytics

Dentro de la sección Desarrollo -> Documentación se han incorporado dos nuevos documentos de gran utilidad :

 

http://sofia2.com/desarrollador.html#documentacion

 

documentacionsofia2

 

Estos documentos son los dos talleres siguientes:

 

  • Taller IoT

El desarrollador siguiendo este taller podrá evaluar las capacidades IoT de la plataforma Sofia2 a través de un caso real . Las capacidades que se pondrán de manifiesto seran la captura de datos, el poder analizar los datos de entrada y actuar ante ellos y la representación de los datos en dashboards.

 

Descargar Taller: http://sofia2.com/docs/SOFIA2-Taller%20IoT.pdf

 

  • Taller Analytics

A través de este taller el desarrollador podrá evaluar las capacidades avanzadas de procesamiento en tiempo real y de analítica Big Data que proporciona la plataforma.

 

En concreto la ingesta y preparación de los datos mediante  Pipelines y el uso de Sofia2 Notebooks para realizar, de manera muy sencilla e interactiva, analítica sobre datos de fuentes muy variadas, incluidas las fuentes de datos de Sofia2

 

Descargar Taller: http://sofia2.com/docs/SOFIA2-Taller%20Analytics.pdf

 

Talleres IoT y Analytics

Demostrador Bot Sofia2

Sofia2 se introduce en esta nueva tendencia con un demostrador de un chatbot construido sobre la plataforma.

 

El bot podrá contestar las dudas que tengas sobre la Plataforma (que es Sofia2, que es un KP, que es una ontología, etc…)

 

image0021

 

Se puede acceder al bot desde la sección de demostradores:

 

O directamente desde aquí.

 

La conversación se envía de manera automática a una ontología en Sofia2 permitiendo realizar un análisis posterior que nos ayudará a mejorar su capacidad de conversación.

 

En futuras releases se habilitará la funcionalidad que nos permitirá crear de forma sencilla y visual Bots sobre la Plataforma, permitiendo desarrollar nuestro asistente virtual o bots destinados al customer service.

 

Podremos integrar nuestros chatbots en una web y desarrollar bots para diversos canales como Twitter, Telegram, Facebook, etc…

Demostrador Bot Sofia2