Новаком
ESP32

ESP32 и mesh-сети: ESP-NOW, ESP-WIFI-MESH, BLE Mesh и Thread/Matter

Серьёзный технический разбор mesh-сетей на ESP32: чем mesh отличается от обычного Wi-Fi, протоколы ESP-NOW, ESP-WIFI-MESH/Mesh-Lite, BLE Mesh и Thread/Matter на ESP32-H2, роли узлов, self-healing, реальные грабли (RSSI, расстояние между узлами, документация) и как выбрать протокол под задачу.

ЯА
Яковлев Александр
2026-06-28 · 17 минут чтения

Содержание

Когда устройств на объекте становится много и они разнесены в пространстве — датчики по всему саду, узлы по этажам здания, освещение в большом цеху, — обычная звезда «всё через одну точку доступа» начинает сыпаться. Сигнал не добивает, точка доступа перегружена, дальние узлы отваливаются. Здесь и появляется mesh — ячеистая сеть, где каждый узел может передавать трафик соседям, а сеть сама находит маршруты и переживает отказ отдельных узлов.

ESP32 — одна из самых популярных платформ для таких сетей, и Espressif даёт под mesh сразу несколько протоколов. Проблема в том, что они решают разные задачи, и выбор «не того» протокола стоит недель переделок. Эта статья — серьёзный технический разбор: какие у ESP32 есть варианты mesh, как они устроены под капотом, какие у них роли узлов и ограничения, и как выбрать под конкретный проект. Материал продолжает наш цикл по embedded и IoT-разработке.

Зачем нужен mesh и где упирается обычный Wi-Fi

Классический Wi-Fi — это топология «точка-многоточка»: одна точка доступа (AP), к которой подключены все станции. У такой схемы два встроенных потолка:

  1. Покрытие. Все станции должны быть в радиусе одной точки доступа. Дальний угол объекта — вне сети.
  2. Перегрузка. Точка доступа отвечает и за передачу, и за раздачу доступа всем станциям. Чем больше клиентов, тем хуже всем.

Mesh снимает оба потолка за счёт децентрализации. Здесь нет единственной точки, через которую идёт всё: каждый узел соединяется с ближайшими узлами и сам становится точкой доступа для соседей. Это расширяет покрытие — сеть «растекается» от узла к узлу — и убирает перегрузку единственной AP. Поскольку каждый узел получает доступ от ближайшего соседа, вероятность отвалиться из-за слабого сигнала резко падает.

Ключевое свойство грамотной mesh-сети — самоорганизация и самовосстановление (self-forming, self-healing). Новые узлы обнаруживаются автоматически, маршруты строятся сами, а если узел выпадает — сеть перестраивается. На практике это видно прямо в демках: сообщение от узла 1 к узлу 4 уходит не напрямую, а через узел 3 — сеть сама выбрала маршрут, потому что прямой связи нет.

Карта протоколов ESP32 для mesh

Под «mesh на ESP32» скрываются разные технологии. Разложим, чтобы не путать:

  • ESP-NOW — лёгкий проприетарный протокол прямого обмена между устройствами без роутера. Сам по себе это не полноценный mesh, но фундамент и транспорт для многих самодельных mesh-схем.
  • ESP-WIFI-MESH — полноценный Wi-Fi mesh поверх стандартного Wi-Fi: дерево узлов с автоматической маршрутизацией и IP-связностью. Поддерживается на ESP32 и ESP8266.
  • ESP-Mesh-Lite — компонент Espressif поверх Wi-Fi (soft AP + station), упрощающий построение mesh с прозрачным TCP/IP.
  • ESP-BLE-MESH — mesh на базе Bluetooth LE: низкое энергопотребление, передача команд, а не больших данных.
  • Thread / Matter (ESP32-H2) — стандартизированный mesh на IEEE 802.15.4 для умного дома и промышленного IoT.

Дальше — по каждому предметно.

ESP-NOW: лёгкий обмен без роутера

ESP-NOW — это протокол связи от Espressif, в котором данные определяются пользователем и передаются напрямую от одного Wi-Fi-устройства ESP32 к другому без точек доступа и роутеров. Это его главная ценность: узлы общаются друг с другом напрямую, что упрощает автономные сети там, где инфраструктуры нет.

Технические детали, которые определяют дизайн:

  • Адресация по MAC. Каждое полученное сообщение содержит MAC-адрес отправителя, который используется для ответа. Связь идёт только между спаренными (peered) устройствами — peer'ы нужно регистрировать.
  • Размер кадра. 250 байт для ESP-NOW v1 и 1470 байт для v2. Это накладывает ограничение на полезную нагрузку — большие данные нужно фрагментировать.
  • Режимы. Поддерживаются unicast, multicast и broadcast — можно слать одному узлу, группе или всем.
  • Порядок инициализации. ESP-NOW инициализируется после поднятия Wi-Fi.

Тонкость дуплексной связи: принимающий узел может заранее не знать отправителя. Поэтому он берёт MAC из входящего сообщения, регистрирует отправителя как peer'а, шлёт ответ и затем удаляет peer'а. Минимальный приём-передача выглядит так:

#include "esp_now.h"
#include "esp_wifi.h"

// колбэк приёма: достаём MAC отправителя для ответа
void on_recv(const esp_now_recv_info_t *info, const uint8_t *data, int len) {
    esp_now_peer_info_t peer = { .channel = 0, .ifidx = WIFI_IF_STA };
    memcpy(peer.peer_addr, info->src_addr, 6);
    if (!esp_now_is_peer_exist(info->src_addr))
        esp_now_add_peer(&peer);
    esp_now_send(info->src_addr, (uint8_t*)"ack", 3);  // дуплекс
}

void app_main(void) {
    // ... wifi_init() ДО esp_now_init()
    esp_now_init();
    esp_now_register_recv_cb(on_recv);
}

Из-за лёгкости ESP-NOW его часто берут как транспорт поверх более тяжёлых решений: например, для обмена статусами между узлами mesh, когда полная маршрутизация на уровне приложения избыточна. Многие самодельные «mesh за одну ночь» — это именно ESP-NOW с ручной таблицей маршрутов: узел A не видит узел C напрямую, добавляем промежуточный узел B — и сообщение от A до C идёт через B.

ESP-WIFI-MESH и ESP-Mesh-Lite: дерево с самовосстановлением

Это уже полноценный mesh поверх стандартного Wi-Fi. ESP-Mesh-Lite — компонент Espressif, который строит самоорганизующуюся самовосстанавливающуюся сеть на базе soft AP + station mode, не завязанную целиком на центральный роутер. Каждый узел одновременно и пересылает трафик, и работает как обычный Wi-Fi-клиент с собственным IP-адресом.

Топология — дерево с чётко определёнными ролями узлов:

  • Root (корневой/шлюз). Единственный узел, подключённый к внешнему роутеру и IP-сети. Это единственный интерфейс между mesh и внешним миром. Root в сети только один.
  • Intermediate parent (промежуточный родитель). Имеет одно восходящее соединение (к root напрямую или через другого родителя) и обслуживает нижестоящие узлы, пересылая пакеты в обе стороны.
  • Leaf (лист). Конечный узел: только передаёт и принимает свои данные, не маршрутизирует чужие пакеты.
  • Idle (свободный). Пока ни к кому не подключён, но может присоединиться к ближайшему узлу.

Каждому узлу IP-адрес назначает его родитель, а общее число узлов ограничено максимальным числом слоёв (layers) — параметр конфигурируемый, как и максимальное число нисходящих соединений на узел. Узел выбирает родителя по числу слоёв (ближе к root предпочтительнее) и по силе сигнала (RSSI) — при равных слоях выигрывает более сильный сигнал.

Огромный практический плюс ESP-Mesh-Lite: поскольку все узлы участвуют в одной WLAN, обычный TCP/IP-трафик — сокеты, HTTP, MQTT — работает через mesh без специальной маршрутизации на уровне приложения. Это значит, что привычный стек IoT (например, отправка телеметрии по MQTT против HTTP или на платформу вроде ThingsBoard) поднимается поверх mesh почти прозрачно. Обязательное условие связности — единый mesh ID на root и всех узлах.

BLE Mesh: управляемое наводнение

ESP-BLE-MESH — это mesh поверх Bluetooth LE. Здесь другая природа и другой профиль задач: низкое энергопотребление и передача команд, а не больших объёмов данных.

Под капотом — модель publish/subscribe и механизм managed flooding (управляемое наводнение): часть устройств работают как relay-узлы и ретранслируют полученное сообщение остальным. Это позволяет покрывать большие расстояния и иметь несколько маршрутов: например, лампа, запитанная от сети, без проблем работает как relay и передаёт сообщения дальше по сети. Поскольку BLE Mesh — программный слой поверх Bluetooth LE, он совместим со смартфонами и планшетами: mesh-сеть можно поднять и управлять ей прямо с телефона.

Когда выбирать BLE Mesh, а когда Wi-Fi mesh:

  • BLE Mesh — когда узлы должны соединяться и передавать команды (умное освещение, выключатели, датчики на батарейках). Соединение не постоянное, энергопотребление минимальное, данных мало.
  • Wi-Fi mesh — когда главная цель расширить радиус сети и передавать большие данные (до ~10 Мбит/с), соединение держится долго.

Thread, Matter и ESP32-H2

Отдельная ветка — стандартизированный mesh на IEEE 802.15.4, и здесь ключевой чип — ESP32-H2: первый SoC Espressif с поддержкой 802.15.4 и Bluetooth 5 LE одновременно. Он умеет работать ядром маломощных mesh-сетей по Thread и Zigbee.

Что это даёт на практике:

  • Thread — IP-based mesh-протокол для умного дома: маломощный, самовосстанавливающийся.
  • Matter — протокол подключения поверх IP, объединяющий экосистемы. ESP32-H2 настраивается через Bluetooth LE, а дальше общается по Thread. Устройства Matter легко интегрируются в разные экосистемы умного дома с минимумом усилий.
  • Thread Border Router — на ESP32-H2 (в связке с Wi-Fi) можно построить пограничный маршрутизатор, соединяющий сеть Thread с Wi-Fi. Аналогично делается Zigbee-шлюз.

Важный момент про надёжность: Thread в реальной эксплуатации имел проблемы со стабильностью, и Matter помог часть из них сгладить, но это всё ещё развивающаяся область. Поэтому в умном доме часто живёт гибрид: что-то по Wi-Fi, что-то по Thread, а старые Zigbee/Z-Wave-устройства подключаются через bridge — мост, который прокидывает их в Matter как обычные устройства. Bridge — это «карта, которую можно сыграть в любой ситуации», если он недалеко от аксессуаров и желательно подключён по проводу.

Сравнение протоколов

ПротоколТранспортТопологияДанныеПитаниеКогда выбирать
ESP-NOWWi-Fi (без AP)peer-to-peer, ручная маршрутизациямалые (250/1470 байт)среднеепрямой обмен без инфраструктуры, простые сети
ESP-WIFI-MESH / Mesh-LiteWi-Fiдерево, self-healingбольшие, TCP/IPсреднеепокрытие + IP-трафик (HTTP/MQTT) на ESP32
BLE MeshBluetooth LEmanaged floodingмалые, командыочень низкоеосвещение, выключатели, датчики на батарейках
Thread / Matter (H2)IEEE 802.15.4IP mesh, self-healingмалые-средниеочень низкоестандартизированный умный дом, интеграция экосистем

Грубое правило: нужно гнать IP-трафик и большие данные — Wi-Fi mesh; обмен на батарейках и команды — BLE Mesh; интеграция в стандартный умный дом — Thread/Matter; максимально простой прямой обмен — ESP-NOW.

Грабли, которые стоят недели

Серьёзный разговор без этого раздела не серьёзный. Вот что реально бьёт по срокам.

  • Расстояние между узлами критично в обе стороны. Узлы не должны быть слишком далеко (сигнал не добьёт) — но и слишком близко тоже нельзя: возникает насыщение сигнала (signal saturation), и узлы перестают подключаться. Практическое правило из реального опыта — держать минимум 3 метра между узлами. Внешняя антенна (как у ESP32-U-вариантов) заметно увеличивает дальность и силу сигнала.
  • Выбор родителя по RSSI. Сеть предпочитает узлы ближе к root и с более сильным сигналом. Планировка узлов напрямую влияет на устойчивость дерева.
  • Документация ESP-Mesh-Lite почти отсутствует. У компонента обширный набор параметров конфигурации, но документации «практически нет», и продвигаться приходится методом проб и ошибок. Закладывайте на это время.
  • Подводные камни сборки. Конкретный пример: IoT-bridge компонент, который идёт с mesh-lite, имеет недостающую зависимость — без её добавления в CMakeLists.txt проект просто не собирается. Такие мелочи съедают часы.
  • Согласованность конфигурации. Единый mesh ID, согласованные SSID/пароль для внешнего роутера и для самой mesh, корректный порядок инициализации (Wi-Fi → ESP-NOW → mesh) — ошибка в любом месте ломает сеть молча.

Вывод: mesh на ESP32 — это не «прошил и поехал». Это инженерная работа с радиопланированием, отладкой и чтением исходников там, где документация молчит.

Безопасность mesh-сети

ESP-WIFI-MESH «безопасен по дизайну» в том смысле, что построен на стандартной Wi-Fi-связности и использует штатную защиту WPA2. Но mesh из десятков физически доступных узлов — это расширенная поверхность атаки, и общие принципы OWASP IoT Top 10 тут обязательны:

  • сменить дефолтные пароли и ключи mesh;
  • шифровать payload на уровне приложения, особенно в ESP-NOW (там это ответственность разработчика);
  • предусмотреть безопасное обновление прошивки (OTA) для всех узлов;
  • использовать аппаратные возможности чипа — у ESP32-H2, например, есть secure boot на ECC, шифрование флэша на AES, цифровая подпись и HMAC.

Физическая доступность узлов означает, что злоумышленник может добраться до железа — это надо закладывать в модель угроз с самого начала.

Как выбрать протокол под задачу

Свод в виде практического алгоритма:

  1. Нужна ли вообще mesh? Если все узлы в радиусе одной точки доступа и их немного — обычный Wi-Fi проще. Mesh оправдан при разнесённых узлах и требовании покрытия/устойчивости.
  2. Какие данные? Большие объёмы и привычный IP-стек (HTTP/MQTT) → ESP-WIFI-MESH / Mesh-Lite. Команды и телеметрия на батарейках → BLE Mesh или Thread.
  3. Есть ли инфраструктура? Нет роутера и нужен автономный прямой обмен → ESP-NOW.
  4. Интеграция в умный дом? Стандарт и совместимость экосистем → Thread/Matter на ESP32-H2.
  5. Питание. Постоянное → Wi-Fi mesh приемлем. Батарейное и годы автономности → BLE Mesh / Thread.

И главное — закладывайте время на радиопланирование, отладку и обходы недокументированных мест. Именно это, а не написание основного кода, занимает большую часть серьёзного mesh-проекта.

FAQ

Чем ESP-NOW отличается от ESP-WIFI-MESH? ESP-NOW — лёгкий прямой обмен между устройствами без роутера, маршрутизацию делаете вы. ESP-WIFI-MESH (и Mesh-Lite) — полноценная самоорганизующаяся сеть-дерево с IP-связностью, где TCP/IP-трафик идёт через mesh прозрачно. ESP-NOW часто используют как транспорт внутри mesh-решений.

Сколько узлов держит ESP-WIFI-MESH? Зависит от конфигурации: число узлов ограничено максимальным числом слоёв (layers) и числом нисходящих соединений на узел — оба параметра настраиваются. Сеть — дерево с одним root-узлом, выходящим во внешнюю сеть.

Wi-Fi mesh или BLE mesh? Wi-Fi mesh — для больших данных и расширения радиуса (до ~10 Мбит/с). BLE mesh — для команд и устройств на батарейках с минимальным энергопотреблением. Это разные задачи, а не конкуренты.

Что такое ESP32-H2 и зачем он? Это SoC с IEEE 802.15.4 + BLE 5, ядро для Thread/Zigbee и Matter. На нём строят устройства умного дома, Thread Border Router и Zigbee-шлюзы со штатной аппаратной безопасностью.

Какая главная сложность mesh на ESP32? Не код, а эксплуатация: радиопланирование (расстояние между узлами, антенны, RSSI), недокументированные параметры компонентов и отладка self-healing-поведения. Это нужно закладывать в сроки.


Если вы проектируете беспроводную mesh-сеть на ESP32 — для умного здания, промышленной телеметрии, освещения или сети датчиков — мы в Новакоме помогаем с выбором протокола, прототипом, радиопланированием и разработкой прошивки и бэкенда. Посмотрите наши услуги по заказной разработке ПО и бэкенду на Spring или напишите нам с описанием задачи и условий объекта.

РАЗРАБОТКА

Нужна похожая задача?

Обсудим вашу задачу и предложим решение за 30 минут.

Обсудить проект
ЧИТАЙТЕ ДАЛЬШЕ

Похожие материалы.

ИСКУССТВЕННЫЙ-ИНТЕЛЛЕКТ

Гениальные применения ИИ: когда нейросети делают то, что не могли люди

Подборка по-настоящему впечатляющих применений ИИ с ссылками на репозитории: AlphaEvolve и FunSearch, открывающие новые алгоритмы, самоулучшающиеся агенты (AI Scientist, Gödel Agent, DGM), автоматизация научных открытий, ИИ как «великий уравнитель» и что из этого реально применимо в бизнесе.

2026-06-28 · 16 мин
МЕЖБАНКОВСКИЕ-РАСЧЕТЫ

Межбанковская расчётная система: ностро, лоро и ликвидность на зарубежных счетах

Как устроена межбанковская расчётная система и как вообще перемещать деньги по миру: корреспондентские счета ностро/востро/лоро, клиринг и неттинг (CHIPS, RTGS, SWIFT), все способы образования ликвидности и перевода средств — префандинг, FX-свопы, репо, MTO (Wise, Золотая Корона), P2P-мэтчинг, P2P-крипто, стейблкоины, hawala — и инженерный взгляд на разработку такой системы.

2026-06-28 · 25 мин
NVIDIA-JETSON

NVIDIA Jetson для edge AI: исследование возможностей платформы в 2026

Практический разбор NVIDIA Jetson как платформы edge AI: линейка Orin Nano/NX/AGX, метрика TOPS, реальные бенчмарки (YOLO v8 и локальная Llama 3.2), сравнение с Raspberry Pi, edge против облака, сценарии для роботов, дронов и компьютерного зрения, и когда Jetson реально оправдан.

2026-06-28 · 14 мин