¿Cómo utilizar TTN v3?
Una nueva evolución. Aprende más sobre cómo utilizar el TTN V3.

¿Cómo utilizar TTN V3?

En AlfaIOT llevamos involucrados con el entorno del Internet de las Cosas y en concreto con la tecnología LoRaWAN desde 2015.

Siempre hemos creído que la combinación de dispositivos de baja potencia junto con la comunicación de largo alcance y la libertad de poder establecer una red que cumpla tus necesidades hace que este protocolo sea ideal para enviar mensajes cortos desde lugares y dispositivos IoT remotos. Incluso admite la comunicación bidireccional.

Una de las figuras más importantes en esta actividad es The Things Network. The Things Network ofrece un conjunto de herramientas abiertas y una red global y abierta para construir tu próxima aplicación IoT a bajo coste, con la máxima seguridad y totalmente escalable. Por eso, desde el primer momento, iniciamos una comunidad en Salamanca y la mantenemos como motor y dinamizador de la economía 4.0 en nuestra zona.

La comunidad de TTN se nutre de esta manera de creadores, entusiastas, como de empresas que mantenemos y construimos soluciones IoT.

Más directamente en el día a día del desarrollo, existe un equipo que está detrás de la plataforma The Things Network, The Things Industries, encargados de diseñar la evolución de la plataforma. En la pasada conferencia de Febrero, visibilizaron la tercera versión de la pila del backend.

No se trata de una simple actualización. Se trata de un stack completamente nuevo, construida desde cero con la contribución de miles de personas y de código abierto. Esta nueva pila es compatible con los estándares anteriores y también con la nueva especificación LoRaWAN 1.1.

 Arquitectura

Introducción al nuevo portal


Después de entrar en el nuevo portal, las cosas siguen siendo muy familiares. Vemos tanto las aplicaciones como gateways:

Puedes empezar registrando una pasarela o comprobando las pasarelas ya registradas, ir a las aplicaciones actuales o crear una.

Aviso: La pila actual (V2) no es compatible con la pila V3. En este blog únicamente estamos tratando el uso del nuevo stack v3. Mantente al día del contenido del blog para aprender a migrar el contenido de la V2 a la V3.

Seleccione "Go to gateways". Aquí se muestran la lista de todas sus gateways registrados (la lista debería estar vacía en un primer momento). Vamos a añadir una pasarela seleccionando "Add gateway":

Registrar un gateway en el portal

Registrar un dispositivo de puerta de enlace en el portal no es tan difícil.

 

En primer lugar, rellene un ID de puerta de enlace único (debe estar en minúsculas, con números y guiones si es necesario). El valor de este campo puede ser de su propia elección.

Nota: Los ID de gateway son únicos y estos ID no pueden ser reutilizados para futuras puertas de enlace una vez que decida eliminar su puerta de enlace más adelante.

A continuación, rellene el GatewayEUI que tiene el gateway. Normalmente, debería encontrarlo en la parte trasera de su pasarela:

Nota: la dirección del servidor en la configuración del gateway tiene que coincidir con la de nuestro servidor. En el caso de TTN v3 y localizació europea: 'eu1.cloud.thethings.industries'.

Después de esto, hay que seleccionar el plan de frecuencias adecuado para tu puerta de enlace:

Como vivimos en Europa, así que elijo la región TTN Europa.

Tras guardar la configuración, estará conectado el gateway.

Añadir una aplicación al portal


En primer lugar, añadiremos una nueva aplicación. Una aplicación es un contenedor lógico de registros de dispositivos Lora. Estos dispositivos suelen compartir la misma estructura de mensajes que luego pueden ser decodificados utilizando un formateador de carga útil. También comparten las mismas integraciones con nubes de terceros (por ejemplo, AWS, Azure, etc.).

Inicie sesión en el portal. En la pantalla de inicio, vaya a aplicaciones:

Aquí vemos una lista de todas las aplicaciones creadas bajo su cuenta. Añada una nueva aplicación:

Añadir una aplicación es sencillo:

Tiene que rellenar un ID de aplicación y un nombre de aplicación para su próxima aplicación.

Los ID de las aplicaciones son únicos y sólo pueden adquirirse una vez. Si elimina la aplicación (y sus registros de dispositivos) en algún momento en el futuro, el ID de aplicación ya no estará disponible para su reutilización.

Una vez creada la aplicación, verá una pantalla como ésta:

Esto es todo lo que tiene que hacer al añadir una aplicación. Fíjese en los botones para importar dispositivos finales y para añadir un único dispositivo final.

Añadiendo el formateador de carga útil del enlace ascendente
Nuestra pasarela está ahora conectada a la pila V3, se ha creado una aplicación y estamos casi listos para conectar los dispositivos finales.

Los sensores de aparcamiento de Bosch (como todos los sensores LoRa) emiten por defecto matrices binarias de datos. Tendremos que añadir algo de lógica a nuestra aplicación para manejar las matrices de bytes entrantes (uplink) enviadas por los sensores.

Por lo tanto, tenemos que añadir un formateador de carga útil de enlace de subida:

Seleccione Javascript como formateador. Veremos un array de bytes entrante y se devuelve una estructura JSON:

Vmos a ampliar esta función.

Por suerte, yatenemos un formateador de enlace de subida, pero ese formateador está diseñado para la pila V2. En el portal V3, el puerto es renombrado de 'port' a 'f_port'.

/* 
 * Función decodificadora para que The Things Network - v3 (vista previa)
 */
function Decoder(bytes, f_port) {
  var decoded = {
    "bytes": bytes,
    "puerto": f_port,
    "tipo_paquete": "Desconocido"
  };
  // Los paquetes de inicio están en el puerto 3
  if(3 === f_port) {
    decoded.packet_type = "Startup";
    // Los bytes 0 - 11 son información de depuración
    decoded.debug = bytes.slice(0, 12);
    // Los bytes 12 - 14 son la versión del firmware
    decoded.firmware_version = bytes[12] + '.' + bytes[13] + '.' + bytes[14];
    // El byte 15 es la razón del reinicio
    decoded.reset_reason = 0;
    switch (bytes[15]) {
      caso 1: decoded.reset_reason = "Watchdog";
              romper;
      caso 2: decoded.reset_reason = "Power On";
              break;
      case 3: decoded.reset_reason = "System Request";
              break;
      caso 4: decoded.reset_reason = "Otros";
              break;
      por defecto: decoded.reset_reason = "Desconocido";
    } 
    // El último byte, es el 16
    decoded.occupied = false;
    if(1 === (bytes[16] & 1)) {
      decoded.occupied = true;
    }
  }
  // Los paquetes de estado están en el puerto 1
  // Los paquetes de Heartbeat están en el puerto 2, se comportan del mismo modo al puerto 1
  if(1 === f_port || 2 === f_port) {
    if(1 === f_port) {
      decoded.packet_type = "Status";
    } else {
      decoded.packet_type = "Heartbeat";
    }
    decoded.occupied = (1 === bytes[0]) ? true : false;
  }
  return decoded;
}


Guarde los cambios

En el portal de vista previa actual, no hay herramientas de prueba disponibles para esta función (como se ve en el portal V2). Tiene que probarlo con mensajes en vivo.

Añadir un sensor

Haremos uso de la implementación de OTAA. De nuevo, compruebe si tiene las credenciales adecuadas para el despliegue OTAA del sensor:

devEUI, appEUI, appKey
Dentro de la aplicación que acabamos de crear, selecciona el botón '+ Añadir dispositivo final':

La pantalla que te aparece para añadir un dispositivo es bastante extensa, muchas secciones. Sí, hay muchas "partes editables" en el portal V3 que puedes manipular.

No te preocupes, no necesitamos preocuparnos por la mayoría.

Añadir dispositivo final - Ajustes generales y las opciones de LoraWan


Sólo tenemos que rellenar unos pocos valores, así que sigue adelante. Primero veremos los ajustes generales y las opciones de LoraWAN:

En los ajustes generales, dé al dispositivo un nombre único como "bpls01" (todo en minúsculas; se admiten dígitos y guiones). El nombre y la descripción dependen de usted.

El ID del dispositivo es único y no se puede reutilizar para un dispositivo futuro si decide eliminar el registro de este dispositivo.

A continuación están las opciones de LoRaWAN. Rellene la versión de LoRaWAN, la versión de los parámetros regionales y el plan de frecuencias. Los ajustes que utilizo aquí son aplicables a los dispositivos más recientes en el campo.

En caso de duda, póngase en contacto con el fabricante de su dispositivo. O programe algo de tiempo extra en su agenda y trate de mezclar y combinar los valores de la lista desplegable.

Añadir dispositivo final - Ajustes de activación


Ahora es el momento de rellenar las tres claves de tu dispositivo.

Mira la sección de ajustes de activación:

Mantén el modo de activación en "activación por aire (OTAA)".

Rellena la AppEUI y rellena la DevEUI. La longitud del campo debe coincidir exactamente.

La única clave que queda ahora es la AppKey.

Para ello, desmarca el External Join Server para que tengamos acceso al campo AppKey. Rellene su AppKey una vez que el campo sea accesible.

Nota: Normalmente, esto es manejado por el servidor de unión. El servidor de unión externo hace posible tener un nuevo dispositivo 'pre-configurado' por el fabricante y eso es una gran manera de simplificar el registro. Por ahora, esta característica está fuera del alcance.

Esto es todo lo que tenemos que rellenar. Sólo hay que guardar la configuración del dispositivo.

El dispositivo final está ahora añadido:

En este punto, tenemos tanto una puerta de enlace como un sensor de aparcamiento conectados a la pila V3 de The Things Network.

Conclusión

El equipo de The Things Network ha creado un nuevo portal sobre la pila V3. Hay muchas nuevas características y aún así parecee bastante familiar cuando se realizan las acciones que ya estaban disponibles como aplicaciones, dispositivos finales y puertas de enlace.

En este blog, hemos utilizado las credenciales "clásicas" para registrar nuestro dispositivo. Aunque no se ha presentado, el soporte para unir servidores es muy prometedor. Esto nos quitará la mayor parte de las molestias en cuanto a la configuración técnica.

Este blog es sólo una primera impresión. Para más información sobre la pila y el portal, revisa frecuéntemente el blog o activa tu suscripción ya que revisaremos a fondo las nuevas funcionalidades.


Identificarse dejar un comentario
IoT y Raspberry