MeshRadar - веб-интерфейс для управления Meshtastic mesh-сетями 📡

MeshRadar - это современный веб-интерфейс для управления и мониторинга Meshtastic mesh-сетей, работающих поверх LoRa-радиоканала. Проект ориентирован на пользователей, которым требуется централизованный контроль сети, визуализация маршрутов и анализ работы узлов в реальном времени.

В отличие от мобильных приложений Meshtastic, MeshRadar предоставляет браузерный UI, backend на FastAPI и WebSocket-модель, что делает его удобным для серверов, NUC, домашних узлов и диспетчерских систем.


Оглавление

Назначение MeshRadar в экосистеме Meshtastic 🧭

MeshRadar не заменяет прошивку Meshtastic и не участвует в радиомаршрутизации. Его задача - управление, визуализация и анализ уже существующей mesh-сети.

  • подключение к Meshtastic-узлам по USB, TCP и BLE;
  • централизованный чат и история сообщений;
  • карта сети и визуализация узлов;
  • traceroute сообщений по mesh-маршрутам.

Архитектура MeshRadar 🧩

Общая схема работы

MeshRadar построен по классической клиент–серверной модели:

  • Meshtastic-узел подключается к backend;
  • backend обрабатывает пакеты и события;
  • frontend получает обновления через WebSocket.

Backend (FastAPI)

  • FastAPI - асинхронный REST API;
  • meshtastic-python - взаимодействие с узлами;
  • aiosqlite - хранение истории сообщений;
  • WebSocket - события в реальном времени.

Frontend (React + TypeScript)

  • React 18 + TypeScript;
  • Zustand - управление состоянием;
  • Tailwind CSS - оформление интерфейса;
  • Radix UI - доступные UI-компоненты.

Способы подключения к Meshtastic 🔌

USB (Serial)

Прямое подключение Meshtastic-устройства по USB - самый стабильный вариант. Используется для стационарных узлов и серверов.

TCP / Wi-Fi

Подключение по IP позволяет вынести MeshRadar на отдельный сервер, не привязываясь к физическому USB-порту.

BLE (Bluetooth)

BLE-подключение поддерживается, но имеет ограничения по стабильности и версии прошивки Meshtastic. Статус - need testing.

Для постоянной работы рекомендуется использовать USB или TCP. BLE подходит для тестирования и мобильных сценариев.


Основные функции MeshRadar ⚙️

Список узлов (Node List)

  • ID узла и имя пользователя;
  • уровень батареи;
  • SNR и качество связи;
  • GPS-позиция.

Чат и подтверждение доставки 💬

MeshRadar поддерживает каналы и личные сообщения, включая ACK / NAK подтверждение доставки, что критично для анализа надёжности mesh-сети.

Traceroute Meshtastic 🛤️

Traceroute позволяет визуально увидеть маршрут сообщения через узлы, оценить количество hop'ов и качество линков.


Установка и развёртывание MeshRadar 🚀

Ручной запуск

Backend запускается на FastAPI (порт 8000), frontend - через Vite (порт 5173).

Portable-версия (.exe)

Подходит для Windows-систем без окружения Python и Node.js.

Docker-развёртывание 🐳

Рекомендуемый способ для серверов и постоянной работы. Поддерживается проброс USB-устройств.

Пример docker-compose.yml

version: '3.8'
services:
  meshradar:
    image: curlysasha/meshradar:latest
    ports:
      - "8000:8000"
      - "5173:5173"
    devices:
      - "/dev/ttyUSB0:/dev/ttyUSB0"
    restart: unless-stopped

Лицензия и ограничения ⚖️

MeshRadar распространяется под лицензией GPLv3 + Commons Clause. Использование разрешено для некоммерческих и исследовательских целей, но запрещено предоставление как платного сервиса.


Для кого предназначен MeshRadar 🎯

  • радиолюбители и LoRa-энтузиасты;
  • полевые mesh-сети без интернета;
  • диспетчерские и мониторинговые системы;
  • исследование маршрутизации Meshtastic.

Типовые ошибки при подключении MeshRadar ⚠️

Большинство проблем при работе с MeshRadar связано не с самим проектом, а с особенностями подключения Meshtastic-узлов, окружения или сетевой изоляции. Ниже перечислены наиболее распространённые ошибки и их причины.

MeshRadar не видит USB-устройство 🔌

  • отсутствуют права на доступ к serial-порту;
  • устройство занято другим приложением (Meshtastic CLI, mobile app);
  • USB не проброшен в Docker-контейнер.

Для Docker требуется явное указание devices: в docker-compose.yml.

Нет данных узлов или пустая карта 🗺️

  • в сети отсутствуют GPS-координаты;
  • узлы находятся в Client Mute и не ретранслируют данные;
  • история ещё не накоплена (пустая SQLite).

Сообщения отправляются, но не доходят 💬

  • недостаточный Hop Count;
  • перегруженный эфир (слишком много Router-узлов);
  • плохой SNR между ключевыми узлами.

BLE-подключение нестабильно 📶

BLE остаётся самым капризным способом подключения: многое зависит от версии прошивки Meshtastic, адаптера Bluetooth и ОС. Для постоянной работы рекомендуется использовать USB или TCP.

Перед использованием BLE убедитесь, что прошивка Meshtastic обновлена до последней стабильной версии.


Исходный код и документация MeshRadar 📁

MeshRadar является open-source проектом, активно развиваемым сообществом Meshtastic. Полный исходный код, инструкции по сборке, Docker-конфигурации и обновления доступны в официальном репозитории проекта.

🔗 GitHub: MeshRadar - Modern web interface for Meshtastic


Скачивание portable-версии MeshRadar для Windows 📥

Для пользователей Windows доступна portable-версия MeshRadar, представляющая собой автономный .exe-файл. Такой вариант не требует установки Python, Node.js или дополнительных зависимостей и подходит для быстрого запуска на чистой системе.

  • не требует установки окружения;
  • удобен для тестирования и полевых условий;
  • подходит для запуска на Windows без Docker.

Portable-версия собирается из актуального исходного кода проекта и распространяется через официальный раздел релизов.

📦 Скачать MeshRadar Portable (.exe) - официальный релиз v1.1

После запуска MeshRadar.exe backend и frontend стартуют автоматически. Интерфейс доступен через браузер, обычно по адресу http://localhost:5173.

При первом запуске portable-версии может потребоваться разрешение брандмауэра Windows на доступ к локальным портам.

```


🔥 Репетиторы по математике • 5-11 класс • Поступление в физико-математические школы России