Voltar às atualizações
New releaseAug 9, 2026

MeshCore room-server-v1.17.0

Um novo protocolo de malha de roteamento híbrido e leve para rádios de pacote.

Compartilhar

Sobre o MeshCore

MeshCore é uma biblioteca C++ leve e portátil que possibilita o roteamento de pacotes multi-hop para projetos embarcados usando LoRa e outros rádios de pacotes. Ela foi projetada para desenvolvedores que desejam criar redes de comunicação resilientes e descentralizadas que funcionam sem a internet.

🔍 O que é o MeshCore?

O MeshCore agora suporta uma variedade de dispositivos LoRa, permitindo a gravação fácil sem a necessidade de compilar o firmware manualmente. Os usuários podem gravar um binário pré-compilado usando ferramentas como o Adafruit ESPTool e interagir com a rede através de um console serial. O MeshCore oferece a capacidade de criar redes mesh sem fio, semelhantes ao Meshtastic e ao Reticulum, mas com foco no roteamento de pacotes multi-hop leve para projetos embarcados. Diferente do Meshtastic, que é voltado para comunicação LoRa casual, ou do Reticulum, que oferece redes avançadas, o MeshCore equilibra simplicidade com escalabilidade, tornando-o ideal para soluções embarcadas personalizadas, onde dispositivos (nós) podem se comunicar a longas distâncias retransmitindo mensagens através de nós intermediários. Isso é especialmente útil em situações off-grid, de emergência ou táticas, onde a infraestrutura de comunicação tradicional não está disponível.

⚡ Principais Recursos

  • Roteamento de Pacotes Multi-Hop
    • Os dispositivos podem encaminhar mensagens através de múltiplos nós, estendendo o alcance além do alcance de um único rádio.
    • Suporta até um número configurável de saltos para equilibrar a eficiência da rede e evitar tráfego excessivo.
    • Os nós usam funções fixas onde os nós "Companion" não repetem mensagens de forma alguma para evitar que caminhos de roteamento adversos sejam usados.
  • Suporta Rádios LoRa – Funciona com Heltec, RAK Wireless e outros hardwares baseados em LoRa.
  • Descentralizado e Resiliente – Nenhum servidor central ou internet é necessário; a rede é auto-recuperável.
  • Baixo Consumo de Energia – Ideal para dispositivos alimentados por bateria ou energia solar.
  • Fácil de Implantar – Aplicações de exemplo pré-compiladas facilitam o início.

🎯 Para Que Você Pode Usar o MeshCore?

  • Comunicação Off-Grid: Mantenha-se conectado mesmo em áreas remotas.
  • Resposta a Emergências e Recuperação de Desastres: Configure redes instantâneas onde a infraestrutura está inoperante.
  • Atividades ao Ar Livre: Comunicação em trilhas, acampamentos e corridas de aventura.
  • Aplicações Táticas e de Segurança: Casos de uso militar, policial e de segurança privada.
  • IoT e Redes de Sensores: Colete dados de sensores remotos e retransmita-os para um local central.

🚀 Como Começar

Para desenvolvedores:

O exemplo Simple Secure Chat pode ser interagido através do Monitor Serial no Visual Studio Code, ou com um Serial USB Terminal no Android.

⚡️ Gravador do MeshCore

Temos firmware pré-compilado pronto para gravar em dispositivos compatíveis.

  • Acesse https://meshcore.io/flasher
  • Selecione um dispositivo compatível
  • Grave um dos tipos de firmware:
    • Companion, Repeater ou Room Server
  • Assim que a gravação estiver concluída, você pode se conectar com um dos clientes MeshCore abaixo.

📱 Clientes MeshCore

Firmware Companion

O firmware companion pode ser conectado via BLE, USB ou Wi-Fi, dependendo do tipo de firmware que você gravou.

Firmware Repeater e Room Server

O firmware repeater e room server pode ser configurado via USB na ferramenta de configuração web.

Eles também podem ser gerenciados via LoRa no aplicativo móvel usando o recurso de Gerenciamento Remoto.

🛠 Compatibilidade de Hardware

O MeshCore foi projetado para dispositivos listados no MeshCore Flasher

📜 Licença

O MeshCore é um software de código aberto lançado sob a Licença MIT. Você é livre para usá-lo, modificá-lo e distribuí-lo para projetos pessoais e comerciais.

Contribuindo

Por favor, envie PRs usando 'dev' como branch base! Para mudanças menores, basta enviar seu PR e tentaremos revisá-lo, mas para qualquer coisa mais 'impactante', por favor abra uma Issue primeiro e inicie uma discussão. É melhor sondar o que você deseja alcançar primeiro, e tentar chegar a um consenso sobre qual é a melhor abordagem, especialmente quando isso impacta a estrutura ou arquitetura desta base de código.

Aqui estão alguns princípios gerais que você deve tentar seguir:

  • Mantenha simples. Por favor, não pense como um programador de linguagem de alto nível. Pense embarcado, e mantenha o código conciso, sem quaisquer camadas desnecessárias.
  • Sem alocação dinâmica de memória, exceto durante funções de setup/begin.
  • Use o mesmo estilo de chaves e indentação que está nos módulos de código-fonte principais. (Um .clang-format provavelmente será adicionado em breve, mas por favor NÃO reformate retroativamente o código existente. Isso apenas cria diffs desnecessários que dificultam a localização de problemas)

Ajude-nos a priorizar! Por favor, reaja com joinha nas issues/PRs que você mais se importa. Olhamos as contagens de reações ao planejar o trabalho.

Executando testes unitários

Para executar os testes unitários, execute o seguinte comando:

pio test --environment native --verbose

Road-Map / To-Do

Categorias