Un software per gestire off-grid la rete LoRa MeshCom
L’obiettivo di questo progetto, puramente amatoriale, è quello di gestire una infrastruttura radioamatoriale off-grid (quindi non raggiungibile via internet) composta da schede lora con firmware meshcom (chiamate “nodi” o stazioni radio mobili) che dialogano tra loro (tecnologia mesh) scambiandosi messaggi, posizioni e telemetrie via radio (433.175 MHz). Queste informazioni sono raccolte in un database e gestite da una stazione radio che chiameremo “campo base o gateway”. Il campo base (postazione fissa) ha a sua volta una scheda lora collegata fisicamente al computer ed elabora le informazioni ricevute. Se provvisto di connessione ad internet opererà come “gateway”, quindi potrà interagire con strutture esterne (es. altri gateway e/o nodi lora). I nodi mobili (tracker) sono provvisti di schede con GPS, il campo base può farne a meno e gestire le coordinate manualmente. Il campo base potrà:
- registrare uno storico di tutte le informazioni transitate;
- interagire con brevi messaggi di testo con i nodi mobili e con il resto del network;
- conoscere le posizioni e la distanza dei nodi mobili;
- visualizzare su mappa (se provvisto di internet) le posizioni dei nodi mobili;
- attivare automatismi (es. avvisi) ed eseguire procedure (script) alla ricezione di specifici comandi.
Ogni stazione lora meshcom ha un proprio identificativo (callsign radioamatoriale con ssid) che la rende univoca. Di seguito uno schema rappresentativo, che, come già detto, non ha velleità particolari se non quello di esercizio operativo amatoriale e di programmazione:

Nella rappresentazione vediamo il campo base che può lavorare off-grid con i dispositivi mobili (tipicamente viene collegata una antenna esterna alla scheda lora); i tracker si ascoltano tra loro e in mesh si raggiungono, quindi non è obbligatorio che tutti interagiscano direttamente con il campo base. Un esempio: IK5XMK-33 si trova distante e coperto da montagna e non può sentire il campo base, diversamente sente in maniera reciproca il nodo IK5XMK-31. Con questo potrà interagire e potrà far pervenire le informazioni sulla posizione ed eventuali messaggi fino al campo base IK5XMK-30. Il campo base conseguentemente opererà attraverso IK5XMK-31 che ascolta direttamente e gestirà le informazioni pervenute (visualizzazione della posizione di IK5XMK-31, etc.). Ovviamente molti più nodi potranno essere presenti così da formare una completa e funzionale “maglia radio”. Con l’impiego di apparati radio ricetrasmittenti la struttura potrà completarsi fornendo anche ausilio in fonia. Procediamo adesso, passo dopo passo, alla messa in opera dei programmi che sono preparati in ambiente Windows (provati su W11). E’ richiesta una conoscenza base del sistema operativo e della programmazione/gestione dei dispositivi lora meshcom. Il primo software che andremo a conoscere è chiamato “logger” ed il suo compito è quello di interfacciarsi con la scheda lora attraverso la porta seriale/usb e registrare quanto perviene da essa in un database. Quindi dopo aver programmato la scheda lora in modo che sia operativa (callsign, coordinate della posizione, etc.), collegarla al computer e con un programma di terminale:
- configurare la connessione WIFI (qualsiasi rete, serve solo per attivare le funzioni UDP) con i comandi –setssid SSID e –setpwd PWD
- configurare l’IP al quale inviare i dati (può essere 255.255.255.255) con il comando –-extudpip ip
- attivare la trasmissione e ricezione dei dati con il comando –extudp on
Adesso procediamo con la configurazione (file config.json che deve essere presente nella stessa directory del programma) del logger impostando la porta seriale in uso, il nominativo radioamatoriale che stiamo usando sulla scheda lora e il percorso (path) del database. Di default lo crea nella directory ove è presente logger. Per informazione, se modifichiamo il path, questo dovrà essere del tipo “C:\\Users\\user.user-PC\\Desktop\\meshcom.db” (attenzione alle \\). Consiglio di posizionare tutti i programmi in una cartella sul desktop. Eseguiamo il programma (esegui_logger.bat) e attendiamo che riceva dei pacchetti (se non è configurata la scheda lora come gateway e può operare su internet, questa dovrà interagire in RF con altri nodi). In un ambiente off-grid accendiamo vicino anche i nodi tracker in modo sia possibile assicurarci della loro funzionalità. Se tutto è configurato correttamente, lo scenario sarà simile al seguente:

Il programma logger riceve i dati (posizione, telemetria e messaggi) dalla scheda lora via seriale, la presenza della porta 1703 UDP è necessaria per l’interfacciamento con gli altri programmi sella suite. Appena vediamo che sono stati acquisiti dei pacchetti “msg” potremo iniziare a operare sul secondo programma (messaggi). La prima operazione è quella di editare il file config_messages.json e verificare il percorso del database. Se lasciamo il percorso del database di default (come nella configurazione del logger), questo verrà cercato nella cartella di esecuzione dei programmi. Lanciamo il programma con esegui_messages.bat. Viene letto il database (default ogni 10 secondi, parametro POLL_INTERVAL) e mostrato l’ultimo messaggio pervenuto (l’archivio completo è consultabile da qualsiasi programma client-browser sqlite3 reperibile su internet). La gestione di questi dati e programmi è pensata per un uso “immediato, sul posto”, consiglio di cancellare periodicamente il database (es. da operazioni pianificate di Windows) se si lasciano in esecuzione continua.

Il programma mc_messages lavora sui gruppi (campo DST). In alto a sinistra è possibile impostare un filtro sui gruppi relativamente ai messaggi in arrivo da visualizzare (es. 22251 o 222*). In occasione di una specifica operatività (es. esercitazione) possiamo predisporre un gruppo esclusivo da attenzionare. Facendo click con il mouse sul campo DST di un messaggio si apre una finestra ove è possibile trasmettere una risposta che verrà inviata alla scheda lora.

Il messaggio in risposta è stato ricevuto dal logger che provvede ad inviarlo alla mesh:

Con appositi script possiamo interagire anche su telegram:

A breve il proseguo con gli altri programmi riguardanti le posizioni e mappa dei nodi.
Work in progress…