RiparaTa.it | Laboratorio Tecnico Informatico

Contattaci Subito

Smartphone: 3888673983
Laptop & PC: 3924685045

Orari delle sedi:

Smartphone:
9:15-13:15 | 16:00-18:30
Laptop & PC:
9:15-13:00 | 17:00-19:45

Email

[email protected]
Da Lunedì a Venerdì
🇬🇧🇫🇷🇩🇪

Meshtastic: come funziona la rete LoRa mesh e come creare un server per gestire i nodi

Categoria: Tecnologia

Tecnologia

Meshtastic: come funziona la rete LoRa mesh e come creare un server per gestire i nodi


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

https://cdn.shopify.com/s/files/1/0673/0108/1390/files/meshtastic-mesh-diagram.svg?v=1770219220
https://www.researchgate.net/profile/Eduardo-Godoy-2/publication/342856728/figure/fig1/AS%3A1040144131969027%401625001094913/Architecture-of-the-Hybrid-LoRa-Mesh-LoRaWAN-Network.jpg
 
4

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

 
https://m.media-amazon.com/images/I/61gvSa11h7L._AC_UF894%2C1000_QL80_.jpg
 
4

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 è:

  1. nodo Meshtastic

  2. gateway collegato a Internet

  3. broker MQTT

  4. applicazioni server

Il server può quindi sottoscriversi ai topic MQTT e ricevere i messaggi della rete.

Esempio di topic tipico:

 
meshtastic/region/node
 

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 json
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.