Проблема: Wi-Fi не везде, а данные нужны всегда
Когда вы разворачиваете сеть датчиков в теплице, на складе или в удалённом цехе, то быстро упираетесь в ограничения классического Wi-Fi. Дальность — 30–50 метров в помещении, стены глушат сигнал, а на улице роутер приходится ставить в герметичный бокс. Альтернатива — ESP-NOW, проприетарный протокол компании Espressif, который работает напрямую между микроконтроллерами ESP32 и ESP8266 без точки доступа. Дальность — до 220 метров на открытой местности, задержка — менее 30 миллисекунд, а главное — не нужен роутер, пароль к Wi-Fi и облачный сервер. Но как собрать данные с десятка таких приёмников и передать их AI-агенту для анализа и управления?
Решение: ASI Biont как мозг ESP-NOW-сети
ASI Biont подключается к ESP-NOW-устройствам через Hardware Bridge — небольшой Python-скрипт bridge.py, который вы запускаете на своём ПК (Windows, Linux, macOS). Bridge соединяется с облаком ASI Biont по WebSocket (единственный канал связи) и открывает доступ к локальным COM-портам. Вы подключаете ESP32 к компьютеру через USB-UART (например, на плате NodeMCU или WROOM уже есть встроенный чип CP2102), указываете порт и baud rate (обычно 115200), и AI-агент начинает читать данные и отправлять команды. Всё происходит через диалог в чате — вы просто описываете задачу, AI сам пишет код интеграции с использованием pyserial и paho-mqtt (если ESP-NOW-сеть шлёт данные на центральный ESP32, который ретранслирует их по MQTT).
Как это работает: пошаговый сценарий
Допустим, у вас в теплице установлено 5 ESP32 с датчиками температуры и влажности DHT22. Каждый датчик раз в минуту отправляет показания по ESP-NOW на центральный ESP32, который подключен к компьютеру через USB. Ваша задача — собирать данные, анализировать тренды и получать уведомления в Telegram, если температура выходит за пределы 15–35 °C.
Шаг 1. Прошивка центрального ESP32
Вы загружаете на центральный ESP32 простой скетч на C++ (Arduino IDE). Он принимает ESP-NOW-пакеты от удалённых датчиков и выводит их в COM-порт в формате JSON: {"sensor":1,"temp":22.5,"hum":65}. Код тривиален: подключаете библиотеку esp_now.h, регистрируете callback на приём, и в callback печатаете данные через Serial.println().
Шаг 2. Запуск Hardware Bridge
Скачиваете bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge). Устанавливаете зависимости:
pip install pyserial requests websockets
Запускаете:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
Bridge подключается к облаку через WebSocket. AI-агент видит, что порт COM3 открыт, и может отправлять через него hex-команды.
Шаг 3. Диалог с AI в чате
Вы пишете в чат ASI Biont:
«Подключись к ESP32 на COM3, 115200 baud. Читай данные в формате JSON, каждые 60 секунд. Если температура выше 35 °C или ниже 15 °C, отправь уведомление в Telegram. Также раз в час присылай сводку: средняя температура, макс/мин за час.»
AI агент генерирует Python-скрипт, который выполняется в sandbox-окружении (таймаут 30 секунд). Скрипт использует requests для отправки в Telegram и pyserial через bridge для чтения данных:
import requests
import json
from datetime import datetime
# Через industrial_command отправляем запрос на чтение
# AI вызывает tool: industrial_command(protocol='serial', command='serial_write_and_read', data='')
# Bridge возвращает строку с JSON
# Пример обработки (упрощённо):
data = '{"sensor":1,"temp":22.5,"hum":65}'
parsed = json.loads(data)
temp = parsed['temp']
if temp > 35 or temp < 15:
bot_token = 'ВАШ_ТОКЕН'
chat_id = 'ЧАТ_ID'
text = f'⚠️ Аномалия! Датчик {parsed["sensor"]}: {temp}°C'
requests.post(f'https://api.telegram.org/bot{bot_token}/sendMessage',
json={'chat_id': chat_id, 'text': text})
AI запускает этот код через execute_python — sandbox выполняет его, bridge читает данные из COM-порта, а результат передаётся обратно в чат. Вы получаете первое уведомление за секунды.
Почему это выгодно: таблица сравнения
| Критерий | Ручная интеграция | ASI Biont + ESP-NOW |
|---|---|---|
| Время настройки | 2–4 часа (писать скрипт, отлаживать) | 5–10 минут (описать задачу в чате) |
| Изменение логики | Править код, перезапускать | Попросить AI в чате — он перепишет скрипт |
| Подключение к Telegram | Писать отдельный бот, настраивать webhook | AI использует requests.post к api.telegram.org |
| Работа с несколькими датчиками | Вручную парсить JSON, считать макс/мин | AI сам агрегирует данные за период |
| Масштабирование | Добавлять датчик — править код | Добавить датчик — сказать AI в чате |
Подводные камни и как их обойти
-
ESP-NOW и коллизии: протокол не гарантирует доставку при сильной зашумлённости эфира. Решение — добавить подтверждение на уровне приложения: удалённый ESP32 ждёт ACK от центрального и повторяет отправку, если не получил ответ. AI может сгенерировать такой скетч по вашему запросу.
-
Дальность 220 метров — в идеальных условиях: на практике со стенами и металлоконструкциями реальная дальность падает до 50–80 метров. Для увеличения используйте внешнюю антенну с усилением 5–8 dBi.
-
Bridge.py на Windows: на этой ОС pyserial использует overlapped I/O, что иногда приводит к ошибке
WriteFile: written 0. Bridge автоматически применяет CancelIoEx + PurgeComm + синхронный WriteFile, но если проблема повторяется — сообщите AI, и он переключит bridge на режим polling.
Заключение: попробуйте сами
ESP-NOW — идеальный протокол для быстрых и надёжных IoT-сетей без облачной зависимости. ASI Biont превращает его в полностью управляемую систему: вы просто подключаете ESP32 к компьютеру, запускаете bridge, описываете задачу в чате — и AI сам пишет код интеграции, парсит данные, отправляет уведомления и строит отчёты. Никаких панелей управления, кнопок «добавить устройство» или долгих ожиданий обновлений. Всё — через диалог.
Переходите на asibiont.com, скачивайте bridge, подключайте ESP-NOW и управляйте своей IoT-сетью голосом.
Комментарии