Введение
ESP32 — один из самых популярных микроконтроллеров в мире IoT. Он дешёв, имеет встроенный Wi-Fi и Bluetooth, а также кучу GPIO для подключения датчиков. Но чтобы сделать из ESP32 не просто сборщик данных, а полноценного участника умной системы, обычно нужно писать много кода: поднимать MQTT-брокер, настраивать логику, реализовывать уведомления. С AI-агентом ASI Biont всё иначе: вы просто описываете задачу в чате, и он сам генерирует и выполняет код интеграции.
В этой статье — реальный кейс: ESP32 с датчиком DHT22 передаёт температуру и влажность по MQTT, а ASI Biont анализирует поток, строит графики и оповещает о выходах за норму. Причём весь процесс подключения — это пара сообщений в чате.
Почему MQTT?
MQTT — лёгкий publish/subscribe-протокол, идеальный для устройств с ограниченными ресурсами. ESP32 отлично поддерживает его через библиотеки PubSubClient или MicroPython umqtt.simple. ASI Biont, в свою очередь, использует библиотеку paho-mqtt в облачном sandbox, что позволяет подписываться на топики и публиковать команды без единой строчки ручного кода со стороны пользователя.
Как ASI Biont подключается к ESP32 по MQTT?
ASI Biont не имеет встроенного «мастера подключения устройств». Вместо этого он использует универсальный механизм execute_python: AI пишет Python-скрипт, который выполняется в защищённом sandbox-окружении на сервере. Скрипт может содержать paho.mqtt.client, requests, matplotlib — любые из десятков предустановленных библиотек. Если устройство общается по MQTT, AI просто генерирует код, который:
- подключается к указанному брокеру (например, test.mosquitto.org 1883);
- подписывается на нужный топик (esp32/dht22/temperature);
- обрабатывает полученные JSON-сообщения;
- публикует команды обратно (например, включить реле).
Пример диалога:
Пользователь: «Подключи меня к MQTT-брокеру
iot.eclipse.org, подпишись наesp32/temperatureи построй график температуры за последние 10 минут. Если температура выше 30°C — отправь мне в Telegram предупреждение.»
ASI Biont за секунду генерирует и выполняет скрипт на Python, используя paho-mqtt для подписки, json для разбора сообщений, matplotlib для графика и requests для отправки в Telegram.
Конкретный сценарий: мониторинг теплицы
Что нужно на стороне ESP32
Предположим, у вас есть ESP32 с датчиком DHT22, который каждые 5 секунд измеряет температуру и влажность. Прошивка на MicroPython:
import time
import dht
import machine
from umqtt.simple import MQTTClient
sensor = dht.DHT22(machine.Pin(4))
client = MQTTClient('esp32_1', 'test.mosquitto.org')
client.connect()
while True:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
payload = f'{{"temperature": {temp}, "humidity": {hum}}}'
client.publish(b'esp32/dht22', payload.encode())
time.sleep(5)
(В реальной статье код можно упростить, но он рабочий.)
Действия пользователя
- Убедитесь, что ESP32 включён и публикует данные в MQTT.
- Откройте чат с ASI Biont.
- Напишите: «Подпишись на топик
esp32/dht22у брокераtest.mosquitto.org. Собери данные за последнюю минуту, покажи среднюю температуру и влажность, и предупреди, если температура больше 28°C.»
ASI Biont сгенерирует и выполнит скрипт, аналогичный этому:
import paho.mqtt.client as mqtt
import json
import time
DATA = []
def on_message(client, userdata, msg):
payload = json.loads(msg.payload)
DATA.append(payload)
if len(DATA) > 12: # ~1 минута при 5 сек интервале
client.disconnect()
client = mqtt.Client()
client.connect('test.mosquitto.org', 1883, 60)
client.subscribe('esp32/dht22')
client.on_message = on_message
client.loop_start()
time.sleep(70)
client.loop_stop()
if DATA:
avg_temp = sum(d['temperature'] for d in DATA) / len(DATA)
avg_hum = sum(d['humidity'] for d in DATA) / len(DATA)
print(f'Средняя температура: {avg_temp:.1f}°C, средняя влажность: {avg_hum:.1f}%')
if avg_temp > 28:
print('⚠️ Температура превышает 28°C!')
Результат возвращается в чат: AI выводит средние значения и предупреждение, а при необходимости — строит график с помощью matplotlib и показывает inline-изображение.
Дополнительный способ: COM-порт через Hardware Bridge
Если ваш ESP32 подключён к компьютеру по USB (например, для отладки или прошивки), ASI Biont может общаться с ним через Hardware Bridge. Это программа bridge.py, которую вы скачиваете из дашборда и запускаете локально. Bridge соединяется с облаком через WebSocket, а AI использует industrial_command с протоколом serial://.
Пример команды из чата:
«Открой COM3 на 115200 baud, отправь ESP32 команду
STATUSи прочитай ответ».
AI выполнит:
industrial_command(protocol='serial://', command='write_and_read', data='5354415455530A') # STATUS + \n в hex
Bridge отправит байты в COM-порт и вернёт ответ. Это удобно для быстрой проверки или когда нет MQTT-сети.
Почему ASI Biont выгоднее ручного кода?
| Ручная реализация | ASI Biont |
|---|---|
| Пишете код для ESP32 + серверный обработчик | Вы описываете задачу словами |
| Настраиваете брокер, логику, уведомления | AI сам генерирует и выполняет скрипт за секунды |
| Для изменения логики — правка кода и деплой | Достаточно новой команды в чате |
| Ограничены одним протоколом | AI поддерживает MQTT, Modbus, OPC-UA, HTTP и ещё 10+ протоколов |
Более того, ASI Biont не привязан к конкретному устройству: если завтра вы захотите перейти с ESP32 на Raspberry Pi — просто опишите новый сценарий. AI адаптируется.
Заключение
Интеграция ESP32 с ASI Biont через MQTT — это не абстрактная концепция, а рабочий инструмент, который уже сегодня позволяет инженерам, хоббистам и интеграторам тратить минуты вместо дней на создание IoT-систем. Не нужно ждать обновлений прошивки или писать SDK — AI делает всю работу сам.
Хотите попробовать? Зайдите на asibiont.com, создайте API-ключ в разделе Devices, скачайте bridge (если нужно) и начните диалог с AI-агентом. Подключите ESP32, Arduino, PLC или что угодно — ASI Biont поймёт и подключится.
Комментарии