Введение
UART (Universal Asynchronous Receiver-Transmitter) — это один из самых распространённых протоколов последовательной связи в мире встраиваемых систем. Он используется в Arduino, ESP32, STM32, промышленных контроллерах, GPS-трекерах, счётчиках воды и электроэнергии, и тысячах других устройств. По данным Embedded Market Report 2025, более 70% всех микроконтроллеров имеют хотя бы один UART-интерфейс, а в IoT-сегменте этот показатель превышает 90%.
Проблема: чтобы подключить такое устройство к облачному AI-агенту, обычно нужно писать сложный код-мост, настраивать веб-серверы, разбираться с MQTT или HTTP API. Это требует времени и навыков программирования.
Решение: ASI Biont позволяет подключить любой MCU через UART буквально за минуты — через чат. AI-агент сам пишет код, подключается к вашему COM-порту и начинает управлять железом. В этой статье я покажу, как это работает на реальном примере с Arduino и датчиком температуры.
Что такое UART и зачем его подключать к AI-агенту?
UART — это последовательный интерфейс, который передаёт данные по одному проводу (TX) и принимает по другому (RX). Скорость передачи задаётся baud rate — типичные значения 9600, 115200, 921600 бит/с.
Подключение UART к AI-агенту даёт:
- Удалённый мониторинг датчиков (температура, влажность, давление, уровень жидкости)
- Управление исполнительными устройствами (реле, сервоприводы, моторы, светодиоды)
- Автоматизация по расписанию или по условиям (например, при превышении температуры включать вентилятор)
- Логирование и анализ данных с построением графиков
- Уведомления в Telegram/Slack при авариях
Как ASI Biont подключается к UART-устройству?
ASI Biont использует Hardware Bridge — это Python-приложение bridge.py, которое запускается на вашем компьютере (Windows, Linux, macOS). Bridge подключается к облачному AI-агенту через WebSocket (единственный канал связи) и обеспечивает доступ к локальным COM-портам.
Схема работы:
1. Вы скачиваете bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge)
2. Устанавливаете зависимости: pip install pyserial requests websockets
3. Запускаете bridge с параметрами: python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
4. В чате с AI-агентом описываете задачу: "Подключись к Arduino на COM3, прочитай температуру с датчика DS18B20 и отправляй мне в Telegram каждые 5 минут"
5. AI использует industrial_command(protocol='serial', command='serial_write_and_read', data='...') для отправки команд и чтения ответов
Важно: bridge не имеет HTTP-сервера. Все команды AI отправляет через WebSocket, bridge выполняет их локально через pyserial и возвращает результат.
Подготовка Arduino/ESP32
Для примера возьмём Arduino Uno с датчиком температуры DS18B20 (1-Wire). Подключение:
- DS18B20: DATA → пин 2, VCC → 5V, GND → GND, подтяжка 4.7 кОм между DATA и VCC
- USB-кабель к компьютеру
Прошивка для Arduino (скетч):
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
sensors.begin();
}
void loop() {
if (Serial.available() > 0) {
String cmd = Serial.readStringUntil('\n');
cmd.trim();
if (cmd == "TEMP") {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.println(String(temp, 2));
} else if (cmd == "HELP") {
Serial.println("TEMP - read temperature");
} else {
Serial.println("UNKNOWN");
}
}
}
Этот скетч слушает последовательный порт, и по команде "TEMP" возвращает температуру, по "HELP" — список команд.
Пошаговая интеграция с ASI Biont
Шаг 1: Запуск bridge.py
Скачайте bridge.py из дашборда ASI Biont. Установите зависимости:
pip install pyserial requests websockets
Запустите bridge, указав ваш токен и порт:
python bridge.py --token=ваш_супер_секретный_токен --ports=COM3 --baud 115200
Если порт занят, bridge сообщит об ошибке. Убедитесь, что Arduino подключена и не используется другим приложением (закройте Arduino IDE).
Шаг 2: Проверка связи в чате
Откройте чат с AI-агентом ASI Biont (веб-интерфейс или Telegram). Напишите:
Подключись к Arduino на COM3 через bridge. Отправь команду HELP и покажи ответ.
AI выполнит:
industrial_command(
protocol='serial',
command='serial_write_and_read',
data='48454c500a' # "HELP\n" в hex
)
Ответ от Arduino: TEMP - read temperature
Шаг 3: Мониторинг температуры в Telegram
Напишите в чат:
Прочитай температуру с Arduino каждые 5 минут. Если температура выше 30°C, отправь мне сообщение в Telegram. Используй execute_python с библиотекой requests для отправки в Telegram.
AI сгенерирует и выполнит такой скрипт:
import time
import requests
# Токен бота и chat ID (выдаются при создании бота у @BotFather)
BOT_TOKEN = "ваш_токен_бота"
CHAT_ID = "ваш_chat_id"
def send_telegram(text):
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": CHAT_ID, "text": text})
# Бесконечный цикл не используем — выполнение в sandbox ограничено 30 секундами
# Вместо этого используем однократное чтение и отправку
# Для периодического мониторинга AI настроит расписание в ASI Biont
# Чтение температуры через bridge
response = industrial_command(
protocol='serial',
command='serial_write_and_read',
data='54454d500a' # "TEMP\n"
)
try:
temp = float(response)
msg = f"Температура: {temp}°C"
if temp > 30:
msg += " ⚠️ Превышение порога!"
send_telegram(msg)
except:
send_telegram("Ошибка чтения температуры")
AI выполнит этот код в облачном sandbox (execute_python) и отправит результат в Telegram. Для периодического запуска AI настроит расписание (cron) внутри ASI Biont.
Сценарии автоматизации без кода
ASI Biont позволяет автоматизировать сценарии без написания кода — через описание в чате. Примеры:
-
Умный термостат: "Если температура выше 28°C, включи реле (команда RELAY_ON). Если ниже 20°C — выключи. Проверяй каждые 10 минут."
-
Логирование в Google Sheets: "Записывай температуру и влажность в Google Sheets каждые 15 минут. Используй токен из моего аккаунта."
-
Аварийное оповещение: "Если датчик движения сработал ночью (с 23:00 до 06:00), отправь фото с камеры в Telegram и включи сирену на 10 секунд."
-
Энергомониторинг: "Считывай показания счётчика электроэнергии по RS-485 (Modbus RTU) раз в час, строй график и присылай отчёт раз в неделю."
Подводные камни и советы
-
Проблемы с драйверами USB-UART: На Windows часто требуется установка драйвера CH340 или CP2102. Если порт не определяется, проверьте Диспетчер устройств.
-
Конфликт портов: Закройте все программы, которые могут использовать COM-порт (Arduino IDE, терминалы).
-
Baud rate: Убедитесь, что скорость в bridge (--baud) совпадает со скоростью в прошивке устройства (Serial.begin).
-
HELP протокол: Для проверки связи AI отправляет команду HELP. Устройство должно ответить списком поддерживаемых команд. Если ответа нет — проверьте подключение и скорость.
-
Hex-формат: Команды передаются в hex (например, "TEMP\n" = "54454d500a"). bridge автоматически конвертирует. Можно использовать и escape-последовательности:
data="TEMP\n". -
Windows Overlapped I/O: Если bridge выдаёт ошибку записи (written: 0), он автоматически применяет CancelIoEx + PurgeComm + синхронный WriteFile. Обычно это решает проблему.
Пример: ESP32 + датчик DHT22 + MQTT
Хотя основная тема — UART, ASI Biont поддерживает и MQTT для ESP32. Это удобно, если устройство уже подключено к Wi-Fi.
Прошивка ESP32 (публикует температуру в топик sensor/temp):
#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
WiFi.begin("SSID", "PASSWORD");
client.setServer("broker.hivemq.com", 1883);
dht.begin();
}
void loop() {
if (!client.connected()) {
client.connect("ESP32_Temp");
}
client.loop();
float temp = dht.readTemperature();
client.publish("sensor/temp", String(temp).c_str());
delay(300000); // каждые 5 минут
}
В чате с ASI Biont пишем:
Подключись к MQTT-брокеру broker.hivemq.com:1883, подпишись на топик sensor/temp. Если температура выше 35°C, отправь alert в Telegram и опубликуй команду "OFF" в топик actuator/relay.
AI использует industrial_command(protocol='mqtt', command='subscribe', topic='sensor/temp') для получения данных.
Почему это выгодно?
- Экономия времени: AI пишет код интеграции за секунды. Вам не нужно изучать документацию по pyserial, MQTT, Modbus — достаточно описать задачу словами.
- Гибкость: Подключайте любые устройства — от Arduino до промышленных PLC. AI сам выбирает подходящий протокол.
- Автоматизация: Настройте сценарии "если-то" без программирования. AI выполнит их по расписанию.
- Масштабирование: Добавьте десятки устройств — AI будет управлять каждым.
Заключение
UART-устройства — это основа встраиваемых систем. Интеграция с AI-агентом ASI Biont открывает новые возможности: удалённый мониторинг, умная автоматизация, оповещения, анализ данных. Hardware Bridge делает подключение простым и безопасным — данные не покидают ваш компьютер, а AI работает через облако.
Попробуйте сами: создайте аккаунт на asibiont.com, скачайте bridge, подключите Arduino и дайте команду в чат. AI сделает всю работу за вас.
Комментарии