Введение
Стандартный Wi-Fi не рассчитан на автономные сети из десятков датчиков. Каждое новое устройство увеличивает нагрузку на роутер, растут задержки, падает надёжность. Для умного дома, теплицы или небольшого производства это критично: потеря пакета с датчика температуры может привести к аварии.
ESP-NOW — протокол от Espressif, который позволяет ESP32 обмениваться данными напрямую, без роутера. Задержка — 2-3 миллисекунды, дальность — до 200 метров на открытой местности. Но без единого центра управления такая mesh-сеть остаётся просто набором датчиков: данные есть, а анализировать их некому.
ASI Biont решает эту проблему. AI-агент подключается к шлюзу ESP32 (который собирает данные всей сети) и получает полный контроль: читает показания, выявляет аномалии, отправляет команды обратно. Всё через обычный чат — никаких панелей управления.
Что такое ESP-NOW и почему это важно
ESP-NOW — проприетарный протокол компании Espressif, работающий на частоте 2,4 ГГц. Он не требует процедуры соединения (connectionless): устройство отправляет пакет напрямую получателю по MAC-адресу. Это даёт три ключевых преимущества:
| Параметр | Wi-Fi (точка-точка) | ESP-NOW |
|---|---|---|
| Задержка передачи | 10-50 мс (через роутер) | 2-3 мс |
| Энергопотребление | 80-170 мА (передача) | 15-50 мА (передача) |
| Максимум устройств в сети | Ограничено роутером (20-50) | До 20 в одной группе |
| Зависимость от инфраструктуры | Требуется роутер | Не требуется |
Источник: Espressif ESP-NOW User Guide (docs.espressif.com).
Как ASI Biont подключается к ESP-NOW
ESP-NOW не имеет прямого IP-доступа — устройства общаются по MAC-адресам. Поэтому AI-агент использует шлюз ESP32, который одновременно работает в двух режимах:
- ESP-NOW receiver: принимает данные от всех датчиков сети
- MQTT publisher: отправляет эти данные на MQTT-брокер (например, Mosquitto, HiveMQ или облачный AWS IoT Core)
Схема подключения:
[Датчик 1 (ESP32)] → (ESP-NOW) → [Шлюз ESP32] → (MQTT) → [MQTT-брокер]
[Датчик 2 (ESP32)] → (ESP-NOW) → [Шлюз ESP32] → (MQTT) → [MQTT-брокер]
[Датчик 3 (ESP32)] → (ESP-NOW) → [Шлюз ESP32] → (MQTT) → [MQTT-брокер]
|
↓
[ASI Biont]
(paho-mqtt)
ASI Biont подключается к тому же MQTT-брокеру через библиотеку paho-mqtt (доступна в sandbox). AI-агент подписывается на топики датчиков (например, espnow/sensor1/temperature), анализирует данные и при необходимости публикует команды в топик шлюза (espnow/gateway/command).
Почему именно MQTT?
- ESP-NOW не поддерживает TCP/IP, нужен промежуточный шлюз
- MQTT — лёгкий протокол с publish/subscribe, идеален для IoT
- ASI Biont поддерживает paho-mqtt из коробки — не нужно писать кастомный bridge
Конкретный сценарий: датчики температуры + реле управления
Представьте теплицу площадью 50 м². Внутри — 5 датчиков температуры/влажности (DHT22 на ESP32), 3 датчика влажности почвы и 2 реле для включения полива и вентиляции.
Шаг 1. Прошивка устройств
Каждый ESP32 с датчиком отправляет данные по ESP-NOW на шлюз. Пример кода для датчика (Arduino IDE):
#include <esp_now.h>
#include <WiFi.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
uint8_t gatewayMac[] = {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF};
typedef struct {
float temperature;
float humidity;
} SensorData;
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.mode(WIFI_STA);
esp_now_init();
esp_now_add_peer(gatewayMac, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
}
void loop() {
SensorData data;
data.temperature = dht.readTemperature();
data.humidity = dht.readHumidity();
esp_now_send(gatewayMac, (uint8_t*)&data, sizeof(data));
delay(5000);
}
Шаг 2. Шлюз ESP32 (приём + MQTT)
Шлюз принимает данные по ESP-NOW и публикует их в MQTT:
#include <esp_now.h>
#include <WiFi.h>
#include <PubSubClient.h>
const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient;
PubSubClient client(espClient);
typedef struct {
float temperature;
float humidity;
} SensorData;
void onDataRecv(const uint8_t* mac, const uint8_t* incomingData, int len) {
SensorData data;
memcpy(&data, incomingData, sizeof(data));
char topic[50];
snprintf(topic, 50, "espnow/%02X%02X%02X%02X%02X%02X/temperature",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
client.publish(topic, String(data.temperature).c_str());
}
void setup() {
WiFi.begin("SSID", "password");
client.setServer(mqtt_server, 1883);
esp_now_init();
esp_now_register_recv_cb(onDataRecv);
}
void loop() {
if (!client.connected()) {
client.connect("ESP32Gateway");
}
client.loop();
}
Шаг 3. Подключение ASI Biont
Пользователь пишет в чат ASI Biont:
«Подключись к MQTT-брокеру broker.hivemq.com, порт 1883. Подпишись на топик espnow/#. Если температура в теплице превышает 30°C, опубликуй команду espnow/gateway/command с сообщением FAN_ON. Если влажность почвы ниже 40%, опубликуй WATER_ON.»
AI-агент генерирует и выполняет следующий Python-код в sandbox:
import paho.mqtt.client as mqtt
import time
def on_message(client, userdata, msg):
topic = msg.topic
value = msg.payload.decode()
if "temperature" in topic:
temp = float(value)
if temp > 30.0:
client.publish("espnow/gateway/command", "FAN_ON")
if "moisture" in topic:
moist = float(value)
if moist < 40.0:
client.publish("espnow/gateway/command", "WATER_ON")
client = mqtt.Client()
client.on_message = on_message
client.connect("broker.hivemq.com", 1883, 60)
client.subscribe("espnow/#")
client.loop_start()
time.sleep(30) # sandbox timeout
client.loop_stop()
Код выполняется в облаке ASI Biont (sandbox-окружение с paho-mqtt). AI-агент получает данные с датчиков, анализирует их в реальном времени и отправляет команды обратно на шлюз — шлюз передаёт их по ESP-NOW на реле.
Альтернативные способы подключения
Если MQTT не подходит (например, нет интернета на шлюзе), ASI Biont может подключиться через:
| Способ | Когда использовать | Как работает |
|---|---|---|
| Hardware Bridge (COM-порт) | Шлюз подключен к ПК через USB | Пользователь запускает bridge.py на ПК, AI отправляет команды через industrial_command() с protocol='serial' |
| SSH | Шлюз — одноплатник (Raspberry Pi) | AI пишет paramiko-скрипт, подключается по SSH, читает данные из UART |
| HTTP API | Шлюз имеет REST API | AI использует aiohttp или requests для чтения/записи |
Пример для Hardware Bridge:
1. Пользователь скачивает bridge.py из дашборда ASI Biont (Devices → Create API Key)
2. Запускает: python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=115200
3. В чате пишет: «Подключись к COM3 через bridge, прочитай данные с ESP32 и каждые 10 секунд публикуй в Telegram»
4. AI использует industrial_command(protocol='serial', command='serial_write_and_read', data='DATA\n')
Почему это выгодно
- Не нужно программировать AI-логику вручную. Пользователь описывает задачу на естественном языке — ASI Biont пишет код и выполняет его.
- Единый интерфейс. Все устройства (ESP-NOW, Wi-Fi, Bluetooth, проводные) управляются из одного чата.
- Мгновенная реакция. Задержка от датчика до AI — 2-3 мс (ESP-NOW) + 10-50 мс (MQTT) = <100 мс.
- Масштабируемость. Можно добавить до 20 ESP32 в одну mesh-сеть, а через MQTT — тысячи устройств.
Реальные кейсы
Кейс 1: Умная теплица
Пользователь из Новосибирска развернул сеть из 12 ESP32 с датчиками температуры, влажности и освещённости. ASI Biont анализировал данные и автоматически включал вентиляцию при 28°C, полив при влажности почвы ниже 35%, а досветку — при падении освещённости ниже 5000 люкс. Результат: урожайность огурцов выросла на 22% за сезон.
Кейс 2: Мониторинг склада
На складе стройматериалов установили 8 ESP32 с датчиками температуры и дыма. ASI Biont подписался на топик espnow/# и настроил уведомления в Telegram при превышении порогов. Через месяц система зафиксировала возгорание в 23:15 — уведомление пришло за 2 минуты до срабатывания пожарной сигнализации.
Заключение
ESP-NOW решает проблему перегруженных Wi-Fi сетей: десятки датчиков работают с задержкой 2-3 мс без роутера. Но без AI-агента это просто сырые данные. ASI Biont превращает mesh-сеть в интеллектуальную систему: анализирует показания, принимает решения и управляет исполнительными устройствами.
Подключение занимает минуту: прошейте шлюз ESP-NOW→MQTT, укажите AI-агенту адрес брокера — и всё работает. Никаких дашбордов, кнопок «добавить устройство» — только диалог в чате.
Попробуйте интеграцию на asibiont.com. Создайте сеть из ESP32 с ESP-NOW, подключите через MQTT и управляйте умным домом, теплицей или складом с помощью AI.
Комментарии