Skip to content

VladelfPv/MeshCoreMTL

Repository files navigation

О MeshCore

MeshCore — это лёгкая, портативная библиотека на C++, которая обеспечивает многоканальную маршрутизацию пакетов для встраиваемых проектов с использованием LoRa и других пакетных радиомодулей. Она создана для разработчиков, которые хотят создавать устойчивые децентрализованные сети связи, работающие без доступа к интернету.

🔍 Что такое MeshCore?

Сейчас MeshCore поддерживает ряд устройств LoRa, что позволяет легко прошивать их без необходимости вручную компилировать прошивку. Пользователи могут загрузить предварительно собранный бинарный файл с помощью таких инструментов, как Adafruit ESPTool, и взаимодействовать с сетью через последовательную консоль. MeshCore даёт возможность создавать беспроводные ячеистые сети — аналогично Meshtastic и Reticulum, но с упором на лёгковесную многоканальную маршрутизацию пакетов для встраиваемых проектов. В отличие от Meshtastic, который предназначен для простой LoRa‑связи, или Reticulum с его расширенными сетевыми возможностями, MeshCore сочетает простоту с масштабируемостью, что делает его идеальным решением для кастомных встраиваемых систем, где устройства (узлы) могут обмениваться данными на больших расстояниях, передавая сообщения через промежуточные узлы. Это особенно полезно в условиях отсутствия сети, при чрезвычайных ситуациях или в тактических сценариях, когда традиционная инфраструктура связи недоступна.

⚡ Ключевые особенности

  • Многоканальная маршрутизация пакетов:
    • Устройства могут пересылать сообщения через несколько узлов, расширяя зону покрытия за пределы дальности действия одного радиомодуля.
    • Поддерживается настраиваемое количество переходов (hops) для баланса эффективности сети и предотвращения избыточного трафика.
    • Узлы имеют фиксированные роли: узлы типа «Companion» вообще не ретранслируют сообщения, чтобы исключить использование некорректных маршрутов.
  • Поддержка LoRa‑радиомодулей — работает с устройствами Heltec, RAK Wireless и другим оборудованием на базе LoRa.
  • Децентрализация и устойчивость — не требуется центральный сервер или интернет; сеть самовосстанавливается.
  • Низкое энергопотребление — идеально подходит для устройств с батарейным или солнечным питанием.
  • Простота развёртывания — готовые примеры приложений облегчают начало работы.

🎯 Где можно использовать MeshCore?

  • Связь вне сети (off‑grid): оставайтесь на связи даже в удалённых районах.
  • Реагирование на чрезвычайные ситуации и ликвидация последствий катастроф: создавайте мгновенные сети там, где инфраструктура вышла из строя.
  • Активный отдых: связь во время пеших походов, кемпинга и приключенческих гонок.
  • Тактические и охранные приложения: использование в военных целях, правоохранительных органах и частной охране.
  • Интернет вещей и сенсорные сети: сбор данных с удалённых датчиков и передача их в центральное место.

🛠 Как начать работу

Для разработчиков:

  • Установите PlatformIO в Visual Studio Code.
  • Скопируйте и откройте репозиторий MeshCore в Visual Studio Code.
  • Ознакомьтесь с примерами приложений, которые можно модифицировать и запускать:
    • Companion Radio — для использования с внешним чат‑приложением через BLE, USB или WiFi.
    • KISS Modem — мост для последовательного протокола KISS для хост‑приложений (документация по протоколу).
    • Simple Repeater — расширяет зону покрытия сети путём ретрансляции сообщений.
    • Simple Room Server — простой BBS‑сервер для обмена сообщениями.
    • Simple Secure Chat — защищённая текстовая связь между устройствами через терминал.
    • Simple Sensor — удалённый сенсорный узел с телеметрией и оповещениями.

С примером Simple Secure Chat можно взаимодействовать через Serial Monitor в Visual Studio Code или с помощью Serial USB Terminal на Android.

⚡️ Прошивальщик MeshCore

У нас есть предварительно собранная прошивка, готовая к прошивке на поддерживаемые устройства:

  • Запустите https://flasher.meshcore.co.uk.
  • Выберите поддерживаемое устройство.
  • Прошейте один из типов прошивки:
    • Companion, Repeater или Room Server.
  • После завершения прошивки вы можете подключиться к одному из клиентов MeshCore, перечисленных ниже.

📱 Клиенты MeshCore

Прошивка Companion

К прошивке Companion можно подключиться через BLE, USB или WiFi — в зависимости от типа прошивки, которую вы загрузили:

Прошивка Repeater и Room Server

Прошивка Repeater и Room Server настраивается через USB в веб‑инструменте конфигурации:

Их также можно управлять через LoRa в мобильном приложении с помощью функции удалённого управления.

🛠 Совместимость с оборудованием

MeshCore разработан для устройств, перечисленных в прошивальщике MeshCore.

📜 Лицензия

MeshCore — это программное обеспечение с открытым исходным кодом, выпущенное под лицензией MIT. Вы можете свободно использовать, модифицировать и распространять его для личных и коммерческих проектов.

Участие в разработке

Пожалуйста, отправляйте запросы на включение (PR) с использованием ветки dev в качестве базовой!

Для незначительных изменений просто отправьте свой PR, и мы постараемся его рассмотреть. Но для более «значимых» изменений сначала откройте задачу (Issue) и начните обсуждение. Лучше сначала прояснить, чего вы хотите достичь, и попытаться прийти к консенсусу относительно наилучшего подхода, особенно если это затрагивает структуру или архитектуру кодовой базы.

Вот несколько общих принципов, которых следует придерживаться:

  • Сохраняйте простоту. Пожалуйста, не думайте как программист высокоуровневого языка. Думайте в терминах встраиваемых систем и пишите лаконичный код без лишних уровней абстракции.
  • Не используйте динамическое выделение памяти, за исключением функций настройки/инициализации.
  • Используйте тот же стиль расстановки скобок и отступов, что и в основных модулях исходного кода (скоро, вероятно, будет добавлен файл .clang-format, но, пожалуйста, НЕ переформатируйте существующий код задним числом — это создаёт ненужные различия, затрудняющие поиск проблем).

Помогите нам расставить приоритеты! Пожалуйста, ставьте реакцию «палец вверх» на задачи/PR, которые для вас наиболее важны. Мы учитываем количество реакций при планировании работы.

Дорожная карта / Задачи

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

  • Companion radio: редизайн пользовательского интерфейса.
  • Repeater + Room Server: добавить ACL (как у сенсорного узла).
  • Стандартизировать режим моста для ретрансляторов.
  • Repeater/Bridge: стандартизировать коды транспорта для зонирования/фильтрации.
  • Core + Repeater: улучшенное обнаружение соседей с нулевым переходом.
  • Core: поддержка ручного маршрута с возвратом.
  • Companion + Apps: поддержка нескольких подсетей (и режима повтора клиента вне сети).
  • Core + Apps: поддержка сжатия сообщений LZW.
  • Core: динамический CR (коэффициент кодирования) для слабых и сильных переходов.
  • Core: новая платформа для размещения нескольких виртуальных узлов на одном физическом устройстве.
  • Спецификация протокола V2: обсуждение и достижение консенсуса по протоколу пакетов V2, включая хэши путей, новые спецификации шифрования и т. д.

📞 Поддержка

  • Сообщайте об ошибках и запрашивайте новые функции на странице Issues в GitHub.
  • Найдите дополнительные руководства и компоненты на сайте.
  • Присоединяйтесь к сообществу MeshCore в Discord, чтобы пообщаться с разработчиками и получить помощь от сообщества.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages