
MeshCore room-server-v1.17.0
Um novo protocolo de malha de roteamento híbrido e leve para rádios de pacote.
Sobre o MeshCore
MeshCore é uma biblioteca C++ leve e portátil que possibilita o roteamento de pacotes com múltiplos saltos para projetos embarcados que utilizam LoRa e outros rádios de pacote. É projetada para desenvolvedores que desejam criar redes de comunicação resilientes e descentralizadas que funcionam sem a internet.
🔍 O que é 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é-construído usando ferramentas como Adafruit ESPTool e interagir com a rede através de um console serial.
O MeshCore oferece a capacidade de criar redes mesh sem fio, semelhante ao Meshtastic e Reticulum, mas com foco no roteamento leve de pacotes com múltiplos saltos 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 por 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 com Múltiplos Saltos
- Dispositivos podem encaminhar mensagens através de vários 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 "Companheiro" não repetem mensagens 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 se auto-repara.
- Baixo Consumo de Energia – Ideal para dispositivos alimentados por bateria ou energia solar.
- Simples de Implantar – Aplicativos de exemplo pré-construídos facilitam a inicialização.
🎯 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á fora do ar.
- Atividades ao Ar Livre: Comunicação em trilhas, camping e corridas de aventura.
- Aplicações Táticas e de Segurança: Casos de uso militar, policial e segurança privada.
- Redes IoT e de Sensores: Colete dados de sensores remotos e os retransmita para um local central.
🚀 Como Começar
- Assista à Playlist de Início Rápido do MeshCore do The Comms Channel
- Assista à Apresentação Técnica do MeshCore por Liam Cottle.
- Leia nossas Perguntas Frequentes e Documentação.
- Grave o firmware MeshCore em um dispositivo compatível.
- Conecte-se com um cliente compatível.
Para desenvolvedores:
- Instale o PlatformIO no Visual Studio Code.
- Clone e abra o repositório MeshCore no Visual Studio Code.
- Veja os aplicativos de exemplo que você pode modificar e executar:
- Companion Radio - Para uso com um aplicativo de chat externo, via BLE, USB ou Wi-Fi.
- KISS Modem - Ponte de protocolo KISS serial para aplicações host. (documentação do protocolo)
- Simple Repeater - Estende a cobertura da rede retransmitindo mensagens.
- Simple Room Server - Um servidor BBS simples para Postagens compartilhadas.
- Simple Secure Chat - Comunicação de texto segura baseada em terminal entre dispositivos.
- Simple Sensor - Nó sensor remoto com telemetria e alertas.
O exemplo Simple Secure Chat pode ser interagido através do Monitor Serial no Visual Studio Code, ou com um Terminal Serial USB no Android.
⚡️ MeshCore Flasher
Temos firmware pré-construído 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
- Após a gravação, você pode 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.
- Web: https://app.meshcore.nz
- Android: https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android
- iOS: https://apps.apple.com/us/app/meshcore/id6742354151?platform=iphone
- NodeJS: https://github.com/liamcottle/meshcore.js
- Python: https://github.com/fdlamotte/meshcore-cli
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 é projetado para dispositivos listados no MeshCore Flasher
📜 Licença
MeshCore é um software de código aberto lançado sob a licença MIT. Você é livre para usar, modificar e distribuí-lo para projetos pessoais e comerciais.
Contribuindo
Por favor, envie PRs usando 'dev' como branch base! Para mudanças pequenas, basta enviar seu PR e tentaremos revisá-lo, mas para qualquer coisa mais 'impactante', abra uma Issue primeiro e inicie uma discussão. É melhor expor o que você deseja alcançar primeiro e tentar chegar a um consenso sobre a melhor abordagem, especialmente quando impacta a estrutura ou arquitetura deste código.
Aqui estão alguns princípios gerais que você deve tentar seguir:
- Mantenha a simplicidade. Por favor, não pense como um programador de linguagem de alto nível. Pense embarcado e mantenha o código conciso, sem 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 dos módulos fonte do núcleo. (Um .clang-format provavelmente será adicionado em breve, mas por favor NÃO reformate retroativamente o código existente. Isso só cria diffs desnecessários que dificultam a localização de problemas)
Ajude-nos a priorizar! Reaja com joinha (👍) nas issues/PRs que mais lhe interessam. Observamos a contagem de reações ao planejar o trabalho.
Executando testes unitários
Para executar testes unitários, execute o seguinte comando:
pio test --environment native --verbose
Road-Map / A Fazer
Há várias funcionalidades importantes em andamento, sem prazos específicos definidos ainda. Em ordem cronológica aproximada:
- Rádio Companion: reformulação da IU
- Repeater + Room Server: adicionar ACLs (como o Sensor Node tem)
- Padronizar modo Bridge para repetidores
- Repeater/Bridge: Padronizar os Códigos de Transporte para zoneamento/filtragem
- Core + Repeater: descoberta aprimorada de vizinhos sem salto
- Core: suporte a caminho manual de ida e volta
- Companion + Apps: suporte para múltiplas sub-meshs (e modo de repetição de cliente 'off-grid')
- Core + Apps: suporte para compressão de mensagens LZW
- Core: CR dinâmico (Taxa de Codificação) para saltos fracos vs fortes
- Core: novo framework para hospedar múltiplos nós virtuais em um dispositivo físico
- Especificação do protocolo V2: discussão e consenso sobre o protocolo de pacotes V2, incluindo hashes de caminho, novas especificações de criptografia, etc.
📞 Obtenha Suporte
- Reporte bugs e solicite funcionalidades na página GitHub Issues.
- Encontre guias e componentes adicionais no meu site.
- Junte-se ao Discord do MeshCore para conversar com os desenvolvedores e obter ajuda da comunidade.