
Negli ultimi anni la tecnologia LoRa ha aperto la strada a nuove forme di comunicazione decentralizzata. Tra i progetti più interessanti c’è Meshtastic, una piattaforma open source che permette di creare reti radio mesh per inviare messaggi senza Internet, senza rete cellulare e senza infrastrutture centralizzate.
L’idea è semplice: piccoli dispositivi LoRa comunicano tra loro e inoltrano i messaggi nodo dopo nodo, creando una rete autonoma che può coprire intere città o territori rurali.
Come funziona la rete mesh
In una rete Meshtastic ogni dispositivo è chiamato nodo. Quando un nodo invia un messaggio, questo viene trasmesso via LoRa e può essere ricevuto da tutti i dispositivi nel raggio radio.
Se un nodo riceve un messaggio che non è destinato a lui, può ritrasmetterlo, permettendo al segnale di viaggiare più lontano. Questo meccanismo crea una rete mesh, in cui la copertura cresce con l’aumentare dei dispositivi.
Il sistema è progettato per messaggi brevi: chat di testo, coordinate GPS, dati di sensori o piccoli pacchetti informativi.
La distanza tra due nodi dipende da antenne e ambiente, ma in genere si parla di:
-
2–5 km in città
-
10–20 km in campo aperto
I nodi della rete
Un nodo Meshtastic è composto da pochi elementi hardware:
-
microcontrollore ESP32
-
modulo radio LoRa
-
antenna 868 MHz (Europa)
-
alimentazione a batteria o USB
Tra le schede più diffuse:
-
TTGO T-Beam
-
Heltec WiFi LoRa 32
-
dispositivi dedicati Meshtastic
Il firmware Meshtastic si installa direttamente sulla scheda e gestisce automaticamente:
-
routing mesh
-
cifratura dei messaggi
-
gestione dei nodi
-
sincronizzazione della rete
Una volta acceso, il nodo entra automaticamente nella rete e può essere configurato tramite Bluetooth o USB usando l’app Meshtastic.
Il ruolo di un “server” nella rete Meshtastic
A differenza delle reti LoRaWAN, Meshtastic non richiede un server centrale per funzionare. La rete continua a operare anche senza Internet.
Tuttavia è possibile aggiungere un server opzionale che svolge alcune funzioni utili:
-
archiviare i messaggi ricevuti
-
creare dashboard e mappe dei nodi
-
collegare più reti tramite Internet
-
analizzare traffico e telemetria
Questo server di solito riceve i dati tramite MQTT, un protocollo molto diffuso nelle reti IoT.
Collegare la rete al server tramite MQTT
Molti nodi Meshtastic possono pubblicare i dati su un broker MQTT. Il flusso tipico è:
-
nodo Meshtastic
-
gateway collegato a Internet
-
broker MQTT
-
applicazioni server
Il server può quindi sottoscriversi ai topic MQTT e ricevere i messaggi della rete.
Esempio di topic tipico:
I messaggi arrivano in formato JSON o binario e possono contenere:
-
testo chat
-
posizione GPS
-
stato del nodo
-
telemetria
Esempio di server che legge la rete
Un server semplice può essere scritto in pochi minuti usando Python e MQTT.
Esempio di consumer che riceve i messaggi:
import paho.mqtt.client as mqtt
MQTT_HOST = "localhost"
TOPIC = "meshtastic/#"
def on_connect(client, userdata, flags, rc):
print("Connected")
client.subscribe(TOPIC)
def on_message(client, userdata, msg):
try:
data = json.loads(msg.payload.decode())
print("Messaggio ricevuto:", data)
except:
print("Raw:", msg.payload)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(MQTT_HOST, 1883)
client.loop_forever()
Questo tipo di servizio può poi:
-
salvare i messaggi su database
-
creare API REST
-
mostrare i nodi su una mappa
-
generare notifiche
Una rete radio decentralizzata
Meshtastic dimostra come sia possibile costruire una rete di comunicazione distribuita, basata su hardware economico e software open source.
Con pochi dispositivi LoRa e qualche riga di codice server, è possibile creare infrastrutture locali per:
-
messaggistica off-grid
-
monitoraggio ambientale
-
comunicazioni di emergenza
-
reti comunitarie indipendenti
In uno scenario in cui la connettività globale può diventare fragile, progetti come Meshtastic rappresentano un esempio concreto di rete resiliente, distribuita e accessibile a chiunque abbia competenze tecniche di base.









