Sei sulla pagina 1di 12

Elaborato di maturità su reti LoRa/LoRaWan di sensori e Backbone server

LAMP
Elaborato di Pinna Andrea 5Cit

Indice
 Introduzione
o Scopo del progetto generale
o Grafico logico di rete e visualizzazione generale servizi
 LoRa/LoRaWAN
o Caratteristiche fisiche
o Architettura
o Livello OSI 3
o Sensoristica
o Realizzazione e caso reale
 Link-Budget
o Inventario e obiettivo di trasmissione
o Realizzazione e caso reale
 Rete
o Indirizzamento e protocolli
 Analisi e configurazione di rete
 NAT
 Realizzazione Packet Tracer aziendale
 Realizzazione e caso reale
o Implementazione di sicurezza
 DMZ
 VPN
 Realizzazione e caso reale
o Back-end server LAMP
 Server LAMP
 Server WEB
 Broker MQTT
 Analisi di pacchetto
 Server Radius AAA
 Realizzazione e caso reale
Introduzione
Scopo generale del progetto
Una necessità che risulta attualmente evidente all’interno di ambienti di lavoro ad alto rischio o anche in
ambienti sensibili a possibili crolli e catastrofi naturali, è la capacità di osservare i fattori di rischio per
anticipare e prevenire ripercussioni critiche su oggetti e soprattutto persone a causa di pericoli.
Un esempio nostrano sono l’insieme delle infrastrutture autostradali liguri che hanno dimostrato
particolare scarsità di monitoraggio con conseguenze che arrivano a diventare tragiche quando torniamo al
14 agosto 2018 con la caduta del ponte Morandi. Si può spaziare anche in altri ambiti meno tragici ma
comunque distruttivi come nei diversi incendi che hanno coinvolto capannoni industriali fino ad arrivare
all’incendio della cattedrale di Notre dame.
Ebbene in questi casi, la presenza di sensori per monitorare i fattori di pericolo e allertare preventivamente
o tempestivamente una reazione da parte degli enti dedicati.
Le soluzioni di sensoristica basate su architetture wireless di end-device per l’acquisizione di dati
sensoristici, e la gestione di Big Data su questi modelli infrastrutturali sono adatte al compito richiesto.

L’obiettivo di questa progettazione è quindi quella di creare un nodo multi sensore che, Attraverso l’utilizzo
dei protocolli LoRa e LoRaWAN, sia in grado di comunicare dati sensibili ad un Gateway LoRa che agisca da
concentratore di informazioni per poi inviare l’insieme di dati attraverso il protocollo MQTT ad una rete
Back-end rivolta alla gestione, l’archiviazione, e la visualizzazione di queste informazioni, agendo da
Application Server.

Grafico logico di rete e visualizzazione generale servizi

L’obiettivo è ovviamente rivolto ad una prospettiva professionale realizzata per aziende e altri enti.
Tuttavia il progetto fisico che ho realizzato tiene conto delle mie possibilità, sia economiche che di
conoscenza.
L’architettura e il concetto di funzionamento rimane comunque analogo e quindi utilizzerò un diagramma
più completo e professionale per fine didattico ed esplicativo.
Abbiamo quindi una rete WAN LoRa realizzata da una serie di device di campo muniti di sensori e in grado
di comunicare in modalità many-to-one con un gateway che agisce da interfaccia tra la WAN di sensori e la
rete back-end dov’è contenuto il server.
Nella rete sono presenti un router, che agisce da interfaccia con l’internet e la rete esterna, un server DNS
per la tablatura dei domini, un server WEB e database per ospitare la dashboard di visualizzazione dei dati,
un server Radius per permettere la creazione di una VPN one-to-site per possibili utenti in smart working, e
infine un Server MQTT che agisca da broker per il gateway LoRa e reindirizzi i dati al database. Per motivi
economici, nella realizzazione l’intero sistema di Server e servizi sono stati impostati all’interno di un Router
casalingo e un Raspberry ospitante diversi servizi personalizzati al fine di diventare un unico server LAMP
(Linux-Apache-MySql-PHP).
Al fine dell’impostazione di rete sono quindi necessari, oltre ad un piano di indirizzamento coerente,
operazioni di NAT e Port-forwarding per l’accesso ai servizi Server, accessibili in sicurezza attraverso la loro
circoscrizione in una DMZ.

LoRa/LoRaWAN
La suite di protocolli LoRa è composta da due protocolli proprietari privi di documentazione ufficiale.
Prima di entrare nel dettaglio di questi protocolli è necessario quindi distinguerli:

LoRa, detto anche LoRaPHY (physical), è un protocollo di comunicazione del Layer fisico basato su
modulazioni a spettro espanso e garantisce una trasmissione a lungo raggio su bande di frequenza ISM
(Industrial, Scientific, Medical) che garantisce bassi consumi.

LoRaWAN è invece un protocollo che agisce a livello MAC (media access control) del livello di collegamento
dati (lv.2) che definisce le regole e l’architettura del sistema di rete tra end-node LoRa e LoRa gateway.
Quando parleremo quindi di caratteristiche fisiche ci staremo riferendo al protocollo fisico LoRa.
Caratteristiche fisiche
LoRa utilizza una modulazione digitale proprietaria a spettro espanso:
Una modulazione a spettro espanso è un tipo di modulazione che allarga la banda del segnale originale
utilizzando un segnale sequenziale randomico come modulante per il segnale originario, allargando quindi il
suo dominio di frequenze.

le 3 tipologie principali sono:


Frequency-hopping spread spectrum (FHSS) in cui la banda è ampliata variando periodicamente la
frequenza della portante;
time-hopping spread spectrum (THSS) in cui è ampliato variando secondo una sequenza pseudo-randomica
pubblica il periodo della portante;
la direct-sequence spread spectrum (DSSS), da cui deriva la chirp spread spectrum (CSS) utilizzata da LoRa,
che utilizza sequenze pseudo-randomiche digitali per allargare la banda del segnale digitale originario e
reindirizzarlo come modulante ad un modulo BPSK o QPSK.

Per avvicinarci a LoRa possiamo considerare che nella DSSS l’ampliamento della banda avviene
generalmente facendo uso di segnali sequenziali, periodici, casuali e noti chiamati sequenze PN (sequenze
di pseudo rumore o Pseudorandom-noise sequence) per modulare il segnale originale in modo da allargare
la larghezza di banda utilizzata a quella più ampia della PN sequence per essere trasmesso su raggi più
ampi. Il messaggio, sotto nuova codifica, è poi utilizzato come modulante nella modulazione BPSK o QPSK.
Il ricevitore, che conosce la sequenza PN poiché generata in maniera deterministica (esistono codici
generalmente conosciuti come il maximal length sequences, Gold codes, Kasami codes e i Barker codes ), è
poi in grado di demodulare il segnale ricevuto attraverso prima al BPSK/QPSK e poi grazie alla pseudo-noise
sequence e riottenere il dato originario.

Questo tipo di sequenza è denominata Pseudorandom-noise sequence poiché simile ad un rumore bianco
in quanto la sua ampiezza tende ad un valore costante in tutto il suo spettro e poiché non è ricollegato o
determinato dal dato originale.
Il loro utilizzo è efficace in quanto permette la comunicazione ad ampi raggi grazie allo spettro dei segnali
PN, funge da crittografia dei dati impedendone l’intercettazione del dato puro, e li rende di difficile
individuazione grazie all’utilizzo di segnali simili a rumori e a bassa potenza.

Nel caso di LoRa viene utilizzata la modulazione di spettro CSS (Chirp Spread Spectrum):
La CSS deriva dal principio di funzionamento della DSSS, ma non utilizza PN sequences, bensì viene
modulato attraverso impulsi detti Chirp, segnali di frequenza incrementale e decrementale (up-chirps e
down-chirps) caratterizzati da una crescita lineare (facilmente simulabile con una calcolatrice grafica come
in figura). nel chirp simulato ho utilizzato la formula di un segnale generale f ( t )= A cos (2 πf ∗t) in cui la
variabile di frequenza f viene determinata da una funzione lineare del tipo y=mx+q . .

Questi segnali variano di frequenza in un periodo T in un intervallo che va dalla frequenza più bassa della
banda disponibile utilizzata a quella più alta, e vengono utilizzati in maniera ciclica come portante nella
modulazione del dato digitale originario.
Il messaggio è quindi suddiviso in simboli e codificato all’interno dei singoli chirp, che avranno, in seguito
alla modulazione di frequenza proprietaria LoRa, una conformazione differente in base al dato utilizzato in
modulante.

Se osserviamo quindi un grafico di frequenza del segnale noteremo la forma caratteristica dei chirp, che
avranno crescita lineare, e una forma differente in base al dato modulante.
E’ evidente dal grafico 2 che, in base al valore da rappresentare, ogni chirp avrà come frequenza di partenza
un valore differente, con salti di frequenza.
E’ quindi ora necessario discutere di come i simboli influenzano i singoli Chirp:
LoRa definisce il parametro SF (spreading factor) che rappresenta la dimensione in bit del singolo simbolo e
varia in un intervallo tra 7 e 12 (ovvero dai 2^7=128bit*simbolo e 2^12=4096 bit*simbolo).
Ogni chirp contiene un simbolo di 2sf bit, in cui ciascun bit è rappresentato come segmento dell’intero chirp
e viene detto Chip (quindi il segmento del Chirp che rappresenta un bit).
Sapendo che in un Chirp (che assume linearmente tutti i valori dell’intervallo della Banda B) è contenuto un
simbolo di dimensione 2sf , suddiviso in 2sf chip, bisognerebbe ricercare una correlazione tra il chip rate Rc e
la banda B per ottenere altre informazioni sulla velocità di trasmissione del protocollo.
La siemens fornisce la relazione tra banda e bit rate, e afferma che avendo il bit rate uguale al chip rate, il
chip rate Rc equivale alla Banda B ( Rb =Rc =B). Sapendo ciò possiamo ottenere diverse formule inverse:
sapendo che il periodo T s (periodo del simbolo) equivale al tempo necessario per inviare 2sf chips alla
2sf 2SF
velocità di chip rate (e quindi T s= = ) troviamo che il Symbol rate risulta essere:
Rc B
1 B 3
R s= = SF [ simboli /s ]es . con SF=7 e B=125 Khz R s= 1 = BSF = 125∗10 =976,56 [ simboli /s ]
Ts 2 Ts 2 2
7

E il bit Rate di conseguenza:


Rb =SF∗R ses .→ Rb=7∗976.56=6835.9 [ bit / s ] Il dato viene in realtà codificato ulteriormente poiché
viene inserito come payload all’interno di un pacchetto di protocollo LoRaPHY:
L’inizializzazione di una comunicazione è una sequenza nota di up-chirp e down-chirp. richiede un
preambolo di 8 up-chirp iniziali seguiti da 2.25 down-chirp.
Header (opzionale): contiene la lunghezza del payload, il data rate, l’eventuale presenza del CRC nel
payload.

Lo header ha Code Rate fisso CR=4/8. LoRaWAN richiede header esplicito

Header CRC: 1 byte CRC LoRaWAN richiede CRC (Cyclic Redundancy Check) nei messaggi down link, ma non
nei messaggi di up link (da gateway a nodo).

Payload: il dato da trasmettere. Ha il Code Rate definibile. La struttura dettagliata del payload è definita dal
MAC (Media Access Control) e interessa i livelli superiori al livello fisico.

il bit rate è poi in realtà inferiore a causa degli header per le funzioni di correzione e infatti, poiché
nell’esempio abbiamo utilizzato i dati dello standard LoRa europeo con BW=125Khz e SF=7, notiamo che il
risultato è vicino ai valori decretati dalla LoRa Alliance che utilizza la formula che comprende il CR o code
rate, valore che varia tra 1 e 4 in base alla proporzione tra payload ed header.

SF∗
( 4
) bits = 7∗ 4 4+1 =5.468,75 bit / s
Rb=SF∗Coding Rate∗R s [ ]
bits
sec
( 4+CR )
2 SF [ sec ] 128 3
B 125∗10

L’intera banda coperta da un Chirp viene suddivisa in 2SF chip (notare la differenza con Chirp) e quindi
sappiamo anche che la banda equivale al numero di chip in un secondo. Se osserviamo il grafico di
frequenza di un segnale modulato CSS notiamo che, ogni chirp, inizia il proprio incremento di frequenza da
un valore di f differente. Il punto di inizio per ogni chirp equivale infatti, seguendo la suddivisione dei chirp
in 2SF chip, ad un simbolo. Abbiamo quindi la possibilità di rappresentare 2SF simboli differenti all’interno di
un singolo chirp.
Il valore SF è quindi decisivo poiché da esso varia, non solo il numero di simboli per chirp e quindi il bit rate,
ma anche il range di trasmissione. A parità di banda, infatti, se si vogliono rappresentare più simboli in un
chirp, sarà il periodo T a dover aumentare, incrementando quindi il tempo dell’intera trasmissione.

Architettura

Livello OSI 3

Sensoristica

Realizzazione e caso reale

Link-Budget
Conoscendo le informazioni fornite dalla Semtech possiamo quindi proseguire e calcolare il nostro Link-
budget per verificare l’efficienza a la fattibilità del ponte radio tra i dispositivi Lora.
Dai datasheet dei moduli transceiver sx1272 e dall’impostazione del progetto sappiamo che:

Ptx =25 mW ( potenza del trasmettitore ) EIR Pmax =20 db ( valore di equivalenza con antennaisotropica )
r =2000 m ( distanza tra TX e RX ) f =868 Mhz Possiamo quindi calcolare i livelli di potenza in uscita da TX,
le attenuazioni del collegamento e i livelli di potenza in ricezione:
Per prima cosa otteniamo il livello di potenza in uscita dal trasmettitore:
siccome Ptx =25 mW −→ L ptx =10 log 25 mW =13.98 dBm
EIRP=L ptx −A f + G ant ( con antenna integrata A f =0 )
Gant =EIRP−L ptx=20−13.98=6.02dB ( valore massimo )

Ora, immaginando di avere un’antenna dal guadagno di 6,02 per rispettare il limite legale di 20dB,
possiamo calcolare le attenuazioni:
Acollegamento =A sl + A suppl + M fading A sl =32.5+20 log f [ MHz ] +20 log r [ km ] =¿ ¿
32.5+20 log 868[ MHz ] +20 log 2[ km ]=¿ ¿97.2[dBm ]

Mentre l’attenuazione supplementare è considerabile nulla vista la frequenza non sufficientemente alta per
creare attenuazioni degne di nota, possiamo considerare il margine di fading come valore che potremo
considerare alla fine del Link-budget.
Passiamo quindi al lato del ricevitore calcolando il livello di potenza in ingresso:
L pu =EIRP− [ A coll ] +G antRx =¿20 dB−[ A coll ] +6.02 dB

Siccome la potenza in ingresso deve essere maggiore alla sensibilità, grazie ad alcune proprietà di LoRa
possiamo determinare il valore di sensibilità nel caso di SF=7:
Il segnale di chirp utilizzato in modulazione è come abbiamo visto simile ad un rumore bianco, e il segnale
LoRa in sè risulta infatti facilmente confondibile con un rumore generale del canale. Per questo il valore di
sensibilità dei dispositivi LoRa è ottenibile calcolando il livello di potenza del rumore in ingresso al
ricevitore.
Il rumore può essere interno (prodotto dai componenti
passivi) che esterno (prodotto dall’ambiente):
ogni rumore termico (generato dall’eccitazione degli
elettroni data dal calore termico) è idealizzabile con un
circuito quadripolo che presenta un generatore elettrico
di rumore con in serie una resistenza:

Il generatore ha come tensione il valore quadratico medio


del rumore originale, ovvero il valore continuo che
equivale al valore irregolare del rumore originale.
E’ quindi dimostrabile con considerazioni termodinamiche
che il valore di questo generatore è:
2 dove k è la costante di Boltzman
V n=4 kTR Δf =4 kTRB
per trasporre entità termiche in potenza.
ricordando poi la formula della potenza disponibile di un generatore:
V 2n
Pd = troviamo la potenza di rumore in ingresso ad RX:
4R
V 2n 4 kTRB
N= = =kTB
4R 4R
Per calcolare il livello di potenza del rumore in decibel troviamo che:
kTB −3
Ln=10 log −3
=(divido per 10 per ottenere il risultato∈dBm)10 log k +10 log T + 10 log B=¿ ¿
10
−198.6+10 logT [ k ] +10 log B[ Hz]
considerando poila temperatura per i ponti radio sulla terraT =290 k semplifichiamo ulteriormente∈:
Ln=−174 +10 log B [ Hz ]

Per garantire una sensibilità precisa consideriamo anche il rumore generato dai componenti interni del
ricevitore N q . Poiché è impossibile calcolare il rumore specifico di ogni circuito, si utilizza un modello in cui
al posto di esserci un rumore in ingresso N i a cui si somma il rumore di un circuito interno rumoroso N q
(fig.A), è presente un rumore equivalente N ieq (al rumore di ingresso e interno) in ingresso e un circuito
interno non rumoroso. Quindi:
N ieq=N i+ N q

per passare dal valore di potenza di rumore precedentemente trovato al valore di rumore equivalente
appena spiegato, vista l’impossibilità di calcolare N q , utilizziamo il FATTORE DI RUMORE F , valore che
moltiplica la potenza di rumore in ingresso ( N=kTB ¿ per includere il rumore interno del ricevitore.
N ieq=F∗kTB [ W ]Esiste quindi il livello di potenza della N ieq espresso in dB detto figura di rumore (Noise
figure):
NF =10 log F [ dB ] −→ valore per LoRa SX 1272=6 dB da cui LNieq =NF−174+10 log B[ Hz ]Infine è
necessario aggiungere al Livello di potenza un valore SNR (signal/noise ratio) per includere un margine più
ampio tra intensità del segnale e del rumore.

Otteniamo finalmente il livello di potenza dei rumori in ingresso al ricevitore, e quindi, il suo livello di
sensibilità:

Srx =−174+ 10 log B+ NF+ SNR=¿ −174+ 10 log ( 125∗103 [ Hz ] ) +6 dB+ (−7.5 dB )=−125 dBm
Possiamo quindi tornare al nostro Link−Budget e confrontare la nostra sudata sensibilità con il livello di
potenza in ingresso al ricevitore:
Acollegamento =A sl + A suppl + M fading
A sl =97.2 A suppl=0 L pu=S rx=−125 dBm ( caso massimo )
L pu=EIRP− [ Asl ] +G antRx =20− [ 97.2 ] +6.02 dB=71.18 dBIl limite è ampiamente rispettato e se
consideriamo : L pu=Srx =−125 dBm ( caso massimo )il margine di fading e altre possibili attenuazioni
possono avere un intervallo di valori da un ideale 0 a 53.2dB che garantisce un tempo di disponibilità
superiore al 99,999%.

Rete
Indirizzamento e protocolli
 Analisi e configurazione di rete
 NAT
 Realizzazione Packet Tracer aziendale
 Realizzazione e caso reale

Implementazione di sicurezza
 DMZ
 VPN
 Realizzazione e caso reale

Back-end services
 Server LAMP
 Server WEB
 Broker MQTT
 Analisi di pacchetto
 Server Radius AAA
 Realizzazione e caso reale

Potrebbero piacerti anche