Введение
USB-to-Serial адаптеры на базе чипов FTDI, CH340 и CP2102 — это недорогие и распространённые устройства, которые превращают USB-порт компьютера в последовательный COM-порт (RS-232, RS-485 или TTL UART). Они широко используются для подключения промышленных контроллеров, датчиков, GPS-трекеров, Arduino, ESP32 и другого оборудования, где требуется надёжная передача данных по последовательному интерфейсу. Интеграция таких адаптеров с AI-агентом ASI Biont позволяет автоматизировать сбор данных с COM-портов, управлять устройствами через чат и выполнять сложные сценарии без ручного написания кода. В этой статье мы разберём, как подключить USB-to-Serial адаптер к ASI Biont, какие протоколы и инструменты для этого используются, и приведём конкретные примеры кода.
Как ASI Biont подключается к COM-порту?
ASI Biont поддерживает несколько способов подключения к последовательным устройствам, но для USB-to-Serial адаптеров (FTDI, CH340, CP2102) используется Hardware Bridge. Это отдельное приложение bridge.py, которое пользователь запускает на своём ПК (Windows, Linux или macOS). Bridge подключается к облачному AI-агенту через WebSocket — единственный канал связи. AI отправляет команды через инструмент industrial_command, bridge принимает их, читает или записывает данные в COM-порт через библиотеку pyserial, и возвращает результат обратно AI.
Для работы с 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.
AI использует атомарную операцию serial_write_and_read(data=hex_string), которая отправляет данные в порт и сразу читает ответ. Данные передаются в hex-формате (например, 48454c500a для строки "HELP\n"). Bridge также поддерживает escape-последовательности (например, BLUE_ON\n).
Сценарий 1: Чтение данных с датчика через Arduino и COM-порт
Допустим, у вас есть Arduino с датчиком температуры DHT22, подключённый к ПК через USB-to-Serial адаптер (например, CH340). Arduino отправляет данные в формате Temperature: 23.5 Humidity: 60.2\n каждые 2 секунды. Вы хотите, чтобы AI-агент ASI Biont читал эти данные, анализировал их и отправлял уведомление в Telegram, если температура превышает 30°C.
Шаг 1: Настройка bridge
Запускаем bridge на ПК с Arduino:
python bridge.py --token=abc123 --ports=COM3 --baud 9600 --rate=10
--rate=10 ограничивает частоту запросов к COM-порту до 10 в секунду.
Шаг 2: Команда AI
В чате с ASI Biont пишем:
Подключись к COM3 на 9600 baud. Читай данные с Arduino каждые 10 секунд. Если температура > 30°C, отправь уведомление в Telegram.
AI генерирует и выполняет инструмент industrial_command:
industrial_command(
protocol='serial',
command='write_and_read',
data='48454c500a', # HELP\n для проверки связи
port='COM3',
baud=9600
)
Если устройство отвечает списком команд, AI продолжает мониторинг, используя execute_python для периодического чтения:
import requests
import time
# Параметры Telegram (предоставлены пользователем)
TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "ваш_chat_id"
def send_telegram(message):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": CHAT_ID, "text": message})
# Чтение данных через bridge (AI отправляет команду каждые 10 секунд)
# Здесь мы используем industrial_command, но для примера показываем логику
while True:
# AI запрашивает чтение через serial_write_and_read
response = industrial_command(protocol='serial', command='write_and_read', data='', port='COM3', baud=9600)
if 'Temperature' in response:
# Парсим значение
temp = float(response.split('Temperature: ')[1].split()[0])
if temp > 30:
send_telegram(f"⚠️ Температура превысила 30°C: {temp}°C")
time.sleep(10)
Важно: В sandbox ASI Biont нет бесконечных циклов с while True — таймаут 30 секунд. В реальной работе AI использует industrial_command для однократных запросов, а периодичность настраивается на стороне bridge или через внешний планировщик (например, cron).
Результат
AI автоматически читает данные с COM-порта, анализирует их и отправляет уведомления в Telegram. Всё, что нужно от вас — запустить bridge и описать задачу в чате.
Сценарий 2: Управление реле через USB-to-Serial
Допустим, у вас есть промышленный контроллер с реле, подключённый через FTDI адаптер на COM5. Команда включения реле — RELAY_ON\r\n, выключения — RELAY_OFF\r\n. Вы хотите включать реле по команде из Telegram.
Шаг 1: Запуск bridge
python bridge.py --token=abc123 --ports=COM5 --baud 115200
Шаг 2: Команда AI
Пишем в чат:
Открой COM5 на 115200 baud. Когда я пишу "включи реле", отправь строку RELAY_ON\r\n.
AI обрабатывает команду через industrial_command:
industrial_command(
protocol='serial',
command='write_and_read',
data='52454c41595f4f4e0d0a', # RELAY_ON\r\n в hex
port='COM5',
baud=115200
)
Bridge отправляет строку в COM-порт и возвращает ответ (например, "OK"). AI сообщает результат в чат.
Почему это выгодно?
- Не нужно писать код вручную. AI генерирует интеграцию за секунды на основе вашего описания.
- Поддержка любых протоколов. Кроме COM-порта, AI может подключаться через SSH, MQTT, Modbus TCP, OPC UA и другие — достаточно описать задачу.
- Гибкость. Bridge работает на Windows, Linux и macOS, поддерживает любые baud rates и форматы данных.
- Автоматизация. AI может выполнять сложные сценарии: сбор данных, логирование, уведомления, управление по расписанию.
Как начать?
- Скачайте
bridge.pyиз дашборда ASI Biont. - Установите
pyserialи запустите bridge с вашим токеном и портом. - Опишите в чате задачу: "Подключись к COM3 на 9600 baud, читай данные с датчика и отправляй в Telegram при превышении температуры".
- AI сделает всё остальное.
Заключение
USB-to-Serial адаптеры — это мост между вашим ПК и множеством промышленных устройств. Интеграция с ASI Biont превращает их в управляемые AI-элементы автоматизации. Вы можете читать данные, управлять реле, мониторить оборудование — и всё это через простой чат. Попробуйте интеграцию на asibiont.com и убедитесь, что автоматизация COM-портов стала доступной каждому.
Комментарии