Configurar LoraWan Gateway

10

Estoy tratando de construir una red LoRaWan usando un sensor programable con Arduino y un escudo Dragino Lora .

He encontrado muchas soluciones para crear una puerta de enlace, incluida una Raspberry Pi conectada con otro Dragino Lora Shield o con iC880A , y los datos que reciba se enviarán a un servidor en la nube. Estoy muy confundido acerca de la programación de la puerta de enlace.

  • ¿Necesito decirle que se conecte al nodo y al servidor? ¿O recibe los datos automáticamente?
  • ¿Y programo el servidor para que se conecte a la puerta de enlace o directamente a los nodos?
Mohamed Achref Dridi
fuente
2
Bienvenido al sitio. ¿Puede agregar alguna información sobre qué modelos de dispositivos está utilizando y agregar más detalles sobre su caso de uso? Esto nos ayudará a darle mejores respuestas.
Helmar
Hola y gracias Soy un principiante en las redes Iot, así que creé un nodo usando un arduino uno, un sensor de temperatura y un Dragino Lora Shield, estoy tratando de enviar la fecha a un servidor, así que intenté crear un LoraWan Gateway usando una frambuesa pi, hice Investigué un poco sobre cómo transformarlo en un LoraWan Gateway y descubrí que puedo usar otro Dragino Lora Shield o un módulo iC880A, y encontré el código fuente para hacerlo, pero todavía estoy confundido acerca de cómo conectar el puerta de enlace al nodo, y cómo enviar los datos del nodo a la puerta de enlace al servidor? gracias por adelantado !!
Mohamed Achref Dridi

Respuestas:

11

En una red típica de LoRaWAN, las puertas de enlace son dispositivos tontos, como lo explica LoRa Alliance :

La arquitectura de red LoRaWAN generalmente se presenta en una topología de estrella de estrellas en la que las puertas de enlace son un puente transparente que transmite mensajes entre dispositivos finales y un servidor de red central en el back-end.

Por lo tanto, una puerta de enlace solo necesita configurarse para conectarse a algún servidor de red, como la red abierta The Things Network . Eso es todo.

Las puertas de enlace a menudo se denominan "reenviadores de paquetes". Como tal, las puertas de enlace hacen exactamente eso: reenvían todos los paquetes LoRaWAN recibidos a algún servidor de red (independientemente del nodo que lo envió), y transmiten lo que sea ordenado por el servidor de red. Por lo tanto, los nodos (dispositivos finales) no se conectan a alguna puerta de enlace ; en cambio, solo transmiten y esperan que una o más puertas de enlace reciban su transmisión y la envíen al servidor de red que conoce el nodo. (Las puertas de enlace no pueden leer los datos cifrados que reenvían).

Para conectar los nodos a la red, se "activan" utilizando cualquiera de las dos opciones :

  • Activación por aire (OTAA)

    Primero, usando algún sitio web o API, cada nuevo nodo se registra en el servidor de red usando su dispositivo único EUI ( DevEUI). Luego obtiene un id de aplicación pública ( AppEUI) y una clave de aplicación secreta ( AppKey). Estos tres valores están programados en el nodo.

    Luego, cuando está listo para enviar por primera vez, el nodo utiliza los valores para crear y transmitir una solicitud de unión de LoRaWAN. Si dicha solicitud es recibida por una o más puertas de enlace, se reenvía al servidor de red que, si se aprueba, le indicará a una puerta de enlace que transmita una Aceptación de unión. Si lo recibe el nodo, esto le da al nodo una dirección de dispositivo público ( DevAddr), una clave de sesión de red secreta ( NwkSKey) y una clave de sesión de aplicación secreta ( AppSKey).

    Los valores determinados a partir de Join Accept se usan cuando el nodo necesita transmitir algunos datos reales (junto con un contador de seguridad que comienza en cero cada vez que se une). La activación es válida siempre que el nodo la mantenga en la memoria (y los contadores de seguridad no se hayan agotado), generalmente durante muchos meses o incluso años. Siempre que se pierde, un nodo puede enviar una nueva solicitud de unión y obtener nuevos secretos.

  • Activación por personalización (ABP)

    Aquí, cuando se registra utilizando algún sitio web o API, el nodo recibe una dirección de dispositivo ( DevAddr), clave de sesión de red secreta ( NwkSKey) y clave de sesión de aplicación secreta ( AppSKey) de inmediato, que se programan en el nodo y nunca cambian. No es necesario que el nodo envíe primero una solicitud de unión antes de que pueda comenzar a enviar datos, pero se debe tener cuidado de que los contadores de seguridad no se pierdan. Además, las claves son específicas para una red determinada; APB hace que sea difícil (si no imposible) mover nodos a un proveedor de red diferente.

Arjan
fuente
1
Algunas puertas de enlace especiales incluyen un servidor de red LoRaWAN y pueden actuar como redes independientes. Pero la mayoría debe estar conectada a un servidor de red externo. He eliminado mi respuesta que no era lo suficientemente clara en ese punto.
Sylvain
0

La respuesta de Arjan es buena. Técnico. Quería proporcionar una respuesta de sabor diferente para ayudar a aquellos que son nuevos y tienen dificultades para armar la imagen con respecto a las puertas de enlace y cómo los paquetes se mueven de un lado a otro.

Analogía...

You > Letter > Mailbox > Mailman > Post Office Dist > Recipient

|----------------- TX -------------------|

Node > Packet > Transmission > Gateway > Network Server > Application

|----------------- RX -------------------|

Node < Packet < Transmission < Gateway < Network Server < Application

Carta / paquete tiene una dirección. El cartero / puerta de enlace recoge la carta de su buzón o cualquier buzón en el que dejó caer su carta. Se maneja hasta el destinatario. Si la dirección es incorrecta, no llegará y debería ser notificado al respecto. El destinatario puede enviarle una carta a través del mismo sistema.

Ya sea que vaya a utilizar The Things Network o intente construir su propio servidor privado utilizando algo como LoRaServer , necesitará una puerta de enlace al alcance de su nodo / mote / dispositivo final para reenviar mensajes de un lado a otro. Piense en las diferentes claves en el código del nodo como las direcciones en la letra en la analogía.

Puede determinar si ya hay una puerta de enlace TTN en su área en su página de mapa y si hay una al alcance de su nodo, sus mensajes deben llegar a su TTN (suponiendo que haya registrado y aplicado las claves a su nodo). Si no hay una puerta de enlace a su alcance, puede construir la suya. Hay muchas opciones para hacer eso.

Con respecto a la configuración de la puerta de enlace, dependiendo de la biblioteca que elija, normalmente solo necesita configurar algunos parámetros en el código fuente o en un archivo global_conf.json o local_conf.json.

Aquí hay un ejemplo de retoques con un RFM9X (basado en SX1276) y un RPI3 B + usando single_chan_pkt_fwdque por cierto no proporcionará respuestas ... tenga en cuenta que esto es solo para retoques / pruebas. Tanto el reenviador como los siguientes ejemplos de global_conf.json no son plug-n-play y no se debe confiar en ellos para una red LoRaWan adecuada. Una puerta de enlace compatible tiene 3 radios y puede procesar múltiples canales y enviar / recibir al mismo tiempo. Este ejemplo es solo recibir del nodo en un solo canal y no es muy confiable, pero presenta la configuración. Cada uno de los valores depende del hardware que esté utilizando y de dónde se encuentre ... o dónde se encuentre la puerta de enlace, como EE. UU., UE, etc. También vale la pena señalar que tal global_conf.json no es de un tamaño cabe todo. Las diferentes bibliotecas suelen tener más opciones de configuración para múltiples radios, canales, etc., solo para su información.

{
  "SX127x_conf": // depending on your hardware/radio this could be something like sx1301..., sx127x...., etc.. 
  {
    "freq": 903000000, // depending on whether US (900 range), EU (800 range) or other...
    "spread_factor": 7, // look this up
    "pin_nss": 10, // wiringpi value = physical pin #24
    "pin_dio0": 5, // wiringpi value = physical pin #18
    "pin_rst": 21 // wiringpi value = physical pin #29
  },
  "gateway_conf":
  {
    "ref_latitude": 0.0, 
    "ref_longitude": 0.0,
    "ref_altitude": 2,

    "name": "WHATEVER NAME",
    "email": "[email protected]",
    "desc": "WHATEVER DESC",

    "servers":
    [
      {
        "address": "localhost", // this one is private so localhost, but TTN lookup address
        "port": 1700, // this one is private so localhost, but TTN lookup port
        "enabled": true
      } // you could add more... say you have a private one and TTN 
    ]
  }
}

Digamos que está construyendo un nodo con el dispositivo Arduino y el código. Y usa algo como la biblioteca LMIC-Arduino y un boceto de ejemplo. Primero debe determinar, en función del hardware del dispositivo, cómo configurar el pinmap para que el dispositivo funcione. Luego, si va a usar TTN, siga cualquiera de las muchas guías para registrarse y obtener las claves necesarias que ingresó en el código de boceto. También debe asegurarse de que está transmitiendo en la frecuencia apropiada y tal ... para alinearse con la puerta de enlace en su área.

Chris
fuente