COM-порт и RS-232: как AI-агент ASI Biont оживляет промышленные датчики без единой строки кода

Введение

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 с облаком.

Пошаговая настройка

  1. Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
  2. Установите зависимости:
pip install pyserial requests websockets
  1. Запустите bridge с параметрами порта:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
  1. В чате с 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-агент выполняет следующие шаги:

  1. Отправляет команду serial_write_and_read с data="" (пустая строка), чтобы проверить связь.
  2. Начинает циклическое чтение (bridge сам шлёт данные по WebSocket по мере поступления).
  3. Парсит строки, извлекает температуру.
  4. При превышении порога генерирует Python-скрипт, который через execute_python (в облаке) отправляет сообщение в Telegram и Slack.
  5. Логирует все данные в 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.

Почему это выгодно?

  1. Скорость: интеграция, на которую раньше уходили часы или дни, теперь занимает минуты.
  2. Гибкость: вы не привязаны к одному протоколу. Подключайте любое устройство — AI сам разберётся.
  3. Никакого кода: вы описываете задачу простыми словами, AI пишет код.
  4. Масштабируемость: один AI-агент может управлять сотнями устройств одновременно.

Заключение

COM-порт не умер — он живёт в тысячах промышленных устройств, весах, GPS-трекерах и лабораторном оборудовании. ASI Biont даёт этим устройствам голос: теперь они могут общаться с вами в Telegram, Slack, email или любом другом канале. Всё, что нужно — запустить bridge и описать задачу в чате.

Попробуйте интеграцию прямо сейчас на asibiont.com. Подключите свой первый датчик за 5 минут.

← Все статьи

Комментарии