Введение
COM-порт (RS-232) — это один из старейших, но до сих пор широко используемых последовательных интерфейсов в промышленности, лабораториях и DIY-проектах. Весы, контроллеры температуры, частотные преобразователи, GPS-трекеры, Arduino — тысячи устройств общаются именно через этот интерфейс.
Проблема в том, что для чтения данных с COM-порта обычно нужен специальный софт (терминалки типа PuTTY, HyperTerminal или самописные скрипты на Python с pyserial). А чтобы эти данные куда-то передать (например, в Telegram или Slack), приходится дополнительно писать интеграцию с API мессенджеров. В итоге даже простая задача «прочитай температуру с датчика и пришли в чат» превращается в многочасовой кодинг.
ASI Biont решает эту проблему кардинально: вы просто описываете задачу в чате, и AI-агент сам подключается к устройству, парсит данные и отправляет их куда нужно. Никаких панелей управления, никаких кнопок «добавить устройство» — только диалог.
Как ASI Biont подключается к COM-порту
Для работы с COM-портом ASI Biont использует Hardware Bridge — небольшое приложение bridge.py, которое пользователь запускает на своём ПК (Windows/Linux/macOS). Bridge подключается к облаку ASI Biont через единственный канал — WebSocket. AI отправляет команды через инструмент industrial_command, они уходят на bridge пользователя, а bridge читает и пишет в COM-порт через библиотеку pyserial.
Ключевой момент: bridge не имеет HTTP-сервера, не слушает localhost. Вся связь — только через WebSocket с облаком.
Пошаговая настройка
- Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
- Установите зависимости:
pip install pyserial requests websockets
- Запустите bridge с параметрами порта:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
- В чате с AI-агентом напишите, например: «Подключись к COM3, скорость 115200, прочитай данные и скажи, что там приходит».
Реальный кейс: мониторинг температуры с Arduino через COM-порт
Представьте: у вас есть Arduino Uno с датчиком температуры DS18B20, подключённая к ПК через USB (виртуальный COM-порт). Arduino каждую секунду отправляет строку вида:
TEMP:23.5
Что делает AI-агент ASI Biont
Вы пишете в чат:
«Подключись к COM3 на 115200 baud, читай данные. Каждые 10 секунд проверяй температуру. Если она выше 30°C — отправь предупреждение в Telegram. Если выше 40°C — отправь срочное уведомление в Slack. Все данные сохраняй в CSV-файл на моём ПК.»
AI-агент выполняет следующие шаги:
- Отправляет команду
serial_write_and_readс data="" (пустая строка), чтобы проверить связь. - Начинает циклическое чтение (bridge сам шлёт данные по WebSocket по мере поступления).
- Парсит строки, извлекает температуру.
- При превышении порога генерирует Python-скрипт, который через execute_python (в облаке) отправляет сообщение в Telegram и Slack.
- Логирует все данные в CSV через bridge.
Пример команды, которую AI отправляет на bridge:
industrial_command(
protocol='serial://',
command='serial_write_and_read',
data='' # пустая строка — просто читаем
)
Пример Python-кода для отправки в Telegram (выполняется в облаке):
import requests
TOKEN = "ваш_токен"
CHAT_ID = "ваш_chat_id"
def send_telegram(message):
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
data = {"chat_id": CHAT_ID, "text": message}
requests.post(url, data=data)
send_telegram("⚠️ Температура превысила 30°C: 31.2°C")
Результат
- Данные с датчика автоматически попадают в чат.
- При превышении порога — мгновенное уведомление в Telegram и Slack.
- Все изменения сохраняются в CSV для последующего анализа.
- Всё это работает без единой строчки кода, написанной вручную.
А что если устройство не Arduino, а промышленный контроллер?
COM-порт используется не только с микроконтроллерами. Например, многие PLC (Programmable Logic Controller) имеют RS-232 порт для диагностики. ASI Biont поддерживает работу с любым устройством через COM-порт, если оно использует текстовый или бинарный протокол.
Пример: опрос весового терминала
Весы с RS-232 отправляют строки вида:
ST,GS,+000.500,kg
AI-агент может:
- Парсить строку, извлекать вес.
- Сравнивать с эталоном.
- Отправлять отчёт в WhatsApp (через Twilio) или в Telegram.
- При превышении допустимой массы — останавливать конвейер через реле, подключённое к Arduino (управление через bridge).
Команда для чтения:
industrial_command(
protocol='serial://',
command='serial_write_and_read',
data='' # читаем без отправки
)
Команда для отправки команды на весы (например, тарировка):
industrial_command(
protocol='serial://',
command='serial_write_and_read',
data='544152450a' # "TARE\n" в hex
)
Технические детали для гиков
Bridge использует pyserial, но на Windows есть нюанс: при проблемах с overlapped I/O (когда pyserial не может записать данные) bridge автоматически применяет:
- CancelIoEx — отмена зависших overlapped операций.
- PurgeComm — очистка буферов.
- Синхронный WriteFile (без overlapped I/O) — гарантированная запись.
Для передачи данных используется hex-формат. Функция _parse_data_field() в bridge.py преобразует как hex-строки (48454c500a), так и escape-последовательности (BLUE_ON\n, LED_OFF\r\n) в bytes.
Возможности безграничны: execute_python
Если ваше устройство не подходит ни под один из стандартных протоколов (Modbus, MQTT, OPC-UA), ASI Biont всё равно может с ним работать — через execute_python. AI пишет Python-скрипт, который выполняется в sandbox-окружении на сервере ASI Biont. Скрипт имеет доступ ко всем популярным библиотекам:
| Библиотека | Назначение |
|---|---|
| pyserial | COM-порт (только через bridge) |
| paramiko | SSH (Raspberry Pi, серверы) |
| paho-mqtt | MQTT (ESP32, умный дом) |
| pymodbus | Modbus TCP (PLC) |
| snap7 | Siemens S7 |
| bac0 | BACnet (BMS) |
| pycomm3 | EtherNet/IP (Allen-Bradley) |
| python-can | CAN bus (авто, станки) |
| opcua-asyncio | OPC UA |
| aiohttp | HTTP API (умные розетки, камеры) |
| requests | REST API |
Важно: execute_python НЕ имеет прямого доступа к COM-портам пользователя, так как выполняется в облаке. Для работы с COM-портами всегда используйте Hardware Bridge.
Почему это выгодно?
- Скорость: интеграция, на которую раньше уходили часы или дни, теперь занимает минуты.
- Гибкость: вы не привязаны к одному протоколу. Подключайте любое устройство — AI сам разберётся.
- Никакого кода: вы описываете задачу простыми словами, AI пишет код.
- Масштабируемость: один AI-агент может управлять сотнями устройств одновременно.
Заключение
COM-порт не умер — он живёт в тысячах промышленных устройств, весах, GPS-трекерах и лабораторном оборудовании. ASI Biont даёт этим устройствам голос: теперь они могут общаться с вами в Telegram, Slack, email или любом другом канале. Всё, что нужно — запустить bridge и описать задачу в чате.
Попробуйте интеграцию прямо сейчас на asibiont.com. Подключите свой первый датчик за 5 минут.
Комментарии