LoRaWAN Gateway: il software

Esistono vari modelli di hardware per un gateway LoRaWAN, molti si basano sul chip SX1301 di Semtech. Il software è delegato a ‘pilotare’ chip attraverso il sistema operativo di una scheda provvista di una CPU.

In queste brevi righe si fa riferimento al gateway descritto qui che usa una scheda ic88a, dell’azienda tedesca IMST GmbH, pilotata da un Raspberry Pi 3B.

Si parte con l’installazione e l’aggiornamento Raspberry Pi OS. L’installazione è descritta in vari siti, non è particolarmente impegnative e qui non è descritta.

Non è necessario installare la versione con desktop (GUI). Occorre abilitare la porta SPI con il comando

sudo raspi‑config

Dalla stessa interfaccia conviene abilitare il protocollo SSH ed eventualmente VNC (se si usa la versione desktop) per il controllo remoto.

Occorre installare git, usato per scaricare il software:

sudo apt install git

Il software e relative istruzioni per l’installazione è disponibile in:

https://github.com/ttn-zh/ic880a-gateway

Nel file README.md viene suggerito di creare un nuovo utente e fornire i permessi per il comando sudo e, nello stesso file, ci sono le istruzioni per l’installazione. Le istruzioni fanno riferimento ad una connessione internet via Wi-Fi ma, se possibile, suggerisco una connessione fissa via cavo.

La procedura di installazione usa il MAC address (6 byte) per elaborare il DevEUI del gateway aggiungendo, nel mezzo, FFFE per ottenere gli 8 byte richiesti. Ad esempio il MAC address 11:22:33:44:55:66 diventa il DevEUI 11:22:33:FF:FE:44:55:66. Il DEV EUI identifica il gateway nella configurazione della rete LoRaWAN, TTN nel mio caso.
Vedi: Mapping an EUI-48 to an EUI-64.

L’installazione interagisce con l’utente e chiede se si desidera una configurazione remota ("Do you want to use remote settings file? [y/N]") se la risposta è positiva (Y) verrà utilizzata una configurazione presente in github (https://github.com/ttn-zh/gateway-remote-config) da un file che ha come nome il DevEUI.json (es: 112233FFFE445566.json).
In alternativa vengono usati i file global-config.json e local-config.json presenti in /opt/ttn‑gateway/packet_forwarder/bin.

In global_config.json sono riportati parametri come, ad esempio, le frequenze della parte radio (che dipendono dalla regione, nel corrente caso l’Europa), in local_config.json sono presenti configurazioni specifiche, come ad esempio il gateway_ID (DevEUI) che, all’avvio della procedura, sovrascrivono quelle presenti in global_config.json.
In local_config.json, oltre al parametro gateway_ID, è importante scegliere il corretto server, di regione, da contattare, nel caso di TTN in Europa è: "server_address": "eu1.cloud.thethings.network"
Questo è un esempio:

  1. {
  2.         "gateway_conf": {
  3.                 "gateway_ID": "B827EBFFFE421ED9",
  4.                 "servers": [ { "server_address": "eu1.cloud.thethings.network", "serv_port_up": 1700, "serv_port_down": 1700, "serv_enabled": true } ],
  5.                 "ref_latitude": 44.822065,
  6.                 "ref_longitude": 10.323772,
  7.                 "ref_altitude": 65,
  8.                 "contact_email": "lora_gw@example.com",
  9.                 "description": "ttn-ic880a"
  10.         }


Maggiori dettagli sono disponibili in https://www.thethingsnetwork.org/docs/gateways/packet-forwarder/semtech-udp/

poly_pkt_fwd è il processo che implementa il gateway e viene avviato come servizio.
Per verificare lo stato del servizio si può usare il comando:

systemctl status ttn-gateway.service

Dopo l’installazione, riavviato il sistema, il gateway si presenta alla rete internet con il suo DEV EUI, e va registrato nella rete LoRaWAN scelta. In questo caso The Things Network.

Istruzioni in merito sono disponibili qui: https://www.thethingsnetwork.org/docs/gateways/registration/

 

 

Categoria: 

Tags: 

Mi piace: 

0
No votes yet