Configurazione di LoraWan Gateway


10

Sto cercando di costruire una rete LoRaWan usando un sensore programmabile con Arduino e Dragino Lora Shield .

Ho trovato molte soluzioni per la creazione di un gateway, incluso un Raspberry Pi collegato con un altro Dragino Lora Shield o con iC880A , e i dati che ricevo verranno inviati su un server nel cloud. Sono molto confuso sulla programmazione del gateway.

  • Devo dirlo per connettermi al nodo e al server? O riceve i dati automaticamente?
  • E programmare il server per connettersi al gateway o direttamente ai nodi?

2
Benvenuti nel sito. Puoi aggiungere alcune informazioni su quali modelli di dispositivi stai usando e aggiungere ulteriori dettagli sul tuo caso d'uso? Questo ci aiuterà a darti risposte migliori.
Helmar

Ciao e grazie! Sono un principiante nelle reti Iot, quindi ho creato un nodo utilizzando un Arduino Uno, un sensore di temperatura e un Dragino Lora Shield, sto cercando di inviare la data a un server, quindi ho provato a creare un LoraWan Gateway utilizzando un Raspberry Pi, ho creato alcune ricerche su come trasformarlo in un gateway LoraWan e ho scoperto che posso usare un altro Dragino Lora Shield o un modulo iC880A e ho trovato il codice sorgente per farlo, ma sono ancora confuso su come collegare il gateway al nodo e come inviare i dati dal nodo al gateway al server ?? Grazie in anticipo !!
Mohamed Achref Dridi,

Risposte:


11

In una tipica rete LoRaWAN, i gateway sono dispositivi stupidi, come spiegato da LoRa Alliance :

L'architettura di rete LoRaWAN è in genere strutturata in una topologia stellare in cui i gateway sono un ponte trasparente che inoltra i messaggi tra i dispositivi terminali e un server di rete centrale nel back-end.

Quindi, un gateway deve solo essere configurato per connettersi ad alcuni server di rete, come ad esempio The Things Network . È tutto.

I gateway vengono spesso definiti "forwarder di pacchetti". Pertanto, i gateway fanno proprio questo: inoltrano tutti i pacchetti LoRaWAN ricevuti ad alcuni server di rete (indipendentemente dal nodo che li ha inviati) e trasmettono tutto ciò che è comandato dal server di rete. Quindi, i nodi (dispositivi finali) non si connettono ad alcun gateway ; invece trasmettono e sperano che uno o più gateway ricevano la loro trasmissione e la inoltrino al server di rete che conosce il nodo. (I gateway non possono leggere i dati crittografati che stanno inoltrando.)

Per connettere i nodi alla rete, vengono "attivati" utilizzando una delle due opzioni :

  • Attivazione via etere (OTAA)

    Innanzitutto, utilizzando alcuni siti Web o API, ogni nuovo nodo viene registrato nel server di rete utilizzando il suo unico dispositivo EUI ( DevEUI). Ottiene quindi un ID applicazione pubblico ( AppEUI) e una chiave applicazione segreta ( AppKey). Questi tre valori sono programmati nel nodo.

    Successivamente, quando pronti per l'invio per la prima volta, i valori vengono utilizzati dal nodo per creare e trasmettere una richiesta di iscrizione LoRaWAN. Se tale richiesta viene ricevuta da uno o più gateway, viene inoltrata al server di rete che, se approvato, comunicherà a un gateway di trasmettere un Join Accept. Se ricevuto dal nodo, questo fornisce al nodo un indirizzo di dispositivo pubblico ( DevAddr), una chiave di sessione di rete segreta ( NwkSKey) e una chiave di sessione dell'applicazione segreta ( AppSKey).

    I valori determinati da Join Accept vengono utilizzati ogni volta che il nodo deve trasmettere alcuni dati effettivi (insieme a un contatore di sicurezza che inizia da zero ogni volta che si unisce). L'attivazione è valida fintanto che il nodo la mantiene in memoria (e i contatori di sicurezza non sono stati esauriti), in genere per molti mesi o addirittura anni. Ogni volta che si perde, un nodo può inviare una nuova richiesta di iscrizione e ottenere nuovi segreti.

  • Attivazione tramite personalizzazione (ABP)

    Qui, quando ci si registra utilizzando alcuni siti Web o API, al nodo viene assegnato un indirizzo dispositivo ( DevAddr), una chiave di sessione di rete segreta ( NwkSKey) e una chiave di sessione di applicazione segreta ( AppSKey), che sono programmati nel nodo e non cambiano mai. Non è necessario che il nodo invii prima una richiesta di join prima di poter iniziare a inviare dati, ma occorre fare attenzione a non perdere i contatori di sicurezza. Inoltre, le chiavi sono specifiche per una determinata rete; L'APB rende difficile (se non impossibile) spostare i nodi in un altro provider di rete.


1
Alcuni gateway speciali includono un server di rete LoRaWAN e possono fungere da reti autonome. Ma la maggior parte deve essere connessa a un server di rete esterno. Ho rimosso la mia risposta che non era abbastanza chiara su questo punto.
Sylvain,

0

La risposta di Arjan è buona. Tecnico. Volevo fornire una risposta dal sapore diverso per aiutare coloro che sono nuovi e in difficoltà a mettere insieme il quadro per quanto riguarda i gateway e il modo in cui i pacchetti si muovono avanti e indietro.

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

Lettera / Pacchetto ha un indirizzo. Il postino / gateway preleva la lettera dalla tua casella di posta o da qualsiasi casella di posta in cui hai lasciato cadere la tua lettera. Viene gestita fino al destinatario. Se l'indirizzo è errato, non arriverà e dovresti ricevere una notifica. Il destinatario può inviarti una lettera tramite lo stesso sistema.

Sia che tu utilizzi The Things Network o provi a costruire il tuo server privato usando qualcosa come LoRaServer, avrai bisogno di un gateway a portata del tuo nodo / mote / end-device per inoltrare i messaggi avanti e indietro. Pensa alle diverse chiavi nel codice del nodo come agli indirizzi sulla lettera nell'analogia.

Puoi determinare se c'è già un gateway TTN nella tua area sulla loro pagina della mappa e se ce n'è uno a portata del tuo nodo, i tuoi messaggi dovrebbero raggiungere il tuo TTN (supponendo che tu abbia registrato e applicato le chiavi al tuo nodo). Se non c'è un gateway a portata di mano, puoi crearne uno tuo. Ci sono molte opzioni per farlo.

Per quanto riguarda la configurazione del gateway, a seconda della libreria scelta, in genere è sufficiente configurare alcuni parametri nel codice sorgente o in un file global_conf.json o local_conf.json.

Ecco un esempio di armeggiare con un RFM9X (basato su SX1276) e un RPI3 B + usando single_chan_pkt_fwdquale btw non fornirà risposte ... tieni presente che è solo per armeggiare / testare. Entrambi gli esempi forwarder e below global_conf.json non sono plug-n-play e non devono essere considerati affidabili per una corretta rete LoRaWan. Un gateway conforme ha 3 radio e può elaborare più canali e inviare / ricevere contemporaneamente. Questo esempio è appena ricevuto dal nodo sul singolo canale e non è molto affidabile ma presenta la configurazione. Ognuno dei valori dipende dall'hardware che stai utilizzando e da dove ti trovi ... o dove si trova il gateway come US, EU, ecc ... vale anche la pena notare che tale global_conf.json non ha una dimensione si adatta a tutto. Diverse librerie in genere hanno più opzioni di configurazione per più radio, canali, ecc ... solo FYI.

{
  "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 
    ]
  }
}

Diciamo che stai costruendo un nodo con dispositivo e codice Arduino. E usi qualcosa come la libreria LMIC-Arduino e uno schizzo di esempio. Devi prima determinare in base all'hardware del dispositivo come configurare la pinmap affinché il dispositivo funzioni anche. Quindi, se hai intenzione di utilizzare TTN, segui una delle tante guide per registrarti e ottenere le chiavi necessarie che inserisci nel codice dello schizzo. Devi anche assicurarti di trasmettere sulla frequenza appropriata e così ... per allinearti con il gateway nella tua zona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.