Arduino y Sigfox

Sigfox: es una solución de conectividad celular mundial para el Internet of Things pensada para comunicaciones de baja velocidad que permite reducir los precios y el consumo de energía para los dispositivos conectados. La solución de conectividad SIGFOX se basa en una infraestructura de antenas y de estaciones de base totalmente independientes de las redes existentes.

Sigfox es una alternativa de amplio alcance, que en términos de alcance está entre Wi-Fi y la comunicación móvil. Utiliza bandas ISM, que se pueden utilizar sin necesidad de adquirir licencias. Sigfox responde a las necesidades de muchas aplicaciones M2M que funcionan con una batería pequeña y solo requieren niveles menores de transferencia de datos, allí donde WiFi se queda demasiado corto y la comunicación móvil es muy cara y consume demasiada energía.

Sigfox utiliza una tecnología llamada Ultra Narrow Band (UNB) diseñada para funcionar con bajas velocidades de transferencias de 10 a 1.000 bits por segundo.

Sigfox trabaja con fabricantes como Texas Instruments, Atmel, Silicon Labs y otros para poder ofrecer distintos tipos de SoC, transceptores y componentes de conexión a su red. En el caso de smartphones y tablets, actualmente no son compatibles con esta red, pero, al no tener licencia de uso, su inclusión sería realmente económica y sencilla.

La empresa que está haciendo el despliegue de la red de Sigfox en España es Cellnex Telecom antigua Abertis Telecom.

Cellnex:

Cómo funciona la red sigfox:

Los tres pilares de Sigfox son: bajo coste, eficiencia y alcance global

Así, basándose en los tres pilares fundamentales, las características más destacables de lo que ofrecen a sus clientes son las siguientes:

  • Frecuencias libres (ISM) resistentes frente a interferencias
  • Conectividad Ultra Narrow Band (UNB) bidireccional
  • Compatibilidad con los chips existentes
  • Conforme con ETSI y FCC
  • Eficiencia energética: han logrado que la autonomía de algunos productos se prolongue hasta 15 años
  • Conexión sencilla (plug & play)
  • Gestión basada en la nube
  • Cobertura internacional
  • Libre de derechos y royalties

Hardware Sigfox

Existen muchos dispositivos certificados por sigfox y pueden encontrarse en la sigfox partner network: https://partners.sigfox.com/

Dentro de los productos certificados por Sigfox lo divide:

Nosotros nos centramos en los kits de desarrollo, como por ejemplo el ATA8520 https://partners.sigfox.com/products/digikey que usa un microcontrolador ATMega328p como el Arduino UNO y el transceiver Atmel ATA8520D que también lleva el Arduino MKRFOX1200.

Entre los kits de desarrollo podemos destacar:

El Cesens mini de la empresa Riojana Encore lab es un ejemplo de un dispositivo certificado por Sigfox: https://partners.sigfox.com/products/cesens-mini

Todos estos dispositivos hay que darlos de alta en la red de Sigfox, aunque generalmente para los desarrolladores al comprar un dispositivo tenemos una suscripción de 1 o dos años a la red de Sigfox.

Comprar conectividad:https://buy.sigfox.com/ y precios: https://buy.sigfox.com/buy/offers/ES

Una vez hay un contrato, es necesario activar el kit de desarrollo en el backend de Sigfox: https://backend.sigfox.com/activate

Y ya podemos hacer nuestro proyecto con Sigfox. Muchos más proyectos con Sigfox: https://www.hackster.io/sigfox

Mensajes Sigfox

Los mensajes de Sigfox están diseñados para ser muy pequeños, optimizados para sensores y requerir sólo una pequeña cantidad de energía para transmitirlos. El payload de Sigfox está limitado a 12 bytes (excluyendo las cabeceras del payload). Un mensaje de ‘uplink’ desde un dispositivo a la estación base es enviado durante aproximadamente 6 segundos a un a velocidad de 100 bits/seg. Aunque pueda parecer una velocidad de información muy restringida, realmente hay muchas cosas que se pueden hacer con 12 bytes.

En el siguiente ejemplo muestra cómo con una estructura de 12 bytes mandar un conjunto de coordenadas GPS junto con velocidad, hora y voltaje de batería.

0 1 2 3 4 5 6 7 8 9 10 11
Lat. Lat. Lat. Lat. Lon. Lon. Lon. Lon. Vol. Sats. Acq. Spd.

Más información: http://makers.sigfox.com/getting-started/

El protocolo Sigfox soporta comunicación bidireccional. Esto significa que es posible configurar el módulo Sigfox para solicitar datos desde los servidores de Sigfox. A esto se le denomina mensaje ‘downlink’. El dispositivo Sigfox manda un mensaje de ‘uplink’ a los servidores de Sigfox solicitando un mensaje de ‘downlink’ y espera durante 30 segundos. El dispositivo espera recibir un mensaje con un payload de 8 bytes. Por la regulación ETSI, los dispositivos están limitados a 4 mensajes ‘downlink’ al día.

Debido a que el dispositivo inicia el mensaje de ‘downlink’, en lugar de la estación base, los mensajes de ‘downlink’ se usan comúnmente como configuración. Un ejemplo podría ser un dispositivo con múltiples sensores para recogida de datos que diariamente consulta los umbrales de alerta configurados en el dispositivo.

Explicación del downlink paso a paso: http://www.iotnet.mx/index.php/2017/03/02/el-downlink-de-sigfox-explicado-paso-paso/

Backend de Sigfox

Además de la red de Sigfox, tenemos los dos extremos de la comunicación: los dispositivos, emisores de mensajes, que están conectados a la red, y el punto final o backend de la comunicación, que recibe esos mensajes y los procesa para generar un resultado.

En el caso de SigFox, se ofrece el servicio llamado SigFox Cloud para el segundo propósito, que ofrece una aplicación web conocida como SigFox Backend. Desde ella, se pueden gestionar los dispositivos, visualizar los mensajes transmitidos por los mismos y configurar de integración de los datos, entre otros. Además, el servicio da la oportunidad de poder redirigir todo el volumen de información que llega al backend a cualquier aplicación ejecutada en un servidor o centro de procesamiento de datos.

Hay dos maneras de tomar los datos que recoge el backend de Sigfox:

  • Utilizando la API que proporciona el backend, basada en HTTP REST (GET o POST, indistintamente); la cual, en función del recurso pedido, devuelve un resultado concreto, con una carga útil con formato JSON.
  • Utilizando una URL de callback, identificando dicha URL a la aplicación web que desea recibir los mensajes. De esta forma, se registraría dicha URL en el backend, indicando los atributos que le interese recibir (por ejemplo, la carga útil del mensaje); y cada vez que llegase un mensaje al mismo, éste le reenviará los valores pedidos en un mensaje con formato, por ejemplo JSON.

Como hemos visto, el módem de radio de Sigfox envía ráfagas de datos a las antenas de la estación base. Idealmente, una señal es captada por más de una antena. El paquete de datos se demodula en la estación base y luego se envía al centro de datos de sigfox (backend). Luego, el centro de datos envía los datos recibidos a los suscriptores del servicio a través de servicios web de callback al estilo REST.

Centrándonos en el backend de SigFox, veamos las opciones de navegación que nos ofrece, con una breve explicación de cada una de ellas.

Cuando accedemos al portal, se nos presenta una página de bienvenida, que nos notifica de las nuevas funcionalidades incluidas en la página. También tenemos acceso a una lista de eventos de la red y a un mapa con la cobertura actual en el país. A través de la barra superior, podemos navegar por los distintos apartados de la página, diferenciando los siguientes (de izquierda a derecha):

  • Device: nos muestra los dispositivos registrados en el backend, distinguidos por un identificador único. Entre otras opciones; nos muestra estadísticas con el número de mensajes enviados diariamente, notificaciones de eventos surgidos durante la transmisión (como saltos en el número de secuencia, que indican pérdida de información), y sobre todo, los mensajes enviados; con la fecha de recepción, el contenido del mensaje (con la codificación elegida por el fabricante del dispositivo), su traducción a ASCII (si se han enviado caracteres), su localización (mostrando un rectángulo formado por la latitud/longitud, sin decimales, en la que se encuentra el dispositivo), información sobre redundancia, el nivel de la señal recibida (en dB), y la URL de callback a la que se redirige (de haberla).
  • Device Type: lista los tipos de dispositivos registrados en el backend. De esta forma, a cada conjunto de dispositivos le podemos asociar un tipo para gestionarlos de la misma manera. La opción más relevante a considerar en este apartado es el establecimiento de las URL de callback a cada tipo de dispositivo; pudiendo utilizar más de una URL para cada tipo, eligiendo entre GET o POST, y pudiendo seleccionar las variables que se desean obtener (entre otras; el identificador de dispositivo, la hora de llegada del mensaje, la potencia media de la señal, la latitud/longitud desde donde se envió el mensaje, o la carga útil).
  • User: muestra los usuarios, pertenecientes a un grupo, que tienen acceso al backend.
  • Group: gestiona los grupos configurados en el backend. A ellos se le pueden asociar usuarios, dispositivos o suscripciones. Además, SigFox le proporciona un usuario y contraseña para tener acceso a la API REST.
  • Billing: se encarga de las suscripciones a SigFox, incluyendo los servicios contratados, el número de mensajes máximo permitido o el precio de la suscripción, como aspectos más relevantes.
  • Información rápida del usuario: hace de resumen de la pestaña User, e incluye las direcciones IP con las que el usuario ha accedido al backend, junto la fecha de último acceso de cada una.
  • Redirección a la lista de eventos de red.
  • Ayuda online: dispone de documentación para el uso de callbacks y la API REST, información para el proceso de suscripción, y una breve mención al formato de los mensajes enviados.
  • Logout: para cerrar sesión.

Más información sobre el backend de Sigfox:

Lo primero que se debe hacer es registrar un dispositivo en la red de Sigfox: https://backend.sigfox.com/cms/section/52f8a5b593368ce020b924e1/info

Activar un dispositivo: https://backend.sigfox.com/activate

2 comentarios en «Arduino y Sigfox»

Deja una respuesta