>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
TypeScript

Como monitorar visualmente sua rede Meshtastic com o MeshSense

Se você já construiu uma rede autônoma usando placas como Heltec ou TTGO T-Beam com firmware Meshtastic, provavelmente encontrou o problema típico de observabilidade. Os nós estão espalhados por telhados, varandas ou mochilas, e ficar olhando para uma tela minúscula de 0,96 polegadas ou navegar por um aplicativo móvel apenas para avaliar rotas rapidamente se torna cansativo. Você quer um dashboard adequado com um mapa, gráficos de intensidade de sinal e rastreamento de pacotes.

O projeto MeshSense resolve exatamente esse problema. É uma aplicação leve e open-source que se conecta ao seu nó Meshtastic e renderiza um mapa ao vivo com todos os parâmetros da rede.

O que a aplicação pode fazer

O recurso principal do MeshSense é a coleta de estatísticas em tempo real sem gambiarras e integrações complexas. Você simplesmente conecta ao nó base via Bluetooth ou Wi-Fi comum, e a interface começa a coletar dados da área ao redor.

Aqui estão os principais cenários onde o dashboard economiza tempo:

  • Topologia e mapa de nós. A aplicação exibe claramente quais nós estão ativos no momento, suas localizações GPS físicas e quando foi a última comunicação.
  • Rastreamento de rotas. O recurso de traceroute permite ver instantaneamente quantos relés intermediários um pacote passou e qual caminho foi o ideal.
  • Relatórios de qualidade de sinal. Você pode monitorar níveis de SNR e recepção de cada nó para ajustar antenas direcionais ou identificar zonas mortas na cidade.
  • Monitoramento de status de hardware. Carga da bateria, temperatura e dados de telemetria de dispositivos remotos são exibidos.

Executando em um servidor e em modo headless

Além da versão desktop Electron, o projeto funciona bem em computadores de placa única como Raspberry Pi posicionados perto da estação de rádio base.

Um modo headless está disponível para operação sem interface gráfica. O MeshSense inicia um servidor web local acessível de qualquer navegador na rede local, protegido com uma chave secreta:

export ADDRESS=10.0.1.20  # IP-адрес вашей Meshtastic ноды
export PORT=5920          # Порт веб-интерфейса

ACCESS_KEY=mySecretKey ./meshsense-x86_64.AppImage --headless

Ao executar a aplicação em uma placa ARM64 sem monitor, os desenvolvedores sugerem iniciar o AppImage através de um framebuffer virtual:

dbus-run-session xvfb-run ./meshsense-arm64.AppImage --headless \
 --disable-gpu --in-process-gpu --disable-software-rasterizer

Para sistemas baseados em Debian ou Ubuntu, instale alguns pacotes antes de iniciar o AppImage: libfuse2 para o próprio container funcionar e fonts-noto-color-emoji para os ícones aparecerem corretamente na interface.

Por baixo dos panos

A arquitetura do projeto é dividida em três componentes: um frontend baseado em Vite, um backend de API Node.js e um wrapper Electron.

Há um detalhe interessante de implementação no código: para interação direta com módulos de rádio via Bluetooth, os desenvolvedores construíram um módulo personalizado webbluetooth vinculado a libdbus-1-dev e cmake do sistema. Isso significa que ao construir localmente a partir do código-fonte, você precisará compilar o binding binário primeiro:

git clone --recurse-submodules https://github.com/Affirmatech/MeshSense.git
cd MeshSense

# Сборка нативной зависимости для Bluetooth
cd api/webbluetooth
npm i
npm run build:all
cd ../..

# Установка остальных пакетов
./update.mjs

Para desenvolvimento, a inicialização é dividida em dois processos independentes. O frontend inicia na porta 59, e o backend na porta 59, automaticamente faz proxy de rotas não tratadas para o Vite:

# В первом терминале (UI)
cd ui
PORT=5921 npm run dev

# Во втором терминале (API)
cd api
export DEV_UI_URL=http://localhost:5921
PORT=5920 npm run dev

No README, os autores alertam honestamente sobre um bug no modo dev: quando o Vite faz hot-reload, as assinaturas de eventos de estado às vezes duplicam, causando linhas de log para aparecerem duas vezes. Isso é corrigido simplesmente recarregando a página no navegador.

Para quem o projeto é útil

O MeshSense é um utilitário prático para radioamadores, entusiastas de LoRa e aqueles que constroem redes de comunicação descentralizadas para trilhas, casas de campo ou mensagens urbanas de backup. Elimina a necessidade de analisar logs manualmente através de uma porta serial ou adivinhar por que um pacote não alcançou a próxima colina.

Se você já tem um servidor doméstico ou Raspberry Pi rodando com um nó LoRa conectado, faz sentido adicionar o MeshSense à sua inicialização e obter uma visão clara das ondas de rádio bem na sua frente.

Projetos relacionados