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?
networking
lora
Mohamed Achref Dridi
fuente
fuente
Respuestas:
En una red típica de LoRaWAN, las puertas de enlace son dispositivos tontos, como lo explica LoRa Alliance :
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.fuente
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...
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.
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.
fuente