Arduino: come costruire una rete LORA (long range)


Arduino e reti wireless LoRa (long range)

Si riporta in parte il documento redatto da Paolo Bonelli , che spiega veramente bene: come costruirsi una MiniReteLoRa .... e monitorare qualsiasi cosa (o quasi)

AGGIORNAMENTO PDF ITA ver.3 del 29 Nov. 2022 disponibile a fondo pagina
AGGIORNAMENTO PDF ENG ver.5 del 29 Ago. 2023 disponibile a fondo pagina

Sommario

  • Introduzione
  • Cos'è e a cosa serve una MiniReteLoRa
  • Perchè scegliere una MiniReteLoRa
  • Come si fa?
  • Hardware
  • La scheda-sensore TX: LILYGO TTGO T-Deer Pro Mini
  • La scheda Ricevitore RX: LILYGO TTGO LoRa32 T3_V1.6.1 (LoRa32 V2.1_1.6)
  • La scheda Ricevitore RX: LILYGO TTGO LORA32 868/915Mhz (LoRa32 V1.0)
  • Software
  • La struttura del messaggio inviato
  • Programma per un nodo TX: TX_Generic
  • Struttura del programma per un nodo RX: RX_Generic_autoconnect
  • Il livello del segnale RSSI e le antenne
  • Librerie
  • Server esterni
  • Funzionamento del nodo RX
  • Prove di affidabilità di una MiniReteLoRa
  • Conclusioni



Introduzione

Oggi si parla tanto di IOT (Internet Of Things), intendendo oggetti sparsi per la casa, la fabbrica o un campo aperto che mandano dati su Internet allo scopo di monitorare parametri critici ed eventualmente attivare segnali di allarme.

Sistemi del genere sono già in commercio, ma, oltre al prezzo, l'ostacolo principale per un chi cerca un'applicazione particolare è la loro scarsa duttilità.
Quali tecnologie può usare un privato che vuol fare tutto da sè?
Per un privato con poca dimestichezza con l'elettronica è necessaria una tecnologia di trasmissione dati che usi hardware economico e software open source possibilmente di facile uso; inoltre può essere utile che questi sistemi funzionino anche fuori dalle mura di casa, all'aperto, dove non è presente alimentazione elettrica e rete WiFi.

In questo articolo si impara a costruire una rete di sensori che trasmettono i dati su Internet a basso costo, muovendono i primi passi verso un'esperienza entusiasmante, forse al pari di quella provata da Guglielmo Marconi alla fine del XIX secolo, quando, nel parco della sua villa, vide arrivare, con grande giubilo sul suo ricevitore rudimentale, un segnale trasmesso via radio e partito a qualche chilometro di distanza.

Cos'è e a cosa serve una MiniReteLoRa


Partiamo da alcuni esempi di applicazioni pratiche:

  • in un campo coltivato c'è la necessità di misurare la temperatura dell'aria, del suolo, il contenuto di acqua nel terreno e altro, ma siamo lontani da una casa con WiFi;
  • sempre in campagna, dobbiamo comandare una pompa per sollevare l'acqua da un pozzo e riempire un serbatoio quando sta per vuotarsi, ma questo si trova parecchio distante; vogliamo inoltre che la pompa si accenda automaticamente e seguire il funzionamento di tutto il sistema su Internet;
  • abbiamo una serra dove è importante tenere sotto controllo la temperatura dell'aria in vari punti per comandare gli impianti di riscaldamento o l'apertura delle prese d'aria, però non vogliamo tirare fili in mezzo alle piante;
  • vogliamo sapere dove è andato a finire il nostro cane o la mucca che pascola o la capra che si arrampica su un dirupo.

Fin qui si tratta di applicazioni agricole, ma pensiamo anche alla misura delle polveri sottili in aria nei giardinetti dove giocano i nostri figli, a scuola o più in generale all'inquinamento di ecosistemi acquatici come fiumi e laghi.
Tutte queste applicazioni richiedono sensori, elettronica di acquisizione-trasmissione dei dati e un ricevitore concentratore. Quale sistema si può usare per trasmettere i dati? La rete GSM-4G? Una rete WiFi? Nel primo caso dovremmo pagare un canone e dotare ogni scheda-sensore di una SIM con un consumo di energia che non ci permette di far durare la carica della batteria per mesi; nel secondo caso avremmo bisogno di schede-sensore dotate di WiFi, sempre con un consumo di batteria non trascurabile e un router WiFi/GSM come concentratore con una copertura che non potrebbe superare i 100-200 m.

Da alcuni anni una nuova tecnologia di trasmissione si è resa disponibile con il relativo Hw e Sw: si tratta di LoRa (Long Range). La sigla indica una tecnica di modulazione del segnale radio che permette di avere una grande sensibilità nel punto di ricezione, ne consegue una copertura di chilometri, come dice il nome, con potenza di uscita del trasmettitore ridotta al minimo e tempi di trasmissione brevi per ogni scheda-sensore.
LoRa, in Europa, usa la banda libera di 868 MHz a patto di non occuparla per più del 1% del tempo.
Immaginate un sensore che trasmette pochi dati ogni 5 minuti con un tempo di trasmissione di 70 ms (millisecondi), la percentuale di occupazione della banda è di circa 0,02 % che ci permetterebbe di avere fino a 50 schede sensori!! Il consumo tipico di una scheda sensore è di 140 mA in trasmissione e 0,30 mA a riposo, (con la CPU in sleep), quindi il consumo medio, sempre per lo stesso esempio, è di 0,32 mA. In queste valutazioni non ho tenuto conto del consumo dei sensori, che comunque può essere trascurabile se questi sono attivati solo poco prima della trasmissione dei loro dati.

L'uovo di Colombo per le nostre necessità?
Si ma quali difficoltà si incontrano a costruirsi una rete simile? Esiste in commercio qualcosa chiavi in mano?
Bisogna essere super esperti nel Hw/Sw?
Qui ci viene incontro il mondo dell'open source: quell'universo di conoscenze disponibili sulla Rete, gratuite e spesso rese facili da abili divulgatori. In più esiste un mercato dell'hardware a basso costo che si espande sempre di più offrendoci sensori, microcontrollori e soluzioni di facile cablaggio. Se siamo già capaci di collegare un sensore ad un microcontrollore come Arduino, possiamo con poco sforzo entrare nel mondo dell'Internet of Things (IOT) che usa LoRa e costruirci la nostra MiniReteLoRa.
Adesso cercherò di descrivere l'architettura di quella che io chiamo MiniReteLoRa, una rete di sensori trasmettitori e ricevitore concentratore, completamente autonoma, che non ha bisogno cioè di appoggiarsi a particolari server esterni e sottostare a complessi protocolli.


Figura 1 - Differenze tra una MiniReteLoRa e LoRaWAN

Una MiniReteLoRa è una tecnologia che consente l'acquisizione e trasmissione di grandezze rilevate da sensori, posti in località prevalentemente all'aperto, quindi prive di connettività WiFi, richiedendo poca energia e bassi costi. Nulla vieta comunque di usare questa tecnica anche in un ambiente chiuso, come la nostra casa o fabbrica.
Mentre il termine LoRa indica la tecnologia di modulazione di una portante radio, brevetto della ditta Semtech, i termini MiniReteLoRa e LoRaWAN sono usati per definire un tipo di architettura di dispositivi, con i loro software, che sfruttano la tecnologia LoRa per trasmettere e ricevere dati.
La MiniReteLoRa, che descrivo qui, non va confusa con il protocollo LoRaWAN, creato per un'infrastruttura di rete più complessa e più adatta ad un utilizzo commerciale, fatta per moltissimi nodi trasmettitori e alcuni ricevitori (gateway) collegati in Internet ad un network server gestito da chi offre il servizio. LoRaWAN, avendo più gateway in rete offre una copertura spaziale maggiore.

Nella Figura 1 cerco di illustrare in modo semplice la differenza tra questi due approcci, mentre la Figura 2 mostra lo schema dettagliato di una rete LoRaWAN.


Figura 2 - Schema dettagliato di una rete LoRaWAN (tratto da internet4things )

La MiniReteLoRa l'ho concepita per funzionare senza infrastrutture di terze parti, quindi può essere impiegata ovunque e implementata da chiunque.

La MiniReteLoRa ha un'architettura che prevede:

  • più nodi rilevatori/trasmettitori (TX) che svolgono la funzione di acquisire i dati dai sensori, confezionarli in un messaggio che riporta anche alcune informazioni sul nodo e trasmettere in modo broadcast questi messaggi con la tecnologia LoRa;
  • un nodo ricevitore (RX) in grado di ricevere e selezionare i messaggi inviati dai nodi TX, estrarne i dati e presentarli in vari modi, quali: display, LED, datalogger. Un'altra possibilità del nodo RX è quella di essere capace di collegarsi ad Internet tramite un hotspot WiFi ed accedere ad un server sul quale depositare i dati ricevuti.


I nodi TX e RX sono costituiti da schede hardware dotate di un microcontrollore programmabile con la IDE di Arduino e di un modulo radio LoRa, gestibile con apposite librerie. Queste schede possono svolgere sia la funzione di TX che di RX, cambiando solo il software.
La trasmissione dei dati può avvenire in modo periodico, controllata da ogni nodo TX in modo autonomo, o in seguito ad un evento esterno registrato dai sensori. In ogni caso si tratta di una trasmissione a senso unico, non è previsto che il TX invii dati su richiesta di un RX. Quest'ultima caratteristica è necessaria se si vuole che il nodo TX consumi meno energia possibile, infatti lo stato di ascolto permanente consuma più energia di una trasmissione periodica.
Tipicamente un TX che trasmette ogni 5 minuti un breve messaggio di 30 byte per 70 millisecondi e poi si mette in uno stato di sleep per il resto del tempo, può consumare anche solo 0,3 -0,4 mA, mentre un RX sempre in ascolto consuma anche 100 volte tanto. Per questo motivo i nodi RX devono essere alimentati con una fonte di energia illimitata o batterie di grande capacità, se si vuole che la MiniReteLoRa funzioni per mesi senza interventi di manutenzione. Questa necessità è ancora più evidente se il nodo RX è collegato ad altre schede che svolgono funzioni di datalogger o invio dati su Internet con WiFi.
In certe applicazioni particolari il nodo TX può mettersi in ascolto di un messaggio di avvio mandato da RX, per esempio per comandare la partenza di più TX in tempi diversi, rimane però sempre la necessità che, a regime, il TX svolga esclusivamente la trasmissione dei dati.
Nonostante la possibilità di impostare da software piccole variazioni di frequenza vicino a quella principale di 868,0 MHz, tutti i nodi TX e il nodo RX di una MiniReteLoRa devono funzionare sulla stessa frequenza. Le possibili interferenze sono ridotte al minimo se il tempo tra due trasmissioni dei nodi TX è lungo rispetto al tempo di occupazione della frequenza nel momento della trasmissione. Essendo quest'ultimo tempo dell'ordine di frazioni di secondo, una periodicità di trasmissione di alcune decine di secondi può essere sufficiente a garantire una bassissima probabilità di interferenze tra alcuni nodi TX. Ancora meglio sarebbe impostare una periodicità di trasmissione diversa per ogni nodo, magari pari a una sequenza di numeri primi di secondi. A questo punto della mia spiegazione, qualcuno si porrà una domanda:
è affidabile una rete dove i dati viaggiano a senso unico? Infatti non è previsto alcun feedback tra il ricevitore e il trasmettitore, se un dato viene perso il trasmettitore non lo saprà mai.

Cerco di rispondere con due argomenti:

  • Il sistema di trasmissione LoRa, gestito dalla libreria che useremo nelle nostre applicazioni, ha un suo controllo interno di integrità dei dati. Quindi se un messaggio in arrivo al RX è corrotto, non verrà processato.
  • L'affidabilità va quindi valutata in base agli eventuali messaggi persi rispetto al totale (messaggi trasmessi ma non ricevuti o non processati per errori interni). Ma la ridondanza di messaggi farà aumentare l'affidabilità della mini rete. Mi spiego meglio: se per conoscere l'andamento nel tempo di una grandezza ambientale basta un dato per esempio ogni 10 minuti, il nodo TX lo trasmetterà tre o quattro volte ogni 10 minuti, in modo da essere sicuri che almeno uno arrivi a destinazione corretto.


Perchè scegliere una MiniReteLoRa

  • Hardware poco costoso;
  • Bassi consumi;
  • Software semplice e di facile comprensione;
  • Librerie consolidate;
  • Compatibilità con Arduino e il suo ambiente di programmazione;
  • Ricezione e archiviazione dei dati in locale senza necessità di server esterni;
  • Eventuale ri-trasmissione dei dati su Internet a diversi server.

Come si fa?

Parliamo adesso prima dell'hardware necessario alla costruzione di una MiniReteLoRa e poi del software. Per semplicità presento solo tre schede microcontrollore, da me testate con successo; ma è bene sapere che MiniReteLoRa può costruirsi anche con altre schede apportando solo piccolissime modifiche al software che presenterò più avanti.




-CONTINUA-

Per scaricare il documento completo in formato PDF, con i link per tutti gli sketch da provare su Arduino, questo è il link:
https://www.realmeteo.com/lora_v3.pdf ITA

https://www.realmeteo.com/lora_v5.pdf ENG


Se ti è piaciuto questo articolo, clicca su uno o più banner pubblicitari... sappiamo che sono noiosi ed intrusivi, ma ci consentono di pagare le spese del server senza farti spendere nulla. Grazie



Cerca 


Categorie Articoli

Ultimi articoli

OPTA-FINDER-ARDUINO-COMPATIBLE   APRI 

whatsapp-alarm-repeater   APRI 

Arduino_Template_Menu_Eng   APRI 

Arduino_Template_Menu   APRI 

Power-Supply-with-Current-Control   APRI 

Vantaggi_Alimentatori-Controllo_Corrente   APRI 

Camping-La-Secca-Moneglia   APRI 

Safety-Relays   APRI 

Rele-di-sicurezza   APRI 

Internal-or-External-Watchdog   APRI 

Watchdog-interno-o-esterno   APRI 

Ripetitore-di-allarme-su-Whatsapp   APRI 

Bufala-in-crosta   APRI 

Home-Automation-ESPeriment   APRI 

ESPerimento-Domotica   APRI 

Arduino-measures-liquid-level   APRI 

Arduino-misura-livello-liquidi   APRI 

finder   APRI 

LORA-english-version   APRI 

Pluviometro-LORA   APRI 

Pillole_di_Promessi_Sposi   APRI 

LORA   APRI 

promessisposi-riscrittura   APRI 

Arduino_crashes   APRI 

Arduino_si_blocca   APRI 

Arduino_e_Trenino   APRI 

millis_no_overflow   APRI 

millis   APRI 

Arduino_millis_no_Overflow   APRI 

millis   APRI