В 2026 году интернет вещей перестал быть просто модным термином. Умные датчики, контроллеры и исполнительные устройства окружают нас повсюду: от домашних розеток до промышленных PLC. Однако большинство IoT-систем до сих пор работают по жёстким алгоритмам — «если температура выше 25°, включи кондиционер». AI-агенты меняют правила игры. В этой статье разберём, как связать популярный микроконтроллер ESP32 с платформой ASI Biont и превратить обычное устройство в самостоятельного робота, управляемого через нейросетевые сценарии. Вы получите готовые схемы, код и реальные кейсы внедрения.
Сегодня ASI Biont — это не просто конструктор диалоговых ассистентов, а полноценная промышленная платформа для оркестрации AI-агентов. Она умеет работать с MQTT, REST API, вебхуками и даже ROS. Поэтому связка «ESP32 + ASI Biont» открывает доступ к сценариям, о которых раньше можно было только мечтать: устройство само анализирует данные, принимает решения, общается с пользователем на естественном языке и корректирует своё поведение без перепрошивки. В этом материале я покажу, как это реализовать на практике.
Почему именно ESP32 и ASI Biont?
ESP32 — самый массовый микроконтроллер для IoT-проектов. Он стоит дёшево, имеет встроенные Wi-Fi и Bluetooth, две вычислительных ядра, аналоговые и цифровые входы/выходы. По сути, это полноценный мини-компьютер размером с почтовую марку. Но его вычислительных ресурсов всё равно недостаточно для запуска больших языковых моделей. ASI Biont берёт на себя интеллектуальную часть, а ESP32 остаётся надёжным «исполнителем».
Платформа ASI Biont позволяет создавать агентов, которые понимают голосовые команды, анализируют телеметрию и взаимодействуют с внешними системами через десятки протоколов. Интеграция с ESP32 возможна как через простое HTTP-API, так и через MQTT-брокер — последний предпочтительнее для реального времени.
Кейс №1: Умное управление теплицей
Проблема
Мой знакомый агроном владеет небольшой теплицей. Раньше он вручную включал полив, вентиляцию и обогрев. Датчики температуры и влажности были, но их данные отображались на дисплее — требовалось постоянно следить за показаниями и принимать решения. Автоматизация на Arduino с таймерами не подходила: условия менялись непредсказуемо, а хотелось управлять теплицей голосом и получать уведомления в Telegram.
Решение
Собрали систему на базе ESP32 + ASI Biont. ESP32 подключается к датчикам температуры, влажности почвы и освещённости, а также управляет реле полива, вентилятором и нагревателем. ASI Biont получает данные по MQTT, анализирует их с помощью AI-агента и отправляет команды обратно. Пользователь также может просто написать в Telegram: «Проверь влажность почвы и полей, если нужно» — агент сам решает, что делать.
Схема подключения
| Компонент | Пин ESP32 | Описание |
|---|---|---|
| DHT22 (температура/влажность) | GPIO 4 | Цифровой датчик |
| Датчик влажности почвы (capacitive) | GPIO 34 (ADC) | Аналоговый сигнал |
| Фоторезистор с делителем | GPIO 35 (ADC) | Измерение освещённости |
| Реле полива | GPIO 16 | Управление насосом |
| Реле вентилятора | GPIO 17 | Управление вентилятором |
| Реле нагревателя | GPIO 18 | Управление TЭНом |
| Резистор 10 кОм | — | Подтяжка DHT22 |
Код прошивки ESP32 (Arduino)
#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
const char* mqtt_server = "biont-mqtt.example.com";
const char* clientId = "esp32_greenhouse_01";
WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(4, DHT22);
#define SOIL_PIN 34
#define LIGHT_PIN 35
#define RELAY_PUMP 16
#define RELAY_FAN 17
#define RELAY_HEAT 18
unsigned long lastSend = 0;
void connectToMQTT() {
while (!client.connected()) {
if (client.connect(clientId)) {
client.subscribe("greenhouse/cmd");
} else {
delay(2000);
}
}
}
void callback(char* topic, byte* payload, unsigned int length) {
String msg;
for (int i = 0; i < length; i++) msg += (char)payload[i];
if (msg == "PUMP_ON") digitalWrite(RELAY_PUMP, HIGH);
else if (msg == "PUMP_OFF") digitalWrite(RELAY_PUMP, LOW);
else if (msg == "FAN_ON") digitalWrite(RELAY_FAN, HIGH);
else if (msg == "FAN_OFF") digitalWrite(RELAY_FAN, LOW);
else if (msg == "HEAT_ON") digitalWrite(RELAY_HEAT, HIGH);
else if (msg == "HEAT_OFF") digitalWrite(RELAY_HEAT, LOW);
}
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(RELAY_PUMP, OUTPUT);
pinMode(RELAY_FAN, OUTPUT);
pinMode(RELAY_HEAT, OUTPUT);
WiFi.begin(ssid, password);
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) connectToMQTT();
client.loop();
if (millis() - lastSend > 10000) {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
int soil = analogRead(SOIL_PIN);
float soilPct = map(soil, 1800, 2600, 0, 100);
int light = analogRead(LIGHT_PIN);
String payload = String("{\"temp\":") + temp + ",\"hum\":" + hum +
",\"soil\":" + soilPct + ",\"light\":" + light + "}";
client.publish("greenhouse/telemetry", payload.c_str());
lastSend = millis();
}
}
Настройка AI-агента в ASI Biont
В консоли ASI Biont создаём устройство типа IoT-датчик с MQTT-топиками greenhouse/telemetry и greenhouse/cmd. Затем создаём AI-агента с системным промптом:
Ты — умный контроллер теплицы. Поливай растения, если влажность почвы ниже 40%. Включай вентилятор при температуре выше 30°C. Включай обогрев, если температура ниже 15°C. Получая данные от датчиков, публикуй команду в топик
greenhouse/cmd. Если пользователь даёт команду голосом, интерпретируй её и также выполняй. Отвечай кратко и понятно.
Теперь настраиваем триггер: при поступлении телеметрии агент получает событие on_telemetry и вызывает MQTT-действия. Дополнительно подключаем Telegram-бота, чтобы пользователь мог писать агенту в чат.
Результаты и метрики
| Показатель | Было (ручн.) | Стало (ESP32 + ASI Biont) |
|---|---|---|
| Время реакции на изменение климата | 2–4 часа | 30 секунд |
| Расход воды в месяц | 120 л | 85 л (−29%) |
| Погибшие растения за сезон | 6 | 0 |
| Пользовательские команды | — | Голос, Telegram, веб-панель |
Система работает уже 4 месяца. AI-агент научился предсказывать потребность в поливе, анализируя изменения влажности после каждого цикла. Он даже составил отчёт для владельца — таблицу с динамикой. Главное, всё перепрограммирование происходит через промпт, без изменения прошивки ESP32.
Кейс №2: Промышленный контроль доступа
Проблема
На складе компании требовалось ограничить доступ в серверную. При этом нужно было вести журнал посещений и автоматически отправлять отчёты руководству. Использовать считыватель RFID со встроенной логикой не позволяло требование гибкого реагирования: например, блокировка при попытке прохода в нерабочее время.
Решение
Собран контроллер на ESP32 с RFID-считывателем RC522 и электромагнитным замком. ESP32 при считывании карты отправляет её ID в ASI Biont. AI-агент проверяет базу сотрудников, время, а также наличие запретов. Если доступ разрешён, публикует команду OPEN_2S в топик door/cmd — ESP32 замыкает реле на 2 секунды. При попытке нелегального прохода агент отправляет уведомление в Telegram и видео с камеры.
Фрагмент кода для ESP32
void onRFIDRead() {
String uid = readRFID();
client.publish("door/card", uid.c_str());
}
void callback(char* topic, byte* payload, unsigned int length) {
String msg;
for (int i = 0; i < length; i++) msg += (char)payload[i];
if (msg == "OPEN_2S") {
digitalWrite(RELAY, HIGH);
delay(2000);
digitalWrite(RELAY, LOW);
}
}
Таблица команд для агента
| Команда | Действие | Условие |
|---|---|---|
OPEN_2S |
Открыть дверь | Пользователь есть в базе, время 9:00–21:00, нет запрета |
LOCK_10 |
Заблокировать вход на 10 минут | Две неверные попытки подряд |
SEND_REPORT |
Отправить список проходов | Раз в день, руководителю |
Результаты
Компания автоматизировала контроль доступа за 2 дня. Метрики: время обработки одного прохода — 0,8 секунды, ошибок не более 0,1%. Заявлено, что AI-агент позволяет менять правила доступа без перепрошивки ESP32 и без переписывания кода: достаточно изменить промпт или добавить правило в базу. Также появилась возможность интеграции с SAP HR для автоматической синхронизации списка сотрудников.
Как выбрать способ интеграции: MQTT, HTTP или WebSocket?
| Критерий | MQTT | HTTP REST | WebSocket |
|---|---|---|---|
| Задержка | <100 мс | 200–500 мс | <50 мс |
| Постоянное соединение | Да (по TCP) | Нет | Да |
| Сохранение данных при обрыве | QoS 1/2 | Нет | Нет |
| Сложность реализации | Средняя (нужен брокер) | Простая | Средняя |
| Рекомендуемый сценарий | Дом, промышленность | Редкие опросы, одноразовые действия | Требуется push-уведомления |
В обоих кейсах мы использовали MQTT, так как он даёт минимальную задержку и надёжно работает при нестабильном Wi-Fi. Для простого включения света по команде с кнопки подойдёт и HTTP.
Пошаговое руководство: подключение ESP32 к ASI Biont за 30 минут
- Подготовьте ESP32. Установите Arduino IDE и добавьте поддержку плат. Подключите датчики по вышеописанной схеме.
- Скачайте библиотеки.
PubSubClient,DHT,WiFi— стандартные, доступны в менеджере библиотек. - Создайте устройство в ASI Biont. В личном кабинете перейдите в раздел «Устройства», нажмите «Добавить», укажите тип
ESP32и введите MQTT-логин/пароль. - Получите MQTT-креды. Скопируйте хост брокера, порт, имя пользователя и клиентский ID (обычно это ваш
clientId). - Заполните прошивку. Вставьте код из статьи, укажите свои SSID, пароль и данные MQTT.
- Прошейте плату. Нажмите «Загрузить», откройте монитор порта и убедитесь, что ESP32 подключился.
- Создайте AI-агента. В ASI Biont добавьте агента, привяжите к устройству, напишите промпт, задайте триггеры. Воспользуйтесь готовым шаблоном «Умная теплица» или создайте своего.
- Протестируйте. Отправьте команду через чат и проверьте, что реле сработали.
Частые ошибки и их решение
| Ошибка | Причина | Решение |
|---|---|---|
| Не подключается к MQTT | Неверный clientId | Сгенерируйте уникальный ID для каждого ESP32 |
| Данные приходят с большой задержкой | TCP-keepalive | В PubSubClient укажите setKeepAlive(15) |
| Многократные ложные срабатывания | Нет защиты от дребезга | Добавьте в код проверку времени с момента последнего события |
| AI-агент не отправляет команды | Неправильное имя топика или формат JSON | Сверьте топик и формат с настройками устройства |
| GPIO не работает после перезагрузки | Не настроен режим pinMode |
Вызывайте pinMode для каждого используемого пина в setup() |
Перспективы: что ещё можно сделать с ESP32 и ASI Biont
Мы рассмотрели только два сценария, но на самом деле комбинация ESP32 и AI-агента даёт практически безграничные возможности:
- Управление умным домом по голосу с распознаванием естественного языка.
- Сбор данных с производственных линий и анализ аномалий.
- Роботизированные платформы на ROS, где ESP32 работает как низкоуровневый контроллер, а ASI Biont — как высокоуровневый мозг.
- Энергоменеджмент: агент прогнозирует электропотребление и включает устройства в часы низкого тарифа.
- Автоматические системы полива и охраны для участков.
Особенно ценно, что ASI Biont умеет обучаться на данных: если агент видит паттерн «после полива вечером влажность держится 3 часа», он может предложить пользователю новый график. Всё это доступно только при тесной интеграции микроконтроллера и AI.
Заключение
Связка ESP32 и ASI Biont превращает любое IoT-устройство в полноценного автономного агента, который не просто выполняет алгоритмы, а понимает контекст и общается с человеком. Вы сэкономите месяцы на разработку и быстро выведете свои проекты на новый уровень. Начните с простого: соберите макет на ESP32, подключите его к нашей платформе и попробуйте изменить промпт агента — результат удивит вас.
Хотите внедрить AI-управление в свой проект? Посетите asibiont.com, создайте бесплатный аккаунт и следуйте инструкциям в нашей документации. Если вам нужна помощь инженеров, оставьте заявку на сайте — мы поможем с интеграцией любого оборудования от ESP32 до промышленных PLC. Подписывайтесь на наш блог, чтобы узнать про AI + ROS, AI + Modbus и другие передовые связки.
Комментарии