Jak wizualnie monitorować sieć Meshtastic za pomocą MeshSense
Jeśli kiedykolwiek budowałeś autonomiczną sieć używając płytek takich jak Heltec czy TTGO T-Beam z firmwarem Meshtastic, prawdopodobnie napotkałeś typowy problem z obserwowalnością. Węzły są rozrzucone po dachach, balkonach czy plecakach, a wpatrywanie się w maleńki ekranik 0,96 cala lub stukanie przez aplikację mobilną tylko po to, by szybko ocenić trasy, szybko się nudzi. Chcesz prawdziwego dashboarda z mapą, wykresami siły sygnału i śledzeniem pakietów.
Projekt MeshSense rozwiązuje dokładnie ten problem. To lekka aplikacja open-source, która łączy się z węzłem Meshtastic i renderuje mapę na żywo ze wszystkimi parametrami sieci.

Czym jest aplikacja
Główną funkcją MeshSense jest zbieranie statystyk w czasie rzeczywistym bezobejścia i skomplikowanych integracji. Wystarczy połączyć się z węzłem bazowym przez Bluetooth lub zwykłe Wi-Fi, a interfejs zacznie gromadzić dane z otoczenia.
Oto główne scenariusze, w których dashboard oszczędza czas:
- Topologia i mapa węzłów. Aplikacja wyraźnie wyświetla, które węzły są aktualnie aktywne, ich fizyczne lokalizacje GPS i kiedy ostatnio komunikowały się.
- Śledzenie tras. Funkcja traceroute pozwala błyskawicznie zobaczyć, przez ile pośrednich przekaźników przeszedł pakiet i która trasa była optymalna.
- Raporty jakości sygnału. Możesz monitorować SNR i poziomy odbioru z każdego węzła, aby dostroić anteny kierunkowe lub zidentyfikować martwe strefy w mieście.
- Monitorowanie statusu sprzętu. Poziom naładowania baterii, temperatura i dane telemetryczne z urządzeń zdalnych są wyświetlane.
Uruchamianie na serwerze i w trybie headless
Oprócz wersji desktop Electron, projekt dobrze działa na minikomputerach jednopłytkowych jak Raspberry Pi umieszczonych w pobliżu stacji bazowej.
Dostępny jest tryb headless do pracy bez interfejsu graficznego. MeshSense uruchamia lokalny serwer WWW dostępny z dowolnej przeglądarki w sieci lokalnej, zabezpieczony kluczem secret:
export ADDRESS=10.0.1.20 # IP-адрес вашей Meshtastic ноды
export PORT=5920 # Порт веб-интерфейса
ACCESS_KEY=mySecretKey ./meshsense-x86_64.AppImage --headless
Przy uruchamianiu aplikacji na płycie ARM64 bez monitora, deweloperzy sugerują uruchomienie AppImage przez wirtualny framebuffer:
dbus-run-session xvfb-run ./meshsense-arm64.AppImage --headless \
--disable-gpu --in-process-gpu --disable-software-rasterizer
Na systemach Debian lub Ubuntu trzeba zainstalować parę pakietów przed uruchomieniem AppImage: libfuse2 aby kontener sam działał i fonts-noto-color-emoji aby ikony poprawnie wyświetlały się w interfejsie.
Pod maską
Architektura projektu jest podzielona na trzy komponenty: frontend oparty na Vite, backend API Node.js i wrapper Electron.
Jest ciekawy szczegół implementacyjny w kodzie: do bezpośredniej interakcji z modułami radiowymi przez Bluetooth deweloperzy zbudowali własny moduł webbluetooth powiązany z systemowym libdbus-1-dev i cmake. Oznacza to, że przy budowaniu lokalnym ze źródeł trzeba najpierw skompilować binarną bibliotekę:
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
W trybie deweloperskim uruchomienie jest podzielone na dwa niezależne procesy. Frontend startuje na porcie 5173, a backend na porcie 3001, automatycznie proxy nieobsłużonych tras do Vite:
# В первом терминале (UI)
cd ui
PORT=5921 npm run dev
# Во втором терминале (API)
cd api
export DEV_UI_URL=http://localhost:5921
PORT=5920 npm run dev
W README autorzy uczciwie ostrzegają o błędzie w trybie dev: gdy Vite hot-reloaduje, subskrypcje zdarzeń stanu czasem się duplikują, powodując podwójne linie w logach. Naprawia się to przez po prostu przeładowanie strony w przeglądarce.
Dla kogo jest ten projekt
MeshSense to przydatne narzędzie dla krótkofalowców, entuzjastów LoRa i tych, którzy budują zdecentralizowane sieci komunikacyjne na wypady, działki czy awaryjne przekazywanie wiadomości w mieście. Eliminuje konieczność ręcznego parsowania logów przez port szeregowy czy zgadywania, dlaczego pakiet nie dotarł do następnego wzgórza.
Jeśli masz już serwer domowy lub Raspberry Pi działający z podłączonym węzłem LoRa, warto dodać MeshSense do startu i zyskać czysty podgląd eteru tuż przed sobą.
Powiązane projekty