Un gateway LoRaWAN ha il compito di ricevere i dati inviati da sensori via radio e ritrasmetterli verso la rete LoRaWAN utilizzando internet. In genere si parla di packet forwarding. Il gateway non entra nel merito del pacchetto ricevuto, ma semplicemente lo inoltra alla struttura di rete alla quale il gateway è ‘agganciato’.
Ovviamente, il gateway ha anche la funzione di trasmettere dalla rete verso i sensori. Le classiche frequenze radio utilizzate sono nella banda libera, Short Range Devices (SRD), e definite in base alla regione di appartenenza. In Europa le frequenze sono in campo UHF a 434 e 865 MHz, con banda passante e potenza limitate dalla normativa. Le distanze radio coprono un raggio di diversi chilometri, anche 10 in campo aperto.
Il messaggio da un nodo può essere ricevuto da uno o più gateway. La rete avrà il compito di scartare i dati dupplicati perché ricevuti da più gateway. L’uso di più gateway, a copertura di una medesima area, consente funzioni come, ad esempio, la geolocalizzazione.
Esistono diverse soluzioni hardware, da quelle economiche da poche decine di euro, a quelle professionali da qualche migliaio di euro. Qualunque sia la soluzione, la parte radio che si occupa della modulazione o demodulazione si basa su tecnologia Semtech che ne detiene i diritti.
Quelle economiche si basano su shield Arduino e in genere sono in grado di gestire un solo canale, pochi nodi e debbono essere ingegnerizzati con altro hardware, case, alimentazione.
Nella fascia di prezzo alto ci sono apparati multicanale, ben ingegnerizzati, con case protetti per l’esterno, con buone soluzioni di alimentazione.
Nella fascia intermedia ci sono soluzioni complete di case o con moduli da integrare con schede a processore quale Raspberry Pi.
Evito un elenco di prodotti: una semplice ricerca in internet ne illustra molti, ma presento l’hardware di una soluzione che ho adottato.
Quanto realizzato, si basa su una scheda ic880a di IMST GmbH, una ditta tedesca. La scheda utilizza un chip SX 1301 di Semtech per demodulare il segnale e due chip SX1257 come front end in ricezione e trasmissione. Si tratta di una configurazione tipica anche di altre schede simili e di altre marche, che permette 8-10 canali di ricezione.
L’ic880a può ospitare un modulo GPS, non tanto per determinare le coordinate del dispositivo (normalmente il gateway è fisso in un posto), ma per fornire un riferimento temporale, e sincronizzare il clock, tramite il segnale PPS (Pulse Per Second) generato dal GPS. Tale riferimento risulta particolarmente utile nel funzionamento del modo B di LoRaWAN[1].
La scheda è predisposta per il modulo GPS che normalmente non è montato.
La scheda si interfaccia con un modulo a microprocessore (un Raspberry Pi, nel mio caso) attraverso una interfaccia seriale SPI. Esiste anche una versione con interfaccia USB. In figura la struttura del chip SX1301.
Implementazione hardware.
L’hardware è governato attraverso una interfaccia seriale SPI che richiede 4 segnali di controllo più l’alimentazione, tutto fornibili dal Raspberry Pi.
Come noto l’interfaccia SPI è di tipo master/slave dove, in questo caso, Pi ha ruolo di master. Si tratta dei segnali MISO (Master Input Slave Output), MOSI (Master Output Slave Input), NSS (Negative Slave Select), SPI CLOCK (il clock che tempifica lo scambio dei segnali della interfaccia) e il segnale di reset della scheda. A questi si aggiunge l’alimentazione (5V) e la massa, come indicato in tabella
iC880a pin |
Descrizione |
RPi pin fisico |
21 |
Supply 5V |
2 |
22 |
GND |
6 |
13 |
Reset |
22 |
14 |
SPI CLK |
23 |
15 |
MISO |
21 |
16 |
MOSI |
19 |
17 |
NSS |
24 |
Per i dettagli si rimanda alla descrizione della scheda ic880A
La scheda ic800a ha dimensioni un poco superiori alle dimensioni di un Raspberry Pi.
Le foto mettono in evidenza la realizzazione