MeshCore — как запустить свою сеть связи, когда интернет приказал долго жить

08 Jun, 2026

Представьте: вы в горах, в лесу или просто в подвале, где сотовая связь не ловит от слова «совсем». Спутниковый телефон стоит как крыло самолета, а обычные рации не добивают из-за рельефа. В такие моменты начинаешь задумываться о децентрализованных сетях. MeshCore — это как раз попытка сделать создание таких сетей максимально простым и доступным для разработчика.

Я часто натыкаюсь на проекты для LoRa (радиосвязь на большие расстояния с низким энергопотреблением), но обычно это либо переусложненные монстры, либо совсем примитивные «пищалки». MeshCore нашел ту самую середину. Это легковесная библиотека на C++, которая превращает пачку дешевых контроллеров в полноценную самоорганизующуюся сеть.

Что это вообще такое

MeshCore реализует многошаговую маршрутизацию пакетов. Если ваше устройство (узел) не видит получателя напрямую, оно передает пакет соседу, тот следующему, и так до победного. Проект во многом пересекается с известными Meshtastic или Reticulum, но сфокусирован именно на встраиваемых системах и кастомных решениях.

Автор проекта, Лиам Коттл, явно придерживается философии «не усложняй». Библиотека портативна и заточена под работу без центрального сервера. Это делает ее живучей: если один узел выйдет из строя, сеть просто перестроится.

Чем MeshCore отличается от других

Когда я впервые открыл репозиторий, меня зацепило несколько моментов, которые редко встретишь в любительских проектах такого рода.

Реклама

Роли узлов и умный форвардинг

В типичной меш-сети каждый узел пытается повторить каждый пакет, что быстро забивает эфир (так называемый «шторм» пакетов). В MeshCore ввели фиксированные роли. Например, есть роль Companion — это ваше личное устройство, которое только отправляет и принимает сообщения, но не занимается ретрансляцией. Это экономит заряд батареи и не создает лишнего шума в сети.

Работа с памятью

Для тех, кто пишет под микроконтроллеры, это бальзам на душу: в коде нет динамического выделения памяти (malloc/new) после этапа инициализации. Все буферы предсказуемы, утечки исключены. Это критично, если девайс должен висеть на дереве и работать полгода от солнечной панели без перезагрузки.

Готовая инфраструктура

Обычно такие проекты заканчиваются на «вот вам библиотека, дальше сами». Здесь же ребята выкатили целый набор инструментов:

  • Онлайн-прошивальщик (через Web Serial прямо из браузера).
  • Клиентские приложения для Android и iOS.
  • Готовые примеры: от простого репитера до защищенного чата и сенсорного узла.

Как это выглядит на практике

Чтобы собрать свой первый узел, не нужно быть гуру схемотехники. MeshCore поддерживает популярные платы на базе ESP32 с чипами LoRa, такие как Heltec или RAK Wireless.

Если вы разработчик, процесс выглядит примерно так:

  1. Ставите PlatformIO в VS Code.
  2. Клонируете репозиторий.
  3. Выбираете один из примеров в папке examples.

Например, пример Simple Secure Chat позволяет общаться через обычный терминал. Подключаете плату по USB, открываете монитор порта и пишете сообщения, которые улетают в радиоэфир. Для более серьезных задач есть Companion Radio — прошивка, которая превращает плату в модем для смартфона. Вы подключаетесь к ней по Bluetooth или Wi-Fi и используете мобильное приложение для переписки, как в привычном мессенджере.

Для чего это можно использовать

Конечно, для повседневного общения в городе MeshCore не заменит Telegram. Но есть ниши, где он незаменим.

Во-первых, это датчики на больших территориях. Если вам нужно собирать данные о влажности почвы на ферме или следить за уровнем воды в реке, тянуть провода или ставить 4G-модем на каждую точку дорого и глупо. Один Mesh-узел может собирать данные с соседей и передавать их по цепочке на базовую станцию.

Во-вторых, это автономная связь для походов или экспедиций. Можно раздать друзьям по маленькой коробочке и всегда знать, где они находятся (через телеметрию) и иметь возможность отправить сообщение «я нашел отличную стоянку».

В-третьих, это образовательный интерес. Код написан достаточно чисто, чтобы разобраться, как устроены сетевые протоколы на низком уровне.

Стоит ли пробовать

Проект сейчас находится в активной фазе: в дорожной карте значатся такие вещи, как сжатие сообщений по алгоритму LZW и динамическое изменение параметров радиосигнала в зависимости от качества связи.

Из минусов я бы отметил, что документация пока местами фрагментарна — иногда приходится лезть в код примеров, чтобы понять, как работает та или иная функция. Но учитывая лицензию MIT и открытость автора к PR, это скорее временные трудности.

Если у вас в столе валяется пара плат с LoRa, MeshCore — отличный повод смахнуть с них пыль и построить свою маленькую независимую сеть. Просто чтобы почувствовать, что интернет — это не единственный способ быть на связи.

Инструкции по сборке и ссылки на прошивки лежат в репозитории проекта.