Введение
UART (Universal Asynchronous Receiver/Transmitter) — один из самых распространённых последовательных интерфейсов в мире встраиваемых систем. ESP32, Arduino, STM32, промышленные контроллеры — все они имеют UART. До недавнего времени, чтобы подключить такое устройство к AI-ассистенту, нужно было писать сложные скрипты, настраивать брокеры и разбираться в протоколах. С AI-агентом ASI Biont процесс упрощается до одного диалога в чате. В этой статье мы на практическом примере покажем, как подключить любой MCU с UART (на примере ESP32 с датчиком DHT22) к ASI Biont через Hardware Bridge, автоматизировать сбор данных и управление нагрузкой, и получить готового AI-помощника для умного дома или лаборатории.
Почему UART и зачем подключать к AI?
UART даёт прямой, низкоуровневый доступ к устройству. Вы можете читать сырые данные с сенсоров, отправлять команды на исполнительные механизмы, обновлять прошивку. Но без AI-агента вы либо вручную мониторите COM-порт, либо пишете жёсткий скрипт, который не адаптируется к нестандартным ситуациям. ASI Biont решает эту проблему: AI сам пишет код под вашу задачу, интерпретирует данные и принимает решения. Например, если температура превысила порог — AI может отправить уведомление в Telegram, включить реле и записать данные в Google Sheets — и всё это без вашего участия.
Способы подключения UART-устройства к ASI Biont
ASI Biont поддерживает два основных способа работы с UART:
- Hardware Bridge — для устройств, подключённых к COM-порту вашего ПК (Arduino, ESP32 через USB-UART). Вы скачиваете bridge.py из дашборда, запускаете его на своём компьютере, и AI через WebSocket отправляет команды, которые bridge транслирует в COM-порт.
- execute_python — если устройство имеет свой IP и SSH-доступ (например, Raspberry Pi, Orange Pi). AI пишет Python-скрипт с paramiko, который выполняется в облачном sandbox и удалённо управляет UART на устройстве.
В этой статье мы рассмотрим первый вариант как самый универсальный для MCU.
Практический сценарий: ESP32 + DHT22 + реле + Telegram-уведомления
Аппаратная схема
- ESP32 (любая плата с USB-UART, например ESP32 DevKit V1)
- Датчик температуры и влажности DHT22 (подключён к GPIO4)
- Реле (подключено к GPIO16, управляет нагрузкой 220В, например лампой)
- Питание: USB от ПК или внешний блок 5В
Схема подключения:
- DHT22 VCC -> ESP32 3.3V
- DHT22 GND -> ESP32 GND
- DHT22 DATA -> ESP32 GPIO4 (с подтяжкой 10кОм к 3.3V)
- Реле IN -> ESP32 GPIO16
- Реле VCC -> ESP32 5V (если реле 5В) или внешний источник
- Реле GND -> ESP32 GND
Прошивка ESP32 (MicroPython)
Загрузите на ESP32 следующий код. Он принимает команды по UART (например, "READ" возвращает температуру и влажность, "LED_ON" включает реле, "LED_OFF" выключает).
import machine
import dht
import time
import ubinascii
sensor = dht.DHT22(machine.Pin(4))
relay = machine.Pin(16, machine.Pin.OUT)
relay.value(0)
uart = machine.UART(0, baudrate=115200)
while True:
if uart.any():
cmd = uart.readline().decode().strip()
if cmd == "READ":
try:
sensor.measure()
t = sensor.temperature()
h = sensor.humidity()
response = f"TEMP:{t:.1f},HUM:{h:.1f}\n"
uart.write(response)
except Exception as e:
uart.write("ERROR\n")
elif cmd == "LED_ON":
relay.value(1)
uart.write("OK\n")
elif cmd == "LED_OFF":
relay.value(0)
uart.write("OK\n")
elif cmd == "HELP":
uart.write("READ,LED_ON,LED_OFF\n")
time.sleep_ms(100)
Настройка Hardware Bridge
- Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
- Установите зависимости:
pip install pyserial requests websockets - Запустите bridge:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
Где COM3 — порт, к которому подключена ESP32. На Linux это может быть /dev/ttyUSB0.
Диалог с AI-агентом
Теперь вы просто пишете в чат ASI Biont:
«Подключись к ESP32 на COM3, 115200 baud. Каждые 5 минут читай температуру и влажность с датчика DHT22. Если температура выше 30°C, включи реле на GPIO16 и отправь мне уведомление в Telegram. Если ниже 25°C — выключи реле. Также отправляй сводку в Telegram раз в час.»
AI сам сгенерирует и выполнит Python-скрипт, который:
- Подключится к bridge через WebSocket
- Будет циклически отправлять команду serial_write_and_read(data="524541440A") (HEX для "READ\n")
- Парсить ответ и сравнивать с порогами
- Использовать serial_write_and_read(data="4C45445F4F4E0A") для включения реле
- Отправлять сообщения через Telegram Bot API (используя библиотеку requests)
Пример сгенерированного кода (упрощённо):
import asyncio
import websockets
import json
import requests
TELEGRAM_TOKEN = "ваш_токен"
TELEGRAM_CHAT_ID = "ваш_chat_id"
async def monitor():
async with websockets.connect("wss://bridge.asi.biont/ws?token=токен") as ws:
while True:
# Читаем температуру
await ws.send(json.dumps({
"action": "serial_write_and_read",
"data": "524541440A" # READ\n в hex
}))
response = await ws.recv()
data = json.loads(response)
if data.get("result"):
temp_str = data["result"]
# парсим TEMP:25.3,HUM:60.1
temp = float(temp_str.split(",")[0].split(":")[1])
if temp > 30:
# Включить реле
await ws.send(json.dumps({
"action": "serial_write_and_read",
"data": "4C45445F4F4E0A"
}))
requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": f"Температура {temp}°C, реле включено!"})
elif temp < 25:
await ws.send(json.dumps({
"action": "serial_write_and_read",
"data": "4C45445F4F4F0A"
}))
await asyncio.sleep(300) # 5 минут
asyncio.run(monitor())
Важно: Этот код не нужно писать вручную — AI сделает это за вас. Вы просто описываете задачу на естественном языке.
Другие сценарии для UART-устройств
- Arduino + датчик CO2: AI парсит показания, при превышении 1000 ppm отправляет предупреждение и включает вентиляцию.
- GPS-трекер (NMEA): AI принимает NMEA-строки через bridge, определяет местоположение и строит маршрут на карте.
- Промышленный контроллер с RS-485: Если MCU использует RS-485, подключаете через USB-конвертер, и AI управляет Modbus RTU командами.
- Логирование данных: AI каждые 10 минут опрашивает датчики и сохраняет в CSV или отправляет в Google Sheets.
Сравнение: традиционный подход vs AI-агент
| Характеристика | Традиционный подход | ASI Biont + AI |
|---|---|---|
| Время настройки | Часы (написание скрипта, отладка) | Минуты (описание задачи в чате) |
| Гибкость | Нужно переписывать код при изменении условий | Просто изменить запрос в чате |
| Обработка ошибок | Требуется ручное программирование исключений | AI сам обрабатывает таймауты, пустые ответы |
| Интеграции | Нужно подключать каждую новую систему отдельно | AI использует любые API по запросу |
| Масштабирование | Сложно, требует рефакторинга | AI адаптирует код под новые устройства |
Почему это выгодно?
Вы получаете готового AI-инженера, который:
- Пишет код интеграции за секунды
- Работает с любыми протоколами (UART, MQTT, Modbus, OPC UA, HTTP)
- Не требует ручного программирования логики
- Может комбинировать данные с разных устройств
- Отправляет уведомления куда угодно (Telegram, Slack, email)
Заключение
Подключение MCU с UART к AI-агенту ASI Biont открывает безграничные возможности для автоматизации: от умного дома до промышленного мониторинга. Вам не нужно быть экспертом в Python или протоколах — просто опишите задачу в чате, и AI сделает всю работу. Попробуйте интеграцию уже сегодня на asibiont.com.
Комментарии