Torna agli aggiornamenti
New releaseAug 9, 2026

MeshCore room-server-v1.17.0

Un nuovo protocollo mesh di routing ibrido e leggero per radio a pacchetto.

Condividi

Informazioni su MeshCore

MeshCore è una libreria C++ leggera e portabile che consente il routing multi-hop dei pacchetti per progetti embedded utilizzando LoRa e altre radio a pacchetto. È progettata per sviluppatori che desiderano creare reti di comunicazione resilienti e decentralizzate che funzionano senza internet.

🔍 Cos'è MeshCore?

MeshCore ora supporta una gamma di dispositivi LoRa, consentendo un flashing semplice senza la necessità di compilare manualmente il firmware. Gli utenti possono flashare un binario precompilato utilizzando strumenti come Adafruit ESPTool e interagire con la rete tramite una console seriale. MeshCore offre la possibilità di creare reti mesh wireless, simili a Meshtastic e Reticulum ma con un focus sul routing multi-hop leggero dei pacchetti per progetti embedded. A differenza di Meshtastic, che è pensato per la comunicazione LoRa occasionale, o Reticulum, che offre networking avanzato, MeshCore bilancia semplicità e scalabilità, rendendolo ideale per soluzioni embedded personalizzate, dove i dispositivi (nodi) possono comunicare su lunghe distanze inoltrando messaggi attraverso nodi intermedi. Questo è particolarmente utile in situazioni off-grid, di emergenza o tattiche dove l'infrastruttura di comunicazione tradizionale non è disponibile.

⚡ Caratteristiche principali

  • Routing Multi-Hop dei Pacchetti
    • I dispositivi possono inoltrare messaggi attraverso più nodi, estendendo la portata oltre quella di una singola radio.
    • Supporta un numero configurabile di hop per bilanciare l'efficienza della rete e prevenire traffico eccessivo.
    • I nodi utilizzano ruoli fissi dove i nodi "Companion" non ripetono affatto i messaggi per prevenire l'utilizzo di percorsi di routing dannosi.
  • Supporta Radio LoRa – Funziona con Heltec, RAK Wireless e altro hardware basato su LoRa.
  • Decentralizzato e Resiliente – Nessun server centrale o internet richiesto; la rete è auto-riparante.
  • Basso Consumo Energetico – Ideale per dispositivi alimentati a batteria o solare.
  • Semplice da Distribuire – Applicazioni di esempio precompilate rendono facile iniziare.

🎯 Per cosa puoi usare MeshCore?

  • Comunicazione Off-Grid: Rimani connesso anche in aree remote.
  • Risposta alle Emergenze e Ripristino dopo Disastri: Configura reti istantanee dove l'infrastruttura è inattiva.
  • Attività all'Aperto: Comunicazione per escursioni, campeggio e gare di avventura.
  • Applicazioni Tattiche e di Sicurezza: Casi d'uso militari, forze dell'ordine e sicurezza privata.
  • IoT e Reti di Sensori: Raccogli dati da sensori remoti e trasmettili a una posizione centrale.

🚀 Come Iniziare

Per gli sviluppatori:

L'esempio Simple Secure Chat può essere utilizzato tramite il Serial Monitor in Visual Studio Code, o con un Serial USB Terminal su Android.

⚡️ MeshCore Flasher

Abbiamo firmware precompilati pronti da flashare su dispositivi supportati.

  • Avvia https://meshcore.io/flasher
  • Seleziona un dispositivo supportato
  • Flasha uno dei tipi di firmware:
    • Companion, Repeater o Room Server
  • Una volta completato il flashing, puoi connetterti con uno dei client MeshCore qui sotto.

📱 Client MeshCore

Firmware Companion

Il firmware companion può essere connesso tramite BLE, USB o Wi-Fi a seconda del tipo di firmware che hai flashato.

Firmware Repeater e Room Server

Il firmware repeater e room server può essere configurato tramite USB nello strumento di configurazione web.

Possono anche essere gestiti tramite LoRa nell'app mobile utilizzando la funzione Remote Management.

🛠 Compatibilità Hardware

MeshCore è progettato per i dispositivi elencati nel MeshCore Flasher

📜 Licenza

MeshCore è un software open-source rilasciato sotto Licenza MIT. Sei libero di usarlo, modificarlo e distribuirlo per progetti personali e commerciali.

Contribuire

Invia le PR usando 'dev' come branch di base! Per modifiche minori invia semplicemente la tua PR e cercheremo di revisionarla, ma per qualsiasi cosa più 'impatto' apri prima una Issue e avvia una discussione. È meglio sondare prima quello che vuoi ottenere, e cercare di raggiungere un consenso sull'approccio migliore, specialmente quando impatta la struttura o l'architettura di questo codebase.

Ecco alcuni principi generali che dovresti cercare di seguire:

  • Mantienilo semplice. Per favore, non pensare come un programmatore di linguaggi di alto livello. Pensa embedded, e mantieni il codice conciso, senza livelli non necessari.
  • Nessuna allocazione dinamica di memoria, tranne durante le funzioni di setup/begin.
  • Usa lo stesso stile di parentesi e indentazione presente nei moduli sorgente core. (Un .clang-format sarà probabilmente aggiunto presto, ma per favore NON riformattare retroattivamente il codice esistente. Questo crea solo diff non necessari che rendono più difficile trovare i problemi)

Aiutaci a prioritizzare! Per favore reagisci con un pollice in su alle issue/PR che ti interessano di più. Guardiamo i conteggi delle reazioni quando pianifichiamo il lavoro.

Eseguire gli unit test

Per eseguire gli unit test, esegui il seguente comando:

pio test --environment native --verbose

Road-Map / To-Do

Categorie