¿Qué es la iniciativa The Things Network?

En este post os queremos transmitir lo que es la iniciativa de The Things Network (TTN desde ahora), y como han conseguido, en poco más de 2 años, empezando con una campaña en Kickstarter, promover la creación de más de 400 comunidades de entusiastas y desarolladores de IoT, con una red global y colaborativa de +2600 gateways utilizando la tecnología LoRaWAN.

 

Amsterdam: Zona cero

 

Todo empezó en Amsterdam en el verano de 2015, de la mano de los dos fundadores de The Things Network: Wienke Giezeman y Johan Stokking. En este breve vídeo, Wienke explica los inicios y las capacidades de TTN:

 

Utilizando la tecnología LoRaWAN, cubrieron todo el centro de la ciudad de Amsterdam con cobertura LoRaWAN en un par de semanas con unos pocos gateways.

 

Tecnología LoRaWAN + Red Abierta – Open source

 

TTN eligió como tecnología de comunicación LoRaWAN sobre LoRa (más info en este enlace de la LoRa Alliance). Basada en una modulación de espectro extendido, LoRa alcanza considerables distancias utilizando una potencia muy pequeña ocupando todo el ancho de banda disponible en torno a la frecuencia de 868 MHz (EU). Esta transmisión se puede realizar incluso por debajo del nivel de ruido, lo que otorga a la comunicación una robustez superior frente al ruido.

 

Desde el inicio ha sido una tecnología abierta y con gran atracción entre los entusiastas del IoT, centrándose en 3 puntos principales:

 

  • Largo alcance: Cobertura en líneas de 10-20 km son fácilmente alcanzables con un emplazamiento adecuado.
  • Bajo consumo de batería: Esta tecnología de comunicaciones permite alargar la vida de los dispositivos alimentados por batería hasta varios años.
  • Bajos costes: Los costes de los dispositivos son cada vez más competitivos, y una vez tienes cobertura de un gateway, los dispositivos transmiten información sin coste de comunicación alguno (ciñendose eso sí a las cuotas de uso (duty-cycle) del espectro libre para cada región del globo).

 

Además de la tecnología de comunicaciones, TTN ha hecho un esfuerzo de desarrollo en la parte de servidor, construyendo todo el backend de la red y que da soporte a los gateways distribuidos por el globo. Este backend es el que lidia con duplicidades de mensajes, orquestración de mensaje de bajada, gestión de integraciones con plataformas, etc. TTN ofrece también capacidades de integración por HTTP y MQTT, además de una serie de APIs en distintos lenguajes como: Go, Java, Node-RED y Node.js, con las cuales construir una aplicación end-to-end, mediante la integración de nodos, gateways, server de TTN y una platforma IoT como Sofia2.

 

Desde el 1 de Febrero, tanto los diseños HW del gateway y del nodo de TTN, como el código sobre el que se ha escrito todo el backend de TTN ha sido disponibilizado como opensource en su cuenta de GitHub, manteniendo el espíritu abierto y de comunidad con el que empezaron en 2015.

 

429 comunidades en los 5 continentes

 

En la actualidad el fenómeno de TTN ha tenido gran calado en la comunidad IoT global. En este momento disponen de 2946 Gateways en todo el mundo gracias a comunidades locales que montan estos puntos de acceso extendiendo la red y el conocimiento sobre IoT. Esta creciente comunidad está acelerando la expansión del IoT, facilitando a muchas personas el acceso sencillo y gratuito a un ecosistema de IoT donde pueden hacer realidad sus proyectos de forma muy sencilla.

 

mapattn.png

 

En ciudades como Berlín, las comunidades de TTN han dotado a la ciudad de tal nivel de cobertura, que el desarrollo de aplicaciones IoT sobre esta estructura es una realidad:

 

ttn-berlin.png

 

Con Gateways instalados en ubicaciones tan icónicas como la torre de televisión de Berlín, dotando de una cobertura ideal a la capital germana:

 

DQRSwsTW0AEby0h.jpg

Meetup Sofia2 – Comunidad TTN Madrid

 

Este 28 de Febrero, en el espacio de THE CUBE Madrid, seremos los anfitriones de un Meetup sobre tecnologías LPWA (SigFox y LoRaWAN), y cómo hemos integrado ya estas tecnologías con Sofia2.

Además, tendremos el privilegio de contar con la ayuda de la comunidad de TTN oficial en Madrid, que nos contarán de primera mano sus objetivos como comunidad, los avances de TTN y las posibilidades que ofrece como red ciudadana:

 

ttn-madrid.png

 

Como colofón, la comunidad de TTN Madrid nos enseñará un caso de puerta conectada basado en LoRaWAN, conectado a TTN, y que hemos integrado en Sofia2 para poder explotar el caso desde el lado de plataforma, ofreciendo visualización en un dashboard, y usos especiales como el motor de scripting de Sofia2 para disparar alertas.

 

Si estás interesado en asistir, aun nos quedan plazas disponibles, este es nuestro grupo de Meetup:

https://www.meetup.com/es-ES/IoT-BigData-Sofia2-Lab/events/247514374/ .

Es una oportunidad muy buena para conocer más sobre Sofia2 y profundizar sobre la iniciativa TTN gracias a la presencia de la comunidad TTN Madrid.

 

Os esperamos!!

¿Qué es la iniciativa The Things Network?

Web Thing API by Mozilla

W3C Web Thing es una nueva propuesta (en este caso por parte de Mozilla) para describer un modelo de datos común y un API para la “Web of Things”.

La Web Thing Description provee un vocabulario para describir dispositivos físicos conectados a Internet en un formato legible basado en JSON.

Por su parte la Web Thing REST API y Web Thing WebSocket API permiten que un cliente web pueda acceder a las propiedades de un dispositivo, ejecutar acciones sobre este y suscribirse a eventos que representan un cambio en su estado.

La especificación incluye:

· Web Thing Types como tipos adicionales que pueden ser definidos usando extensiones semánticas sobre JSON-LD

· Un Web Thing API Protocol Bindings para escribir bindings a la Web Thing API para otros protocolos IoT

· El documento Web of Things Integration Patterns describe patrones para integrar dispositivos con la Web Thing API.

Seguro que con un ejemplo se entiendo mucho major lo que nos ofrece esta especificación:

Donde podemos ver que el dispositivo (DigitalTwin) tiene una propiedad temperatura de tipo Number, otra humidity y otra led, así como una acción (que alguien puede ejecutar sobre el dispositivo) y un evento (que se publica cuando se desencadena) reboot. Así como links para acceder a las propiedades, acciones ,eventos,…

Siguiendo la especificación podemos ver como:

Ejecutando esta petición:

Obtengo la descripción del dispositivo concreto.

Si hago

Me devolverá el valor de la propiedad:

Si quiero cambiar el valor de una propiedad:

Si quiero lanzar una acción reboot:

También puedo obtener una lista de peticiones de acciones:

Para acceder a los eventos

Aunque a la especificación le faltan aún bastantes cosas (como la seguridad, lógica embebida en el dispositivo) a nivel de interfaces la especificación es muy sencilla y fácil de implementar versus otras soluciones más potentes (y complejas) que veremos en próximos posts.

Web Thing API by Mozilla

Sofia2 participates in the SESIAD Virtual Laboratory

labVirtual

 

The Virtual Laboratory of the Secretary of State for the Information Society and Digital Agenda (SESIAD) was born under the standard UNE 178104 “Integrated management systems of the smart city” with the aim of becoming a benchmark for national and international platforms, being a place of experimentation in which companies and developers can evaluate the compatibility of their products with different Smart Cities platforms.

 

labVirtual

 

Currently, platforms that participate in the Virtual Laboratory are Sofia2, from Minsait by Indra, SmartBrain from Cellnex and Thinking City from Telefónica. They collaborate with SESIAD contributing their expertise and participating in the improvement of interoperability between platforms.

 

plataformas

 

As we saw in IoT Data Models: Initiatives and Sofia2 Data Model, there are different Initiatives of standardization of a Data Model in IoT. A Data Model represents the structure of your data and relationships, and therefore, organizes the elements and standardizes how they relate to each other.

 

gsma1

 

GSMA and FIWARE Data Models are defined in JSON, so their representation as Sofia2’s Ontology is immediate. We saw how they are supported and how easy it is to work with these entities in Sofia2

 

To achieve better interoperability between platforms, NGSI 9/10 v2 was selected as a common protocol for the Interoperability Layer. We saw in this document how they are supported and how to consume APIS modeled according to the semantic FIWARE Data Model and published in Sofia2 following the NGSI 9/10 v2 protocol.

 

In our experience with the Virtual Laboratory, in addition to making recommendations for new attributes and modifications in the Data Model, we had the opportunity to perform a Proof of Concept (PoC) by creating a connection  and transformation flow of real data from Smart City A Coruña to GSMA/FIWARE Data Model on Sofia2’s Platform.

 

In this example, Smart Coruña parking data is collected and is ingested in an Ontology on the Sofia2’s platform. Each time an instance of this ontology is received, a Script is launched and transforms this data adapting them to the Data Model and, consulting them, we see how, effectively, the Data Models are fulfilled.

 

dataingestGSMA

 

Also in this Proof of Concept we could publish this data through the API MANAGER of Sofia2 to later see that anyone with the proper permits can access this data via API, Curl or through the Virtual Laboratory portal.

 

consumptionGSMA

 

 

All this process is explained in the post Acquisition, transformation and consumption of data with GSMA/FIWARE Data Model, and has been captured in the demonstrator, which, in addition to parking data, collects data from beaches and museums.

 

demostrador

 

You can find all the information related to the SESIAD Virtual Laboratory here, as well as all the necessary tools (Data Model, APIs, Security tokens, examples …) to develop on the platforms complying with this interoperability model here

 

 

 

 

Sofia2 participates in the SESIAD Virtual Laboratory

Beijing Institute of Technology (BIT) meets Sofia2

IMG_20180123_153430862

 

En el marco de colaboración “Winter School” entre la Universidad Politécnica de Madrid (UPM) y el Beijing Institute of Technology (BIT), los estudiantes del BIT visitaron en la tarde de ayer las instalaciones de Indra en Madrid, donde se les presentaron diferentes soluciones tecnológicas de la compañía, destacando el enfoque IoT basado en la plataforma Minsait IoT Sofia2.

 

IoTVision

 

Sebastián Gómez, responsable de Desarrollo de Negocio, y Ayla Ruiz, consultora de la plataforma, pusieron en contexto a los estudiantes definiendo los orígenes, el presente y el futuro de la plataforma, así como las características principales de Sofia2 y sus capacidades

 

IMG_20180123_153430862

 

 

Además, presentaron los diferentes tipos de proyectos a los que aplica Sofia2, y contaron con la ayuda de Mario Briceño y Lucía Fernandez, ingenieros IoT de la plataforma, para explicar ejemplos prácticos de uso y alguna de las diferentes soluciones que existen actualmente que utilizan Sofia2 como base tecnológica.

 

IMG_20180123_160417

 

Los estudiantes del BIT mostraron mucho interés con la posibilidad de crear sus propios proyectos en el entorno de experimentación, disponible en el CloudLab Sofia2

 

¡¡Hasta pronto!!

Beijing Institute of Technology (BIT) meets Sofia2

Beijing Institute of Technology (BIT) meets Sofia2

IMG_20180123_153430862

 

In the context of “Winter School”, the collaboration framework between Polytechnic University of Madrid (UPM) and Beijing Institute of Technology (BIT), students from BIT visited Indra’s facilities in Madrid. Different Indra’s technological solutions were presented, highlighting the IoT approach based on Minsait IoT Sofia2 platform.

 

IoTVision

 

Sebastián Gómez, Business Development manager and Ayla Ruiz, platform consultant, introduced Sofia2 to the students, explaining its origin, present and future, as well as its main characteristics and capabilities.

 

IMG_20180123_153430862

 

They also presented the different types of projects where Sofia2 can be applied. They got help from Mario Briceño and Lucía Fernandez, IoT engineers, to explain practical examples and some of the different solutions that use Sofia2 as a technological base.

 

IMG_20180123_160417

 

BIT students showed great interest in creating their own projects using  CloudLabthe Sofia2’s experimentation environment.

See you soon!!

Beijing Institute of Technology (BIT) meets Sofia2

Sofia2 participa en el Laboratorio Virtual SESIAD

labVirtual

 

El Laboratorio Virtual de la Secretaría de Estado para la Sociedad de la Información y Agenda Digital (SESIAD) nace bajo la norma UNE 178104 “Sistemas integrales de gestión de la ciudad inteligente” con el objetivo de convertirse en una referencia de plataformas a nivel nacional e internacional, siendo un lugar de experimentación en el que empresas y desarrolladores puedan evaluar la compatibilidad de sus productos con diferentes plataformas Smart Cities.

 

labVirtual

 

Actualmente, plataformas que participan en el Laboratorio Virtual son Sofia2, de Minsait by Indra, SmartBrain de Cellnex y Thinking City de Telefónica. Éstas colaboran con SESIAD aportando su expertise y participando en la mejora de la interoperabilidad entre plataformas.

 

plataformas

 

Como vimos en IoT Data Models: Iniciativas y Sofia2 Data Modelexisten diferentes Iniciativas de estandarización de un Data Model en IoT. Un Data Model representa la estructura de tus datos y relaciones, y por tanto, organiza los elementos y estandariza como se relacionan unos con otros.

 

gsma1

 

Los Data Models GSMA y FIWARE se definen en JSON por lo que su representación como Ontología Sofia2 es inmediata. Vimos cómo se soportan y de qué manera tan sencilla se puede trabajar con estas entidades en Sofia2

 

Para conseguir una mejor interoperabilidad entre plataformas, se seleccionó NGSI 9/10 v2 como protocolo común para la Capa de Interoperabilidad. Vimos en este documento cómo se soportan y cómo consumir APIS modeladas conforme semántica FIWARE Data Model y publicadas en Sofia2 siguiendo el protocolo NGSI 9/10 v2.

 

En nuestra experiencia con el Laboratorio Virtual, además de realizar recomendaciones de nuevos atributos y modificaciones en los Data Model, hemos tenido la posibilidad de realizar una Prueba de Concepto (PoC) creando un Flujo de conexión y transformación de datos reales provenientes de Smart City A Coruña a GSMA/FIWARE Data Model en la Plataforma Sofia2.

 

En este ejemplo, se recogen datos de parkings de Smart Coruña y se ingestan en la plataforma Sofia2 a una Ontología. Cada vez que se recibe una instancia de esta ontología se lanza un Script que transforma estos datos adaptándolos a los Data Model y, consultándolos, vemos como efectivamente, se cumple con los Data Model.

 

flujodeconexion

 

También, en esta Prueba de Concepto, pudimos publicar estos datos por medio del API MANAGER de Sofia2, para posteriormente, ver que cualquiera con los debidos permisos, puede acceder a estos datos vía API, Curl o mediante el portal del Laboratorio Virtual.

 

consumodatos

 

Todo este proceso queda explicado en el post Adquisición, transformación y consumo de datos GSMA/FIWARE Data Model, y ha sido plasmado en el demostradorque, además de los datos de parkings, recoge datos de playas y museos.

 

demostrador

 

Puedes encontrar toda la información relativa al Laboratorio Virtual SESIAD aquí, así como todas las herramientas (Data Model, APIs, Tokens de seguridad, ejemplos…) necesarias para desarrollar en las plataformas cumpliendo con este modelo de interoperabilidad aquí

Sofia2 participa en el Laboratorio Virtual SESIAD

Integration of Lora and Sofia2

The communication between Lora and Sofia2 is done through the Multitech kit, formed by a test node that simulates the transmissions between a Lora device and a Gateway. This Gateway is needed to communicate this type of devices within the network and to send the captured data.

Kit
Used Multiconnect Conduit Kit.

Before the integration in Sofia2, the configuration between the Gateway and the test node is needed. In this brief tutorial, the steps to develop both configurations are collected, as well as all the information needed in Sofia2 to receive and store the data sent by Lora.

Configuration of Lora technology

  • Gateway configuration

    In order to use the gateway without any connection problem, an initial configuration is needed. First access to the Gateway must be done by means of serial communication, though Putty or another similar tool. Credentials needed to access by console are admin/admin. We can get its IP address with the command ifconfig. Once the IP address is known, we use the explorer to access to the Multitech webpage, where we introduce the same credentials again.

    Acceso web al gateway
    Access to the gateway webpage

    Once we start the session, and only by the first time that we do it, we will find an assistant that requires us to change the password, to select the timezone and to configure the IP address. When the last window appears, we must to configure the static IP, to select the corresponding Gateway, and to add the DNS servers.

    Once we finish the IP configuration, we will configurate Lora. To do that, we have to access to Setup -> Lora. Then, we will see a screen where we will see some configurable fields. Anyway, we only need to modify Name and Passphrases.

    Web
    Lora configuration
  • Node-Red configuration

    Once we activate the Node-Red application, we can access though the “App” menu of the webpage. By default, a program that receives Lora test data and shows them is designed, but we have to modify it in order to send the information to Sofia2. Image shows the final flow diagram, with the option “Sofia2 API WEB encoder” added. This option is uncharged of giving the desired format, adding a header to the send message and an output HTTP.

    Node-Red
    Node-Red diagram
  •  Configuration of test node

    To configurate the parameters of the test node is really simple. We only have to connect the mDot to the PC, by means of a USB, and to connect it to the test node with the kit programming cable. Then, we select the “Configuration” option in the mDot Box and we access to the device by using the Putty serial communication at 115200 baud.

    Tester
    Lora tester

    We only need to configure two parameters, using the following AT commands:

    AT+NI=1,<Name>

    AT+NK=1,<Passphrase>

    AT&W is used to save changes and  AT+Exit to exit the configuration mode.

    <Name> y <Passphrase> fields have to be the same values as used previously in the gateway.

    Configuración del tester
    Test node configuration

    In order to check if the configuration of both devices has been correct, we can do a test with the Node-Red.

Sofia2

Once that the devices have been configured, we have to develop the next steps in Sofia2. We need two new ontologies, an API rest and a rule script to deal with data. This section briefly explains with each of them.

  • Defining new ontologies

    First of all, we have to create an ontology that will receive the data sent by the test node. In this ontology we will insert raw data, without any previously filtering.

    ontologia
    Ontology example with raw data

    As we can see in the previous image, data usually have hexadecimal codifications, undesirable formats or information that needs to be treated before work with it. To do that, we have to create a rule script and a new ontology, where we will insert filtered data with the format required by the data base to correctly store it.

  • API REST

    Once the ontologies are defined, we will create an API REST of type POST, to insert data in the ontology of raw data. To do that, we have to go to the API MANAGER -> APIs, where we will find the option “New API”. There, we write the name of our API, and select the option “Publish Ontology as REST API” and the ontology desired. It is convenient to disable the maximum number of calls per minute, in order to assure that we do not lose information. At the end, we select the “POST” operation and create the API.

    API
    API

    The URL of the “Base Endpoint” field is the one that we have to insert in the Node-Red.

  • Rule script

    Once verified that the data sent directly from the device is correctly inserted in the desired ontology, we must create a script to filter them, extract all possible information and provide them with the corresponding format. To do this, we simply enter Rules-> Wizard New Rules and select the option “Generate rule using a template “. With this type of rules, each time the device sends new data to the ontology, the script will be executed and data will be processed and inserted into the final ontology.

  • Presentation on results

    We can use Sofia2’s visualization tools to show the data we’re storing quickly and easily. To do that, we have to go to the Visualization ->My Gadgets -> New Gadget, where we can select the optimal tool depending on our data. On the basic of measured data from Lora tester, the following representation could be interesting: to drawn the coordinates on a map or Signal to Noise Rate (SNR) along the time.

Mapa
Coordinates shows on a map
SNR
SNR representation.
Integration of Lora and Sofia2