Введение
ESP32 — один из самых популярных микроконтроллеров для интернета вещей (IoT). Встроенный Wi-Fi, Bluetooth, два ядра, низкая цена — это сделало его стандартом для умного дома, промышленного мониторинга и любительских проектов. Но чтобы управлять ESP32 через AI, получать данные с датчиков и автоматизировать реакции, раньше приходилось писать десятки строк кода, настраивать MQTT-брокеры, писать веб-интерфейсы. Сейчас это можно сделать за минуту через чат с AI-агентом ASI Biont.
ASI Biont — это AI-агент, который подключается к любому устройству через execute_python — он сам пишет код интеграции под ваше оборудование. Не нужно ждать, пока разработчики добавят поддержку ESP32 — подключайте устройство прямо сейчас. Просто опишите в чате, к какому устройству подключиться и какие параметры (IP, порт, baud rate, API-ключ), и AI сам сгенерирует код на Python с использованием paho-mqtt, pyserial, pymodbus или aiohttp. Всё подключение происходит через диалог в чате, никаких панелей управления и кнопок «добавить устройство» не требуется.
В этой статье мы разберём, как подключить ESP32 к ASI Biont через MQTT — самый распространённый сценарий для IoT-устройств. Вы узнаете, как настроить прошивку ESP32, как AI подключается к MQTT-брокеру, как читает данные с датчика DHT22 и управляет реле, а также как автоматизировать реакции — например, отправлять уведомления в Telegram при превышении температуры.
Какой способ подключения используется и почему
Для ESP32 мы используем MQTT — это протокол обмена сообщениями, который работает по принципу «издатель-подписчик». ESP32 публикует данные в топик (например, sensor/temperature), а AI-агент подписывается на этот топик и получает данные. Для отправки команд AI публикует сообщение в топик управления (например, device/relay/set), ESP32 подписан на этот топик и выполняет команду.
Почему MQTT, а не COM-порт или SSH?
- Удалённое подключение: MQTT работает через интернет, ESP32 может находиться в любой точке мира.
- Надёжность: протокол поддерживает QoS (качество обслуживания) — сообщения не теряются.
- Масштабируемость: можно подключить десятки ESP32 к одному брокеру.
- Простота: библиотеки есть для ESP32 (PubSubClient, Arduino MQTT) и для Python (paho-mqtt).
ASI Biont подключается к MQTT-брокеру через execute_python — AI пишет скрипт на Python с библиотекой paho-mqtt, который выполняется в sandbox-окружении. Пользователь передаёт параметры: адрес брокера, порт, логин/пароль, топики. AI сам пишет код, выполняет его и возвращает результат.
Сценарий: ESP32 + датчик DHT22 + управление реле через Telegram
Что нужно
- ESP32 (например, ESP32 DevKit V1)
- Датчик температуры и влажности DHT22
- Модуль реле (одноканальный или двухканальный)
- MQTT-брокер (можно использовать публичный test.mosquitto.org или поднять свой на Raspberry Pi)
- ПК с браузером для доступа к ASI Biont
Схема подключения
ESP32 GPIO Pinout:
DHT22:
VCC -> 3.3V (ESP32)
GND -> GND
DATA -> GPIO4
Реле:
VCC -> 3.3V (ESP32)
GND -> GND
IN -> GPIO2
Прошивка ESP32 (Arduino IDE)
Сначала загрузим прошивку на ESP32. Она подключается к Wi-Fi и MQTT-брокеру, публикует температуру и влажность каждые 10 секунд, и подписывается на топик для управления реле.
#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
// Wi-Fi
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
// MQTT
const char* mqtt_server = "test.mosquitto.org";
const int mqtt_port = 1883;
const char* mqtt_topic_temp = "sensor/temperature";
const char* mqtt_topic_hum = "sensor/humidity";
const char* mqtt_topic_relay = "device/relay/set";
// DHT22
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Реле
#define RELAY_PIN 2
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
client.setServer(mqtt_server, mqtt_port);
client.setCallback(callback);
}
void callback(char* topic, byte* payload, unsigned int length) {
String message;
for (int i = 0; i < length; i++) {
message += (char)payload[i];
}
if (String(topic) == mqtt_topic_relay) {
if (message == "ON") {
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Relay ON");
} else if (message == "OFF") {
digitalWrite(RELAY_PIN, LOW);
Serial.println("Relay OFF");
}
}
}
void reconnect() {
while (!client.connected()) {
if (client.connect("ESP32Client")) {
client.subscribe(mqtt_topic_relay);
} else {
delay(5000);
}
}
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (!isnan(temp) && !isnan(hum)) {
client.publish(mqtt_topic_temp, String(temp).c_str());
client.publish(mqtt_topic_hum, String(hum).c_str());
}
delay(10000);
}
Как ASI Biont подключается к ESP32 через MQTT
Теперь, когда ESP32 публикует данные в MQTT-брокер, AI-агент может подключиться и начать взаимодействие. Для этого пользователь просто пишет в чате ASI Biont:
«Подключись к MQTT-брокеру test.mosquitto.org:1883, подпишись на топик sensor/#, получай данные с ESP32. Если температура превышает 30°C, отправь уведомление в Telegram и выключи реле через топик device/relay/set.»
AI сам пишет Python-скрипт, который выполняется в sandbox-окружении. Вот пример кода, который сгенерирует AI:
import paho.mqtt.client as mqtt
import requests
import json
# Конфигурация
BROKER = "test.mosquitto.org"
PORT = 1883
TOPIC_TEMP = "sensor/temperature"
TOPIC_HUM = "sensor/humidity"
TOPIC_RELAY = "device/relay/set"
TELEGRAM_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"
def send_telegram(message):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
payload = {"chat_id": CHAT_ID, "text": message}
requests.post(url, json=payload)
def on_message(client, userdata, msg):
topic = msg.topic
payload = msg.payload.decode()
if topic == TOPIC_TEMP:
temp = float(payload)
if temp > 30.0:
send_telegram(f"⚠️ Температура превысила 30°C: {temp}°C. Выключаю реле.")
client.publish(TOPIC_RELAY, "OFF")
elif temp < 15.0:
send_telegram(f"❄️ Температура ниже 15°C: {temp}°C. Включаю обогрев.")
client.publish(TOPIC_RELAY, "ON")
def on_connect(client, userdata, flags, rc):
client.subscribe(TOPIC_TEMP)
client.subscribe(TOPIC_HUM)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.loop_start()
# Держим соединение 30 секунд (таймаут sandbox)
import time
time.sleep(30)
client.loop_stop()
Как это работает в реальном времени
- ESP32 измеряет температуру и влажность каждые 10 секунд и публикует в топики.
- AI-агент подписан на эти топики, получает данные.
- При превышении порога AI публикует команду в топик управления реле.
- ESP32 получает команду и включает/выключает реле.
- AI также может отправить уведомление в Telegram.
Другие сценарии интеграции ESP32 с ASI Biont
| Сценарий | Протокол | Что делает AI |
|---|---|---|
| Мониторинг температуры в теплице | MQTT | Собирает данные с DHT22, строит графики трендов (через matplotlib), отправляет отчёт в Telegram раз в час |
| Управление освещением | MQTT | По расписанию (закат/рассвет) публикует ON/OFF, учитывает данные с датчика освещённости |
| Охранная система | MQTT + Telegram | При срабатывании PIR-датчика публикует событие, AI отправляет фото с камеры (если есть) и уведомление |
| Умный полив | MQTT | Читает влажность почвы, при низком уровне публикует команду на включение клапана |
| Промышленный мониторинг | Modbus/TCP (если ESP32 как Modbus-устройство) | Читает регистры, логирует в базу данных, предсказывает отказы |
Преимущества интеграции через ASI Biont
- Не нужно писать код самому — AI генерирует его за секунды.
- Гибкость — меняйте логику в чате: «добавь топик для датчика CO2», «измени порог температуры на 25°C».
- Универсальность — один AI-агент подключается к любому устройству: ESP32, Arduino, Raspberry Pi, PLC, умные розетки.
- Автоматизация — AI сам выполняет реакции: отправка уведомлений, запись в базу, управление реле.
Как начать
- Зарегистрируйтесь на asibiont.com.
- Настройте ESP32 (прошивка из статьи) и убедитесь, что он публикует данные в MQTT.
- В чате ASI Biont напишите: «Подключись к MQTT-брокеру <адрес>:<порт>, подпишись на топик sensor/#, получай данные с ESP32. Если температура выше 30°C, отправь уведомление в Telegram и выключи реле через топик device/relay/set».
- AI сгенерирует код, выполнит его, и вы увидите результат в чате.
Заключение
ESP32 — мощный и недорогой микроконтроллер, который идеально подходит для IoT-проектов. Интеграция с AI-агентом ASI Biont через MQTT открывает новые возможности: вы можете управлять устройствами через чат, автоматизировать реакции на события, получать уведомления и аналитику. Не нужно быть программистом — AI пишет код за вас. Попробуйте прямо сейчас на asibiont.com.
Комментарии