Itinerario Formación IoT/Industria 4.0

En un acercamiento a esta disciplina, se busca conocer las tecnologías necesarias para el desarrollo de soluciones IoT/Industria Conectada y valiéndonos para ello de herramientas, tecnologías, protocolos y software libre/open source que hay a nuestra disposición, de forma que cualquier empresa por pequeña que sea pueda hacer un proyecto sencillo de IoT/Industria 4.0 con una inversión mínima, sea cual sea el sector al que pertenezca.

No solo las grandes empresas pueden dar el salto a IoT, la tecnologías libres permiten que sea factible la digitalización de las pymes con una inversión económica mínima y que surja la innovación desde las propias empresas con una formación adecuada a sus trabajadores.

Fundamentos IoT (Nivel 1)20 h
Dispositivos HW IoT (Nivel 2)20 h
Infraestructuras IoT (Nivel 3)20 h
Conectividad IoT (Nivel 3)20 h
Plataformas IoT (Nivel 4)20 h
Desarrollo Soluciones IoT con Herramientas Libres (Nivel 5)20 h

Ver Anexo I con el material necesario para impartir los cursos de este itinerario.

Fundamentos IoT (Nivel 1)

Objetivo

Describir los fundamentos de Internet de las Cosas e identificar los distintos mercados a los que el alumno puede orientar su actividad profesional.

Dado que las comunicaciones, la conexión a Internet y los dispositivos conectados es un aspecto importante actualmente y los conceptos de computación y comunicaciones van unidos de la mano cuando hablamos de las TIC (Tecnologías de la Información y de la Comunicación), vamos a tratar también en este curso las comunicaciones y la programación de los dispositivos conectados.

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer qué es IoT
  • Reconocer las tecnologías y arquitecturas de IoT
  • Capas en IoT
  • Saber los retos de IoT
  • Importancia de la seguridad den IoT
  • Empresas en IoT
  • Conocer los mercados verticales de IoT
  • Saber los servicios que ofrece IoT

Requisitos Alumnos

No son necesarios requisitos previos de los alumnos para asistir a este curso

Contenido del Curso

  • Qué es el IoT. Visión Holística
  • Ecosistema IoT
  • Retos de IoT
  • Industria 4.0. IIoT
  • Empresas en IoT
  • Mercados Verticales IoT
  • Campos Profesionales IoT
  • Aplicaciones IoT

Dispositivos HW IoT (Nivel 2)

Objetivo

Visión general del HW en el ecosistema IoT y puesta en práctica. Identificar la solución Hardware y Firmware más correcta para un proyecto IoT.

Analizar el hardware y el firmware utilizado dentro el ecosistema IoT y programar algunas las plataformas de prototipado más populares del mercado

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer las plataformas HW IoT 
  • Conocer el firmware usado en las plataformas HW
  • Identificar la solución Hardware y Firmware más correcta para un proyecto IoT
  • Utilizar plataformas de prototipado IoT

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en HW y Firmware IoT.

Contenido del Curso

  • Dispositivos IoT
  • HW IoT Industrial
  • Firmware: SW de los dispositivos
  • Plataforma de Prototipado
  • Prácticas Firmware
  • HW IoT Comercial

Infraestructuras de Comunicaciones IoT (Nivel 3)

Objetivo

Visión detallada de las infraestructuras y conectividad en IoT con ejemplos prácticos en algunas tecnologías. El alumno será capaz de analizar las necesidades de una solución IoT, ofrecer la mejor solución e implementarla. 

Utilizar las Infraestructuras de comunicación que se usan hoy en día para IoT

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer las diferentes infraestructuras de comunicaciones IoT disponibles en el mercado
  • Comparar las tecnologías inalámbricas y saber elegir la más adecuada dependiendo del proyecto.
  • Ofrecer e implantar soluciones IoT a nivel de conectividad e infraestructuras IoT a partir del análisis de necesidades del proyecto
  • Utilizar algunas de las comunicaciones con placas de prototipado como Arduino y ESP8266

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en infraestructuras y conectividad IoT.

Contenido del Curso

  • Conectividad IoT
  • Redes Inalámbricas IoT
  • Infraestructura de Comunicación IoT
  • Prácticas de Comunicaciones IoT

Conectividad IoT (Nivel 3)

Objetivo

Visión detallada de las infraestructuras y conectividad en IoT con ejemplos prácticos en algunas tecnologías. El alumno será capaz de analizar las necesidades de una solución IoT, ofrecer la mejor solución e implementarla. 

Analizar los protocolos más populares para dotar de conectividad a los dispositivos IoT y configurar el software

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer los protocolos más populares usados en IoT
  • Profundizar en el protocolo HTTP y el uso de API REST
  • Profundizar en el protocolo MQTT y su uso en aplicaciones IoT
  • Instalar, configurar y usar un broker MQTT
  • Ofrecer e implantar soluciones IoT a nivel de conectividad e infraestructuras IoT a partir del análisis de necesidades del proyecto

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en infraestructuras y conectividad IoT.

Contenido del Curso

  • Protocolos IoT
  • Protocolo HTTP
  • Uso de API REST
  • Protocolo MQTT
  • Práctica MQTT

Plataformas IoT (Nivel 4)

Objetivo

Visión general de las plataformas IoT y trabajo detallado en algunas de ellas. Proponer, instalar y configurar la plataforma más adecuada para el desarrollo de soluciones IoT.

Analizar las  las plataformas existentes en IoT e instalar y configurar alguna de las más utilizadas.

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer las plataformas IoT Generalistas y especializadas más usadas
  • Conocer plataformas open source, instalar y configurar en un servidor
  • Encontrar la plataforma adecuada para una solución IoT, instalación y configuración
  • Programar servicios usando Node-Red
  • Uso de Bases de Datos para almacenamiento de datos
  • Configuración y uso de Dashboards
  • Analizar datos de forma visual

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en plataformas IoT.

Contenido del Curso

  • Plataformas Cloud Generalistas
  • Plataformas Cloud Especializadas
  • Práctica de Plataformas Cloud
  • Plataformas Privadas/Libres
  • Práctica Plataformas Privadas/Libres
  • Servicios IoT
  • Node-Red
  • Bases de Datos
  • Dashboards
  • Ejemplos prácticos IoT

Desarrollo Soluciones IoT con Herramientas Libres (Nivel 5)

Objetivo

Este curso pretende unificar todos los conocimiento adquiridos en los anteriores cursos del itinerario IoT para hacer un proyecto “full stack” de IoT.

Unificar los conocimientos adquiridos en los otros cursos, identificar necesidades reales con respuestas desde el IoT y desarrollar una solución específica para una necesidad.

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Proponer e implementar soluciones IoT como respuesta a necesidades específicas
  • Desarrollar un proyecto IoT  estructurado según las fases relacionadas en cada módulo  que de respuesta a una necesidad real del entorno del alumno

Requisitos Alumnos

Los alumnos deberán haber cursado todos los cursos del itinerario IoT o tener experiencia en el desarrollo de soluciones IoT

Contenido del Curso

  • Repaso de conceptos
  • Ejemplo de soluciones IoT Completas
  • Identificación de necesidades
  • Presentación preliminar
  • Desarrollo del Proyecto
  • Presentación del Proyecto

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 usa la modulación de banda estrecha BPSK para hacer redes IoT de área amplia (WAN). LoRaWan usa un formato de modulación y sigfox usa otra modulación.

Al transmitir a través de un canal UNB, es decir, 200Hz de ancho en la señalización SIGFOX, se requiere poca potencia para transmitir datos a distancias considerables con poca fecha de datos de aire. Los sistemas UNB se usan frecuentemente en un solo sentido, desde un sensor (dispositivo terminal) hasta una estación base, pero es posible que se requieran servicios bidireccionales de vez en cuando. Por ejemplo, un sensor en un aparcamiento que indica si un espacio en particular está vacío solo tiene que transmitirse una vez cuando un automóvil ingresa al espacio, y una vez más cuando un automóvil se va y opcionalmente abre su receptor unas cuantas veces cada hora para escuchar comandos del sistema.

SIGFOX es relativamente único en este mercado, como controlador de tecnología y proveedor de servicios, al ofrecer la certificación de módem para que el dispositivo compatible con SIGFOX se pueda suscribir a la red únicamente administrada por SIGFOX Network Operator (SNO). Esto es similar al operador de telecomunicaciones en el negocio celular, excepto que solo se enfoca en OBJETOS CONECTADOS. Su beneficio es el chipset disponible comercialmente que permite acelerar el crecimiento del mercado y la adopción temprana de tecnología. El servicio SIGFOX está actualmente disponible en 45 países en todo el mundo en 2018 https://www.sigfox.com/en/news/sigfox-expands-its-global-network-45-countries

Buena explicación de Adafruit para LoRa y Sigfox: https://learn.adafruit.com/alltheiot-transports/lora-sigfox

Ultra Narrow Band (UNB)

UNB, Ultra Narrow Band, tecnología de modulación utilizada por LPWAN por varias compañías, incluyendo:

  • Sigfox, UNB-based technology de origen francés.
  • Telensa: https://www.telensa.com/
  • NB-IoT, otro estándar de banda estrecha iniciado y completado por 3gpp con su lanzamiento de la serie de estandarizaciones de IoT. Más inforamción: https://en.wikipedia.org/wiki/NarrowBand_IOT
  • Nwave, es una empresa que hace cosas muy similares a SIGFOX utilizando el estándar Weightless. Usa una tecnología patentada desarrollada en cooperación con MIT. Su primera versión sin códigos de corrección de errores, también forma la base del protocolo abierto Weightless-N.
  • Weightless, a set of communication standards from the Weightless SIG
  • Neul, el concepto de este sistema es similar al de Sigfox y funciona en la banda sub-1GHz. Neul Utiliza la infraestructura actual móvil 4G para una solución NB-IoT
  • Z-Wave es una tecnología RF de bajo consumo diseñada inicialmente para productos de domótica como controladores de iluminación y sensores. Optimizado para la comunicación fiable de baja latencia de pequeños paquetes de datos, alcanza velocidades de datos de hasta 100kbit/s, opera en la banda de sub-1 GHz y es robusta frente a interferencias de Wi-Fi y otras tecnologías inalámbricas en el rango 2,4 GHz como Bluetooth o ZigBee. Más información: https://en.wikipedia.org/wiki/Z-Wave

Ultra Narrow Band (UNB) generalmente se refiere a la tecnología que transmite por un canal de espectro muy estrecho, es decir <1KHz, para lograr un enlace de larga distancia (5 km en el área urbana o 25km en campo abierto) para el enlace de datos entre el transmisor y el receptor. Esto tiene sentido desde el punto de vista teórico debido a la excelente relación entre la potencia y el ruido de recepción bajo en banda (los filtros de recepción estrechos  eliminan la mayor parte del ruido). Una alternativa es usar comunicación de banda ancha, alta velocidad de datos y agregar ganancia de codificación (como CSS en LORA). Sin embargo, dado el mismo rendimiento neto de datos, ambos sistemas tendrán un rango similar.

Más sobre UNB:

UNB solo permite un operador en una frecuencia libre, en españa es Sigfox operado por Cellnex.

Tecnología Sigfox

SigFox se encuentra disponible a través de los principales proveedores de chips y módulos del mercado (entre otros; Silicon Labs, Texas Instrument, Intel, Telecom Design, o ETSI), ofreciéndoles soporte y facilidades para la integración de sus equipos en la red. SigFox, que busca la normalización de sus soluciones para la comunicación en el IoT, permite así la interoperabilidad entre equipos de distintos fabricantes. Además de este soporte, SigFox ofrece la posibilidad de certificar los dispositivos con la marca SigFox Ready. Este proceso pretende clasificar los dispositivos en función de la cobertura y el alcance radio al que pueden tener acceso, con categorías de 0 a 3; siendo la 0 la que mejor calidad radio ofrece, y la 3 la que da una calidad más baja.

Una vez fabricados y certificados los dispositivos, queda desarrollar aplicaciones para ellos, de manera que se podrían reemplazar soluciones existentes porque el uso de SigFox fuese más conveniente en diversos campos de estudio, o bien se podrían desarrollar aplicaciones completamente nuevas e innovadoras para su introducción en el mercado.

SIGFOX emplea un sistema de tipo celular que permite que los dispositivos remotos se conecten usando tecnología de banda ultraancha (UNB).

Sigfox en Cellnex. https://www.cellnextelecom.com/productos-y-servicios/smart-cities-iot-seguridad/internet-of-things/

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

Interesante Comparativa de  redes LPWAN: https://www.sciencedirect.com/science/article/pii/S2405959517302953

Red Sigfox

SIGFOX es muy simple: ni códigos, ni configuración, ni peering. Busca algo sencillo y que el usuario no tenga que estar insertando códigos, PINs o claves complejas, por ello se adapta tan bien al IoT.

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.

Lo cierto es que la red SIGFOX, por el uso que hace de los datos, tiene más de inspiración en el telégrafo o en Twitter que en las redes de banda ancha.

El enlace de radio SIGFOX utiliza bandas de radio ISM sin licencia. Las frecuencias exactas pueden variar de acuerdo a las regulaciones nacionales, pero, en Europa, la banda de 868 MHz es la más utilizada mientras que en EE UU es la de 915 MHz. La densidad de las células en la red SIGFOX se basa en un rango promedio de unos 30-50km en las zonas rurales. En las zonas urbanas, donde hay más obstáculos y el ruido es mayor, la densidad podrá reducirse a entre 3 y 10 km . Las distancias pueden ser mucho mayores para los nodos al aire libre, donde SIGFOX ha conseguido alcances de más de 1.000 kilómetros, lo que la hace especialmente adecuada para zonas despobladas o lejanas.

SigFox para la comunicación, proporciona una infraestructura de telecomunicación ya construida e independiente de cualquier red existente, con un bajo ancho de banda, y mejor adaptado a la transmisión de mensajes pequeños frente a otras alternativas, como LoRa. El uso del backend de SigFox (https://backend.sigfox.com/) como punto final de la comunicación, que recibirá los datos enviados por el módem y los presentará a través de su página web. Estos mensajes se reenviarán, mediante callback, a servicios externos para la generación de estadísticas y alarmas en tiempo real, haciendo innecesario el gateway que se usa con LoRa.

Redes LPWAN

Una red de área amplia de baja potencia (LPWAN – Low-Power Wide-Area Network) o red de baja potencia (LPWA – Low-Power Wide-Area) o red de baja potencia (LPN – Low-Power Network) es un tipo de red de área amplia de telecomunicaciones inalámbricas diseñada para permitir comunicaciones de largo alcance a una velocidad de bits baja entre objetos conectados, como sensores operados con una batería. La baja potencia, la baja velocidad de bits y el uso previsto distinguen este tipo de red de una WAN inalámbrica en que la WAN está diseñada para conectar usuarios o empresas, y transportar más datos, utilizando más potencia. La tasa de datos LPWAN varía de 0,3 kbit/s a 50 kbit/s por canal.

Las redes LPWAN trabajan en la banda ISM libres sin necesidad de licencia.

Redes LPWAN: https://en.wikipedia.org/wiki/LPWAN

Banda ISM

ISM (Industrial, Scientific and Medical) son bandas reservadas internacionalmente para uso no comercial de radiofrecuencia electromagnética en áreas industrial, científica y médica. En la actualidad estas bandas han sido popularizadas por su uso en comunicaciones WLAN (e.g. Wi-Fi) o WPAN (e.g. Bluetooth).

El uso de estas bandas de frecuencia está abierto a todo el mundo sin necesidad de licencia, respetando las regulaciones que limitan los niveles de potencia transmitida. Este hecho fuerza a que este tipo de comunicaciones tengan cierta tolerancia frente a errores y que utilicen mecanismos de protección contra interferencias, como técnicas de ensanchado de espectro

Espectro electromagnético:

Más información:

Bandas ISM:

Frecuencias de LoRa:

En Europa, la banda de 863 a 870 MHz ha sido asignada para operación sin licencia usando FHSS, DSSS o modulación analógica con un ciclo de transmisión de 0.1%, 1% o 10% dependiendo de la banda, o Listen Before Talk (LBT) con Adaptive Frequency Agility (AFA). Aunque esta banda pertenece al rango de dispositivos de corto alcance, se está utilizando en redes de telecomunicaciones inalámbricas de red de área extensa de baja potencia (LPWAN), diseñadas para permitir comunicaciones de largo alcance a una velocidad de bits baja entre objetos (objetos conectados).

Dentro de las bandas libres existen varias posibilidades:

  • Banda 2,4 GHz usando WiFi, Bluetooth o Zigbee.
  • Banda 5 GHz usado WiFi
  • Banda de 868 MHz con opción de usar Zigbee, LoRa o Sigfox
  • Banda de 434 MHz.
  • Frecuencias RFID (13,56 MHz, 125 kHz, etc).

El standard de 868 MHz porque ofrece unas características superiores en cuanto al alcance (es 2 o 3 veces mayor que los standards mencionados anteriormente en la banda de 2,4 GHz). El coste de la implementación es relativamente bajo. El consumo de energía es bajo.

La versión de 868 MHz no está disponible en todo el mundo. En los EEUU se requiere una banda de 915 MHz. El hardware para ambos standards es idéntico sin embargo requieren versiones de software distintas.

La banda de 433 MHz es ligeramente mejor respecto al alcance pero no garantiza una transmisión segura de los datos. Debido a que muchos dispositivos trabajan en esta banda, especialmente controles remotos, es frecuente que se produzcan perturbaciones en la transmisión.

868 vs 433: http://www.hkvstar.com/technology-news/433mhz-or-868mhz-wireless-alarm-system-what-s-the-difference.html

Las frecuencias RFID no sirven para medidas de temperatura ya que presentan un alcance muy reducido. Estas frecuencias se suelen utilizar en etiquetas pasivas donde el alcance está limitado a menos de un metro.

LoRa es una modulación patentada dentro de la banda ISM de 868 MHz.

La radio sub-GHz no está diseñada para transmitir audio o video. Se usa mejor para pequeños paquetes de datos. La velocidad de datos es ajustable, pero es común mantener alrededor de 19.2 Kbps. Las velocidades de datos más bajas tendrán más éxito en sus transmisiones.

LPWAN

Una red de área amplia de baja potencia (LPWAN – Low-Power Wide-Area Network) o red de baja potencia (LPWA – Low-Power Wide-Area) o red de baja potencia (LPN – Low-Power Network) es un tipo de red de área amplia de telecomunicaciones inalámbricas diseñada para permitir comunicaciones de largo alcance a una velocidad de bits baja entre objetos conectados, como sensores operados con una batería. La baja potencia, la baja velocidad de bits y el uso previsto distinguen este tipo de red de una WAN inalámbrica en que la WAN está diseñada para conectar usuarios o empresas, y transportar más datos, utilizando más potencia. La tasa de datos LPWAN varía de 0,3 kbit/s a 50 kbit/s por canal.

Una LPWAN se puede usar para crear una red privada de sensores inalámbricos, pero también puede ser un servicio o infraestructura ofrecida por un tercero, lo que permite a los propietarios de sensores implementarlos en el campo sin invertir en tecnología ni infraestructura.

Redes LPWAN: https://en.wikipedia.org/wiki/LPWAN

Hay una serie de estándares y proveedores que compiten en el espacio LPWAN, el más destacado de los cuales incluye:

  • LoRa: LoRa es una tecnología patentada de modulación de radio de espectro expandido (CSS) para LPWAN utilizada por LoRaWAN, Haystack Technologies y Symphony Link.
  • LoRaWan: LoRaWAN es un protocolo de capa de control de acceso a medios para gestionar la comunicación entre las pasarelas LPWAN y los dispositivos de nodo final, mantenidos por LoRa Alliance.
  • Ultra Narrow Band (UNB): UNB, Ultra Narrow Band, tecnología de modulación utilizada por LPWAN por varias compañías entre ellas Sigfox
  • Otros: DASH7, MySensors, NarrowBand IoT (NB-IoT), etc…

Comparativa LPWAN:

Mercado LPWAN:

El ecosistema LPWAN comprende proveedores como Semtech Corporation (EE. UU.), LORIOT (Suiza), NWave Technologies (Reino Unido), SIGFOX (Francia), WAVIoT (Texas, EE. UU.), Actility (Francia), Ingenu (San Diego, EE. UU.) , Link Labs (Maryland, EE. UU.), Weightless SIG, y Senet, Inc. (Portsmouth, Reino Unido), ResIOT (Italia) y otros como proveedores de servicios y empresas. Otras partes interesadas en el mercado de redes LPWAN incluyen operadores de telecomunicaciones como Vodafone (U.K.) y Orange (Francia), entre otros, que integran estos dispositivos inteligentes y los venden a los usuarios finales para satisfacer sus requisitos comerciales únicos.

Más información LPWAN (área extensa de baja energía):

LoRaWAN

LoRaWAN es una especificación para redes de baja potencia y área amplia, LPWAN (en inglés, Low Power Wide Area Network) propuesta por la LoRa Alliance, diseñada específicamente para dispositivos de bajo consumo de alimentación, que operan en redes de alcance local, regional, nacionales o globales. La especificación cubre las capas PHY y MAC de la red, dejando a las aplicaciones el resto de capas. En la banda ISM de 868MHz (915 MHz en otras regiones), con un bitrate de hasta decenas de kbps (de 0.3 kbps hasta  50 kbps).

El estándar de red LoRaWAN apunta a requerimientos característicos de Internet de las Cosas, tales como conexiones bidireccionales seguras, bajo consumo de energía, largo alcance de comunicación, bajas velocidades de datos, baja frecuencia de transmisión, movilidad y servicios de localización. Permite la interconexión entre objetos inteligentes sin la necesidad de instalaciones locales complejas, y además otorga amplia libertad de uso al usuario final, al desarrollador y a las empresas que quieran instalar su propia red para Internet de las Cosas.

La red LoRaWAN (Long Range) es interesante por:

  • Consume tan poco que permite que los dispositivos puedan funcionar años con batería. Para conseguir esto se activa de forma periódica.
  • Tiene un gran alcance que permite llegar a los equipos de difícil acceso (garajes, sótanos, montañas)
  • Ser una red bidireccional
  • Velocidades de datos desde 0.3 kbps a 50 kbps
  • LoRa es una tecnología de comunicación muy interesante en el ámbito IoT.

Elementos en una red LoRa:

  • Dispositivo LoRa
  • Gateway o Pasarela
  • Red IP pública – Cloud
  • Servicios

La arquitectura de red típica, es una red de Redes en Estrella, de forma que la primera estrella está formada por los dispositivos finales y las puertas de enlace, y la segunda estrella está formada por las puertas de enlace y un servidor de red central. En este caso las puertas de enlaces son un puente transparente entre los dispositivos finales y el servidor de red central. Uno o más dispositivos finales se conectan a una o más puertas de enlace, mediante una conexión inalámbrica de un solo salto, usando tecnología RF LoRa™ o FSK, formando así una red en estrella.

Una o más puertas de enlace se conectan al servidor de red central por medio de conexiones IP estándar, formando así una red en estrella. Las comunicaciones entre los dispositivos y el servidor de red, son generalmente unidireccionales o bidireccionales, pero el estándar también soporta multidifusión, permitiendo la actualización de software en forma inalámbrica, u otras formas de distribución de mensajes en masa.

La comunicación entre dispositivos finales y las puertas de enlace se hacen en diferentes canales de frecuencias y a distintas velocidades de datos. La selección de la velocidad de datos es un compromiso entre la distancia de alcance, y la duración y consumo de energía del mensaje.

Las velocidades de datos se encuentran en el rango de 0.3 kbps a 50 kbps. Para maximizar en forma conjunta la duración de la batería de los dispositivos finales y la capacidad de la red, el servidor central LoRaWAN maneja la velocidad de datos para cada dispositivo en forma individual, por medio de un esquema adaptativo de velocidad de datos (o ADR, adaptive data rate en inglés).

Más información: https://es.wikipedia.org/wiki/LoRaWAN

LoRaWAN es un protocolo de capa de control de acceso a medios para gestionar la comunicación entre las pasarelas LPWAN y los dispositivos de nodo final, mantenidos por LoRa Alliance.

LoRaWAN define el protocolo de comunicación y la arquitectura del sistema para la red, mientras que la capa física LoRa habilita el enlace de comunicación de largo alcance. LoRaWAN también es responsable de gestionar las frecuencias de comunicación, velocidad de datos y potencia para todos los dispositivos. Los dispositivos en la red son asincrónicos y transmiten cuando tienen datos disponibles para enviar. Los datos transmitidos por un dispositivo de nodo final son recibidos por múltiples puertas de enlace (gateway), que reenvían los paquetes de datos a un servidor de red centralizado. El servidor de red filtra paquetes duplicados, realiza comprobaciones de seguridad y administra la red. Los datos se envían a los servidores de aplicaciones.

Las principales características de LoRaWAN son:

  • Topología estrella
  • Alcance de 10 a 15km en línea de vista
  • Encriptación AES 128
  • Soporte para 3 clases de nodos
  • Administración de dispositivos
  • Redes públicas y privadas
  • Bajo consumo y largo alcance
  • Baja transferencia de datos (hasta 242 bytes)

Algunas plataformas basadas en LoRaWAN incluyen:

  • Globalsat, both a public LoRaWAN and private LoRa Nodes solution provider for WW, include Europe, US, Asia region and Japan market
  • ThingsConnected, a free platform provided by the UK Digital Catapult
  • iFrogLab, public LoRaWAN and LoRa provider for North America and Taiwan
  • IoT-X, platform from Stream Technologies for public and private networks
  • ResIOT.io, platform for private, public networks and IoT projects
  • OpenChirp, open management layer on top of LoRaWAN, developed at Carnegie Mellon University, for data context, storage, visualization, and access control.The primary objective is to simplify the experience of adding and operating new devices in the network, as well as improving performance for communities that share bandwidth and locality.
  • The Things Network, a free and open-source LoRaWAN network provider developed and supported by a worldwide community. https://www.thethingsnetwork.org/
  • Everynet, provides a platform and gateways for Lora use in the Americas, Europe, China.
  • ThingPark Wireless, platform from Actility based on LoRaWAN
  • Senet, public LoRaWAN provider in North America
  • Un operador de LoRaWAN que ofrece gateways y un plataforma cloud es LORIOT: https://www.loriot.io/

Redes LoRaWan en Korea y Holanda: https://www.rcrwireless.com/20160704/carriers/operators-korea-netherlands-deploy-lora-networks-iot-tag23

Lora Alliance:

The things network (TTN)

The Things Network está construyendo una red para el Internet de las cosas mediante la creación de abundante conectividad de datos. La tecnología utilizada es LoRaWAN y permite que las cosas hablen a Internet sin 3G o WiFi. No hay códigos WiFi ni suscripciones a dispositivos móviles. Presenta bajo consumo de batería, largo alcance y bajo ancho de banda. Perfecto para Internet de las cosas.

The Things Network (TTN) es una iniciativa basada en la comunidad para establecer una red global de IoT. La iniciativa fue lanzada por Wienke Giezeman en 2015 y actualmente cubre más de 3.000 pasarelas LoRaWAN instaladas en más de 90 países. Los voluntarios se encargan de la construcción, el cuidado y el pago de los portales.

En Amsterdam, ha sido posible cubrir gran parte del área urbana en solo unas pocas semanas. Los Países Bajos ya están ampliamente abastecidos con TTN. Lo mismo se aplica a Zurich, Berna y Berlín. En Berlín, se necesitaron solo nueve meses para brindar acceso a LoRaWAN a aproximadamente 3,500,000 personas.

Más de 30,000 voluntarios de todo el mundo participan ahora en la creación del “Internet de las cosas” (IoT) en red más grande del mundo.

Más información:

Interesante artículo sobre el uso de TTN con MQTT:  https://sandervandevelde.wordpress.com/2016/07/09/access-the-things-network-telemetry-using-c-m2mqtt/

Web: https://www.thethingsnetwork.org/

The things gateway: https://www.thethingsnetwork.org/docs/gateways/gateway/

Lista de gateways de thethingsnetwork:

Productos de the things network: https://www.element14.com/community/docs/DOC-83471

Wiki: https://www.thethingsnetwork.org/wiki/Hardware/Gateways/Home

Más información:

LoRa

LoRa es un nuevo esquema de modulación para radios de baja potencia. Está patentado, por lo que hay algo de información disponible. Pero también es propietario, lo que significa que necesita una licencia para producir un chip de radio que use la codificación. LoRa se comercializa como una red de área amplia para Internet de las cosas.

LoRa es una tecnología patentada (EP2763321 de 2013 y US7791415 de 2008) desarrollada por Cycleo (Grenoble, Francia) y adquirida por Semtech en 2012. LoRa utiliza bandas de frecuencia de radio subgigahertz sin licencia como 169 MHz, 433 MHz, 868 MHz (Europa) y 915 MHz (América del Norte).

El formato de modulación de LoRa puede ser generado por piezas Semtech LoRa, incluidos los chips transceptores SX1272 y SX1276. Es una forma económica y eficiente de obtener ganancia de procesamiento en un pequeño transceptor a escala de chip. Funciona con una familia de chips de estación base altamente integrados (SX1301 y SX1257) con alta capacidad, por lo que puede usarla para construir redes punto a multipunto bastante sofisticadas. Más información en https://www.link-labs.com/blog/what-is-lora

La tecnología LoRa de Semtech ofrece características excepcionales como alta sensibilidad de recepción y modulación de espectro ensanchado que permite a estas radios aumentar drásticamente el rango a bajas tasas de bits, mientras sigue funcionando con una potencia de salida de batería (20dBm / 100mW) y modo de reposo de potencia ultrabaja. Estas radios también son compatibles con las modulaciones FSK, pero están destinadas a ser utilizadas con la tecnología de modulación LoRa (Long Range).

Transceivers de LoRa: https://www.semtech.com/products/wireless-rf/lora-transceivers

LoRa es el tipo de modulación en radiofrecuencia patentado por Semtech y que entre sus principales ventajas se encuentra:

  • Alta tolerancia a las interferencias
  • Alta sensibilidad para recibir datos (-168dB)
  • Basado en modulación chirp
  • Bajo Consumo (hasta 10 años con una batería*)
  • Largo alcance 10 a 20km
  • Baja transferencia de datos (hasta 255 bytes)
  • Conexión punto a punto
  • Frecuencias de trabajo: 915Mhz América, 868 Europa, 433 Asia

LoRa quizá sea más adecuada para usar en aplicaciones discretas como edificios inteligentes o campus donde uno es necesaria una red celular. LoRaWAN se refiere a redes públicas amplias basadas en LoRa.

Moteino son una placas basadas en Arduino pensadas para bajo consumo con LoRa: https://lowpowerlab.com/guide/moteino/lora-support/

LoRa vs Zigbee: http://www.rfwireless-world.com/Terminology/LoRa-vs-Zigbee.html

LoRaWan vs Sigfox

Lora pros:

  • De uso gratuito, puede configurar su propia red
  • Envía tantos mensajes como quieras, a buenas velocidades de hasta 50 Kb/s
  • Alcance muy largo (algunos kilómetros en ciudades, hasta 40 km en áreas rurales con antenas direccionales)
  • Bastante poca potencia, dependiendo de la amplificación de su radio, no tan baja como BTLE pero mucho mejor que la celular
  • Coger y elegir la frecuencia que legalmente está permitido usar

Lora contras:

  • Debe administrar su propia red y gateways
  • Chips solo disponibles de SemTech, y bajo patente

Sigfox pros:

  • Red de backend incluida
  • Alcance muy largo (algunos kilómetros en ciudades, hasta 40 km en áreas rurales con antenas direccionales)
  • Muy poca potencia

Sigfox contras

  • Servicio pago por suscripción
  • Ultra lento: 100 bytes / seg
  • No disponible en todas partes, comprobar cobertura https://www.sigfox.com/en/coverage
  • Limite mensajes de subida de 140 x 12 bytes y mensajes de descarga de 4 x 8 bytes al día.
  • Frecuencia fija por ubicación

Buena explicación de Adafruit para LoRa y Sigfox: https://learn.adafruit.com/alltheiot-transports/lora-sigfox

Más información de sigfox y lora https://www.linkedin.com/pulse/iot-how-connect-devices-vasco-barreiros

Interesante: https://austinstartups.com/carriers-aim-to-crush-lora-sigfox-and-others-4d38adc8cc32

Transceivers LoRa

Existen muchos módulos LoRa disponibles en el mercado que podemos usar con Arduino usando las librerías que nos proporcionan.

Semtech

Semtech fabrica diversos módulos LoRa. Los módulos Lora de Semtech son: https://www.semtech.com/products/wireless-rf/lora-transceivers y los gateways: https://www.semtech.com/products/wireless-rf/lora-gateways

El SX1272 es un módulo de Semtech LoRa https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1272

Datasheet: https://www.semtech.com/uploads/documents/sx1272.pdf

Otros módulos de Semtech: https://www.semtech.com/products/wireless-rf

Microchip

Microchip fabrica diversos módulos LoRa RN2903 y RN2483. Ver https://www.microchip.com/design-centers/wireless-connectivity/low-power-wide-area-networks/lora-sup-reg-sup-technology

Comprar: https://www.digikey.es/es/product-highlight/m/microchip-technology/rn2903-and-rn2483-rf-transceiver-modules

Módulo LoRa de Microchip:

Datasheet:

Es un excelente módulo que implementa completamente la pila LoRaWAN. El microcontrolador se comunica con él a través de USART con una estructura de comando simple para configurarlo y enviar / recibir mensajes. El módulo también tiene varios pines GPIO disponibles. Este es el módulo preferido en The Things Network, y hay muchos excelentes proyectos de ejemplo y códigos en Internet para ayudarlo a comenzar.

Hoperf

Hoperf fabrica diversos módulos Lora:http://www.hoperf.com/rf_transceiver/lora/

Los módulos de RFM son pequeños y baratos, lo cual es ideal para proyectos de IoT. Sin embargo, tienen una limitación si desea usarlos con LoRaWAN: la pila no está implementada en el módulo, dejando esa carga al microcontrolador. La pila LoRaWAN requiere bastante espacio de código y es difícil de implementar en algunos microcontroladores de 8 bits.

RFM95W: http://www.hoperf.com/rf_transceiver/lora/RFM95W.html

RFM96W: http://www.hoperf.com/rf_transceiver/lora/RFM96W.html

RFM98W: http://www.hoperf.com/rf_transceiver/lora/RFM98W.html

Datasheet módulos LoRa: http://www.hoperf.com/upload/rf/RFM95_96_97_98W.pdf

Estos son los módulos usados por Moteino: https://lowpowerlab.com/guide/moteino/

Hoperf fabrica otros módulos Sub-GHz como el RFM69 que no usanLora: http://www.hoperf.com/rf_transceiver/

Placa con RFM95/96(W):

LoRa Shield como módulo RFM: https://www.seeedstudio.com/Dragino-LoRa-Shield-support-433M-frenquency-p-2672.html

Otros

Existen otros fabricante de módulos Lora como:

Demo MKRFOX1200

Medición de temperatura y humedad con un Arduino MKRFOX1200 y sistema simple de alarma basado en un umbral superior. Integración en un servidor propio https://www.aprendiendoarduino.com/ y en thingspeak https://thingspeak.com/

Hardware utilizado:

En esta demo demuestra la potencia de la red Sigfox para IoT, usando un sistema simple se va a medir la temperatura y humedad ambiente de forma inalámbrica y con total movilidad. Se usa un sensor de temperatura y humedad DHT22 conectado al MKRFOX1200 que manda mensajes con los datos cada 30 segundos para esta demostración. Para no llegar al límite diario de mensajes de Sigfox habría que hacerlo cada 10 minutos.

En el mensaje se mandan 3 datos:

  • Temperatura (5 bytes en ASCII). De -9.00 a 99.99
  • Humedad (5 bytes en ASCII). De 00.00 a 99.99
  • Evento de alarma (1 byte ASCII). 0 = normal (no event), 1 = alarm triggered, 2 = restore alarm.

Lo mando todo como texto para simplificar todo, pero si puede mandar los float y ahorrar un byte. Un buen ejemplo de base para mandar un float y convertir diferentes tipos de datos para mandar por sigfox: https://github.com/nicolsc/sigfox-weather-station

El propio Arduino detecta la alarma de alta temperatura y manda en el byte de alarma el evento, cuando la alarma se recupera manda un nuevo evento de recuperación.

Puesto que desde el backend de Sigfox no es capaz de distinguir cuando es una alarma o no, ya que solo puede reenviar los datos del mensaje mandado por el dispositivo sigfox, estos datos se reenvían mediante dos callbacks a:

En ambas plataformas la misión es almacenar los datos, representarlos gráficamente y analizar el mensaje y mandar el evento de alarma cuando corresponda. Incluso desde cualquiera de las dos plataformas, se podría hacer la comprobación de alarma al superar el umbral en lugar de mandarlo por mensaje Sigfox. Estas son las tareas que el backend de Sigfox no puede hacer.

La ventaja de usar un servidor/plataforma propia es que los datos los guardamos en nuestra infraestructura y son accesibles para siempre. Para el caso de la plataforma propia aprovechamos para guardar datos adicionales y aprender más de Sigfox:

Y desde la BBDD podríamos ver los valores máximos y mínimos de RSSI y SNR.

El código a cargar en Arduino es https://github.com/jecrespo/AprendiendoArduino-Sigfox

Dispositivos Sigfox y Lora recogiendo datos en campo:

Una vez cargado el código en Arduino y el dispositivo registrado en el backend de Sigfox ya podemos ver los los mensajes en el backend, dentro de device apartado messages.

Los datos del mensaje en el backend se ven en HEX, para comprobar que lo enviado es correcto se puede usar este conversor a ASCII: https://www.rapidtables.com/convert/number/hex-to-ascii.html

Desde el backend las funciones que se pueden hacer con los datos son muy limitadas, así que con el uso de las callbacks podemos reenviar estos datos a plataformas externas.

Estas callbacks transfieren los datos recibidos de los dispositivos asociados al device type a su infraestructura. Para obtener más información, consulte la documentación de callback: https://backend.sigfox.com/apidocs/callback

Las callbacks están asociadas a los device type, he creado dos callbacks una para mandar los datos a la plataforma propia https://www.aprendiendoarduino.com/ y otra para reenviar los datos a thingspeak https://thingspeak.com/

Para  https://www.aprendiendoarduino.com/ el callback es:

Y el código que guarda los datos en la BBDD y manda los mensajes de alarma está hecho en PHP y el código está en: https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/sigfox y además de guardar los datos en una BBDD, las temperaturas los guarda en otra BBDD para representar gráficamente y se encarga también del envío de alarmas.

Y veo los datos en tiempo real:

Para la plataforma thingspeak: https://thingspeak.com/, hago una llamada a la API de sigfox para actualizar: https://api.thingspeak.com/update.json?api_key=writeapikey&field2={customData#humidity}&field1={customData#temperature}

El callback es:

Este es un esquema de lo que estamos haciendo:

Lo que hago es desde el backend de sigfox es reenviar los datos a la plataforma IoT:

Desde thingspeak hay que configurar un canal con los campos temperatura y humedad y podemos dar una vista pública que puede verse en https://thingspeak.com/channels/440162

Arduino MKRFOX1200

La apuesta de Arduino por sigfox se llama Arduino MKRFOX1200: https://store.arduino.cc/arduino-mkrfox1200 que se presentó en el Arduino Day de 2017.

Esta placa lleva un microcontrolador Atmel SAMD21 de 32 bits como el resto de la familia MKR de Arduino y un módulo Sigfox ATA8520 también de Atmel.

Microcontrolador: http://www.atmel.com/Images/Atmel-42181-SAM-D21_Summary.pdf

Módulo sgifox: http://www.atmel.com/Images/Atmel-9372-Smart-RF-ATA8520_Datasheet.pdf

Características técnicas:

Microcontroller SAMD21 Cortex-M0+ 32bit low power ARM MCU
Board Power Supply (USB/VIN) 5V
Supported Batteries 2x AA or AAA
Circuit Operating Voltage 3.3V
Digital I/O Pins 8
PWM Pins 12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 – or 18 -, A4 -or 19)
UART 1
SPI 1
I2C 1
Analog Input Pins 7 (ADC 8/10/12 bit)
Analog Output Pins 1 (DAC 10 bit)
External Interrupts 8 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 – or 17)
DC Current per I/O Pin 7 mA
Flash Memory 256 KB
SRAM 32 KB
EEPROM no
Clock Speed 32.768 kHz (RTC), 48 MHz
LED_BUILTIN 6
Full-Speed USB Device and embedded Host
LED_BUILTIN 6
Antenna power 2dB
Carrier frequency 868 MHz

IMPORTANTE: Los Arduinos con microcontrolador que integra interfaz USB como los leonardo o los SAMD21 usan Serial como el interfaz para comunicación USB y Serial1 es el puerto UART que disponen, que en el caso de los leonardo son los pines 0 y 1 y en el caso de los SAMD21 son los pines 13 y 14.

Esquematico de la placa: https://www.arduino.cc/en/uploads/Main/MKRFox1200-schematic.pdf

Es una placa perfecta para IoT para usar en una red celular y de bajo consumo. Ideal para proyectos donde hay movilidad. Al comprar este dispositivo obtienes una suscripción gratuita de dos años (con hasta 140 mensajes diarios) a Sigfox y acceso gratuito al servicio de geolocalización que permite hacer un seguimiento del HW sin un módulo GPS. El plan se activará automáticamente después de que se haya enviado el cuarto mensaje.

Covertura de sigfox: https://www.sigfox.com/en/coverage. La frecuencia de Sigfox es 868 MHz.

Pasado los dos años de subscripción, aunque a día de hoy no hay posibilidad de obtener una suscripción de sigfox para desarrolladores o makers, sigfox ha asegurado que se creará un plan de suscripción antes que caduquen las primeras suscripciones en abril de 2019.

La alimentación de esta placa puede ser a 5V mediante el USB o usando dos pilas AA o AAA a través de bornero, conmutando automáticamente entre las dos fuentes. Mediante el Vin también es posible alimentarlo a una fuente regulada de 5V.

La placa está diseñada para alimentarse a 3V a través del bornero, por lo tanto no es posible alimentarlo mediante una batería Li-Po o Li-Ion

Una de las principales características de esta placa es el bajo consumo, puede funcionar con dos pilas AA de 1.5V durante 6 meses con un uso normal.

El microntrolador SAMD21 se puede poner en modo sleep gracias a la librería Low Power https://github.com/arduino-libraries/ArduinoLowPower. En este caso es interesante el uso del bajo consumo que deja dormida la placa y en este modo no aparece el USB. Para despertarla hacer doble click en el botón de reset.

Al igual que el resto de Arduinos con MCU SAMD21 funciona a 3.3V y los pines no son tolerante a voltajes de 5V.

Primeros pasos con MKRFOX1200

Web oficial de Arduino MKRFOX1200:

Getting started: https://www.arduino.cc/en/Guide/MKRFox1200

Getting started SigFox: http://makers.sigfox.com/getting-started/

Librería SigFox: https://www.arduino.cc/en/Reference/SigFox

Tutorial MUY bueno de Luis Del Valle: https://programarfacil.com/blog/arduino-blog/arduino-mkrfox1200-sigfox-lpwan/

Configuración Inicial MKRFOX1200

La placa MKRFOX1200 se programa con el IDE de Arduino, pero para poder hacerlo es necesario instalar el soporte para las placas con microcontrolador SAMD. Para ello hay que ir al gestor de placas e instalar “Arduino SAMD Boards (32-bits ARM Cortex-M0+)” o simplemente buscar MKRFOX en el buscador del gestor de tarjetas.

Luego seleccionar desde el menú Herramientas seleccionar la placa MKRFOX1200.

Para poder usar el MKRFOX1200 con la red de Sigfox es necesario registrarlo, para ello debe usarse el siguiente tutorial llamado primera configuración: https://www.arduino.cc/en/Tutorial/SigFoxFirstConfiguration

Para ejecutar el ejemplo FirstConfiguration, para ello habrá que instalar las librerias Arduino:

Los datos de nuestro modem Sigfox para registrarlo son ID y PAC. Luego hay que registrarlo en la web: https://backend.sigfox.com/activate y seguir las instrucciones de la web que es muy sencilla:

  • Poner placa y país, en España Cellnex es la empresa que tienes Sigfox.
  • Crear una cuenta o sino entrar en la que tienes.

Una vez registrado tarda unos minutos en aparecer los datos y asignará el dispositivo a tu usuario y aparecerá dentro del panel de control en la opción del menú ASSOCIATED DEVICE.

Con esto ya podemos empezar a mandar datos al backend de Sigfox.

Manejo MKRFOX1200 y Sigfox

Para empezar a usar el Arduino MKRFOX1200 y Sigfox, al igual que con cualquier otro dispositivo o librería de Arduino, lo mejor es revisar los ejemplos que vienen al instalar el soporte para esta placa: https://github.com/arduino-libraries/SigFox/tree/master/examples

Para poder acceder a los ejemplos seguir: Archivo – Ejemplos – Arduino Sigfox for MKR1200

El primer ejemplo es FirstConfiguration que ya hemos visto: https://github.com/arduino-libraries/SigFox/blob/master/examples/FirstConfiguration/FirstConfiguration.ino

Después de registrar el MKRFOX1200, para probar el funcionamiento de la placa puede usarse el ejemplo Sigfox Event Trigger donde se manda un mensaje de alarma de dos fuentes diferntes conectadas los pines de interrupción 0 y 1: https://www.arduino.cc/en/Tutorial/SigFoxEventTrigger

Más información: https://www.arduino.cc/en/Tutorial/SigFoxEventTrigger

Podría usarse para conectar un sensor de puerta y uno de ventana y cada vez que se abra mande un mensaje. Luego para que mande un correo o SMS habrá que configurar el callback en el backend de Sigfox.

Otros ejemplo son:

Otros ejemplo de monitores de condiciones atmosféricas:

Librería Sigfox

Arduino, además de ofrecernos un HW con Sigfox a buen precio, nos da una librería muy fácil de usar y más aun a quienes están acostumbrados a la programación de Arduino.

SigFox – Esta librería permite el uso de transceiver de Sigfox ATAB8520E en las placas Arduino MKRFOX1200.

Librería: https://www.arduino.cc/en/Reference/SigFox

  • begin() – Inicializa el módulo Sigfox
  • beginPacket() – Comienza el proceso de mandar un paquete
  • write() – Manda datos binarios al backend de Sigfox
  • print() – Manda caracteres al backend de Sigfox
  • endPacket() – Finaliza el proceso de enviar paquetes iniciado con beginPacket()
  • parsePacket() – Comprueba la presencia de un paquete Sigfox antes de leer.
  • SigVersion() – Devuelve la versión de firmware del módulo
  • ID() – Devuelve el Sigfox ID del módulo que es único
  • PAC() – Devuelve el PAC del módulo, que es la clave secreta correspondiente al ID. El PAC no es transferible y debe regenerarse al cambiar de dueño el módulo.
  • reset() – resetea el módulo de sigfox
  • internalTemperature() – Devuelve la temperatura del sensor interno
  • debug() – Habilita el debug y deshabilita las funciones de ahorro de energía.
  • noDebug() – Deshabilita el debug
  • available() – Devuelve el número de bytes disponibles para leer.
  • read() – Lee los datos entrantes de Sigfox.

Callbacks

Un callback se puede traducir como una llamada de vuelta, devolución de llamada o una retrollamada. Es una de las configuraciones más importantes de un DEVICE TYPE ya que nos permite añadir, modificar o eliminar Callbacks. Los callbacks van asociados a los DEVICE TYPE y no a los DEVICES.

Sirve para enviar todos los datos que recibimos desde este DEVICE TYPE a otro sitio. El caso típico es poder llamar a alguna plataforma del IoT. Si por ejemplo queremos hacer una gráfica de las temperaturas, en el backend de SigFox no podemos hacer esto. Por eso existen las Callbacks para reenviar todos esos datos a una plataforma que permita gestionar esa información y dar un aspecto visual más atractivo.

Sigfox hace que sea fácil recoger los datos enviados por los dispositivos del servicio en la nube mediante el uso de callbacks. Las callbacks son un servicio que permite a Sigfox enviar un evento a un servidor externo después de recibir el evento. Por ejemplo, un dispositivo podría enviar un mensaje Sigfox al ocurrir un evento (una ventana abierta), es posible recibir una notificación una vez que se haya producido este evento. Esta sería la idea de usar un callback. El servidor Sigfox transmitirá el mensaje a través de una solicitud POST / GET a su propio servidor o enviar un correo electrónico. Además de definir su propio servidor y sus datos, Sigfox también le permite transferir sus datos con de forma simplificada como AWS IoT y Microsoft Azure.

Para configurar un callback personalizado, debe estar el dispositivo y cuenta registrados y configurado un dispositivo con un tipo de dispositivo y grupo.

Navega a la pestaña ‘Tipo de dispositivo’ en la barra de navegación. Luego, busca el Tipo de dispositivo de tu dispositivo y haz clic en el botón de filtro. Seleccione el ‘Nombre’ del dispositivo dentro de la entrada de búsqueda. Lo llevarán a la página ‘Información’. Desde aquí puede ver todos los datos sobre el dispositivo que configuró. Ahora navegue a ‘callback’ en el lado izquierdo de la página. Si esta es la primera vez que configura una callback, la página debe estar vacía. Haga clic en el botón ‘Nuevo’ en la esquina superior derecha y se le mostrará una lista de los diferentes tipos de devoluciones de llamadas

Haga clic en el elemento ‘Callbacks personalizados’. Ahora tendrá una página similar a la siguiente, con varias opciones de configuración diferentes.

Los campos a rellenar son:

  • Custom Payload Config. Este campo permite especificar cómo desea que Sigfox decodifique el mensaje de su dispositivo.
  • Body: Este es el contenido principal del mensaje. Se puede especificar cualquier dato personalizado dentro de la carga útil. Puede ver todas las variables disponibles en la sección Sintaxis de URL.

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

Estas callbacks transfieren todos los datos recibidos desde los dispositivos asociados a este DEVICE TYPE a una infraestructura externa. Para obtener más información, consulte la documentación. Callback documentation: https://backend.sigfox.com/apidocs/callback

Callback para mandar un correo:

Callback para mandar los datos a una web/base de datos externa:

Esta es la llamada a la API: https://www.aprendiendoarduino.com/servicios/SMS/saveSMS.php?telefono=6359871xx&mensaje=alarm_bike_{device}_lat_ {lat}_long_{lng}&pin=xxxx

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