Configurando o LoraWan Gateway


10

Estou tentando construir uma rede LoRaWan usando um sensor programável com Arduino e um Dragino Lora Shield .

Encontrei muitas soluções para criar um gateway, incluindo um Raspberry Pi conectado a outro Dragino Lora Shield ou ao iC880A , e os dados que eu receber serão enviados para um servidor na nuvem. Estou muito confuso sobre como programar o gateway.

  • Preciso dizer para conectar-se ao nó e ao servidor? Ou recebe os dados automaticamente?
  • E eu programo o servidor para conectar-se ao gateway ou diretamente aos nós?

2
Bem vindo ao site. Você pode adicionar algumas informações sobre quais modelos de dispositivos você está usando e adicionar mais detalhes sobre seu caso de uso? Isso nos ajudará a fornecer melhores respostas.
Helmar

Oi e obrigado! Como sou iniciante em redes Iot, criei um nó usando um arduino uno, um sensor de temperatura e um Dragino Lora Shield. Estou tentando enviar a data para um servidor e tentei criar um LoraWan Gateway usando um raspberry pi. algumas pesquisas sobre como transformá-lo em um LoraWan Gateway e descobri que posso usar outro Dragino Lora Shield ou com um módulo iC880A, e encontrei o código-fonte para fazer isso, mas ainda estou confuso sobre como conectar o gateway para o nó e como enviar os dados do nó para o gateway para o servidor? desde já, obrigado !!
Mohamed Achref Dridi

Respostas:


11

Em uma rede LoRaWAN típica, gateways são dispositivos burros, conforme explicado pela LoRa Alliance :

A arquitetura de rede LoRaWAN é geralmente apresentada em uma topologia de estrela das estrelas, na qual gateways é uma ponte transparente que retransmite mensagens entre dispositivos finais e um servidor de rede central no back-end.

Portanto, um gateway só precisa ser configurado para conectar-se a algum servidor de rede, como o aberto The Things Network . Isso é tudo.

Gateways são freqüentemente chamados de "encaminhadores de pacotes". Dessa forma, os gateways fazem exatamente isso: eles encaminham todos os pacotes LoRaWAN recebidos para algum servidor de rede (independentemente de qual nó o enviou) e transmitem o que for solicitado pelo servidor de rede. Portanto, os nós (dispositivos finais) não se conectam a algum gateway ; em vez disso, eles apenas transmitem e esperam que um ou mais gateways recebam sua transmissão e a encaminham para o servidor de rede que conhece o nó. (Os gateways não podem ler os dados criptografados que estão encaminhando.)

Para conectar nós à rede, eles são "ativados" usando uma das duas opções :

  • Ativação Over the Air (OTAA)

    Primeiro, usando algum site ou API, cada novo nó é registrado no servidor de rede usando seu dispositivo exclusivo EUI ( DevEUI). Em seguida, ele obtém um ID de aplicativo público ( AppEUI) e uma chave secreta de aplicativo ( AppKey). Esses três valores são programados no nó.

    Em seguida, quando estiver pronto para enviar pela primeira vez, os valores serão usados ​​pelo nó para criar e transmitir uma solicitação de associação LoRaWAN. Se essa solicitação for recebida por um ou mais gateways, ela será encaminhada para o servidor de rede que, se aprovado, informará um gateway para transmitir uma aceitação de associação. Se recebido pelo nó, isso fornece ao nó um endereço de dispositivo público ( DevAddr), uma chave de sessão de rede secreta ( NwkSKey) e uma chave de sessão de aplicativo secreta ( AppSKey).

    Os valores determinados a partir da aceitação de associação são usados ​​sempre que o nó precisa transmitir alguns dados reais (junto com um contador de segurança que inicia em zero sempre que ingressa). A ativação é válida desde que o nó o mantenha na memória (e os contadores de segurança não foram esgotados), normalmente por muitos meses ou até anos. Sempre que perdido, um nó pode enviar uma nova solicitação de associação e obter novos segredos.

  • Ativação por personalização (ABP)

    Aqui, ao se registrar usando algum site ou API, o nó recebe um endereço de dispositivo ( DevAddr), chave de sessão de rede secreta ( NwkSKey) e chave de sessão de aplicativo secreto ( AppSKey) imediatamente, que são programados no nó e nunca mudam. O nó não precisa primeiro enviar uma solicitação de associação antes de poder começar a enviar dados, mas é necessário ter cuidado para que os contadores de segurança não sejam perdidos. Além disso, as chaves são específicas para uma determinada rede; O APB torna difícil (se não impossível) mover nós para um provedor de rede diferente.


11
Alguns gateways especiais incluem um servidor de rede LoRaWAN e podem atuar como redes independentes. Mas a maioria deve estar conectada a um servidor de rede externo. Eu removi minha resposta que não era clara o suficiente sobre esse ponto.
Sylvain

0

A resposta de Arjan é boa. Técnico. Eu queria fornecer uma resposta de sabor diferente para ajudar aqueles que são novos e lutam para montar a imagem em relação aos gateways e como os pacotes se movem para frente e para trás.

Analogia...

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 / Pacote tem um endereço. O carteiro / gateway pega a carta na sua caixa de correio ou em qualquer caixa de correio em que você soltou sua carta. Ela é manuseada até o destinatário. Se o endereço estiver errado, ele não chegará e você deverá ser notificado sobre isso. O destinatário pode enviar uma carta para você através do mesmo sistema.

Independentemente de você utilizar a The Things Network ou tentar construir seu próprio servidor privado usando algo como LoRaServer, será necessário um gateway ao alcance do seu nó / mote / dispositivo final para encaminhar mensagens para frente e para trás. Pense nas diferentes chaves no código do nó como os endereços na letra na analogia.

Você pode determinar se já existe um gateway TTN em sua área na página do mapa e se existe um ao alcance do seu nó, suas mensagens devem chegar ao seu TTN (supondo que você tenha registrado e aplicado as chaves no seu nó). Se não houver um gateway ao seu alcance, você poderá criar seu próprio. Há muitas opções para fazer isso.

No que diz respeito à configuração do gateway, dependendo da biblioteca que você escolher, normalmente você só precisa configurar alguns parâmetros no código-fonte ou em um arquivo global_conf.json ou local_conf.json.

Aqui está um exemplo de mexer com um RFM9X (baseado no SX1276) e um RPI3 B + usando single_chan_pkt_fwdque não fornece respostas ... lembre-se de que isso é apenas para ajustes / testes. Os exemplos de encaminhador e abaixo de global_conf.json não são plug-n-play e não devem ser invocados para a rede LoRaWan adequada. Um gateway compatível possui 3 rádios e pode processar vários canais e enviar / receber ao mesmo tempo. Este exemplo é apenas recebido do nó no canal único e não é muito confiável, mas apresenta a configuração. Cada um dos valores depende do hardware que você está usando e de onde está localizado ... ou onde o gateway está localizado, como EUA, UE, etc ... também vale a pena notar que esse global_conf.json não é um tamanho único serve para todos. Bibliotecas diferentes normalmente têm mais opções de configuração para vários rádios, canais, etc ... apenas para sua informação.

{
  "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": "WHATEVER@EMAIL.TLD",
    "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 você esteja construindo um nó com o dispositivo e o código do Arduino. E você usa algo como a biblioteca LMIC-Arduino e o esboço de exemplo. Primeiro, você precisa determinar, com base no hardware do dispositivo, como configurar o pinmap para que o dispositivo funcione. Então, se você usar o TTN, siga qualquer um dos muitos guias para se registrar e obter as chaves necessárias inseridas no código do esboço. Você também precisa se certificar de que está transmitindo na frequência apropriada e tal ... para se alinhar com o gateway em sua área.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.