Введение
Промышленная автоматизация и интернет вещей (IoT) стремительно меняют подход к мониторингу и управлению оборудованием. Микроконтроллеры (MCU) с UART-интерфейсом — Arduino, ESP32, STM32 — остаются основой для сбора данных с датчиков температуры, влажности, давления, уровня жидкости и других параметров. Однако ручное программирование каждого сценария (логирование, отправка уведомлений, управление исполнительными механизмами) требует времени и знаний языков C/C++/MicroPython. AI-агент ASI Biont решает эту проблему: достаточно описать задачу на естественном языке, и AI сам напишет код интеграции, подключится к устройству через Hardware Bridge и начнёт обрабатывать данные. В этой статье мы разберём конкретный сценарий: подключение микроконтроллера с датчиком DHT22 через UART (COM-порт) к ASI Biont, автоматический анализ показаний и отправка оповещений в Telegram при выходе за пределы нормы.
1. Что такое UART (any MCU) и зачем его подключать к AI-агенту?
UART (Universal Asynchronous Receiver/Transmitter) — это последовательный интерфейс, который есть практически в каждом микроконтроллере. Через UART устройство может передавать данные на компьютер или другое оборудование. В контексте ASI Biont UART-подключение позволяет:
- Собирать данные с датчиков (температура, влажность, давление, освещённость) в реальном времени.
- Управлять исполнительными устройствами (реле, сервоприводы, светодиоды) по командам из чата.
- Автоматизировать реакции: превышение порога → уведомление в Telegram, логирование в базу данных, запуск аварийного отключения.
- Не писать сложный код вручную — AI делает всё за секунды.
2. Какой способ подключения используется и почему?
Для подключения микроконтроллера через UART используется Hardware Bridge — специальное приложение bridge.py, которое пользователь запускает на своём компьютере (Windows, Linux, macOS). Bridge подключается к облаку ASI Biont через единственный канал связи — WebSocket. AI отправляет команды через industrial_command tool, bridge получает их, записывает данные в COM-порт через библиотеку pyserial и сразу читает ответ. Это единственный безопасный способ работать с локальными COM-портами, так как облачный sandbox не имеет доступа к железу пользователя.
Почему именно Hardware Bridge?
- Безопасность: код AI выполняется в изолированном sandbox в облаке, bridge работает локально и не открывает HTTP-порты наружу.
- Универсальность: bridge поддерживает любые UART-устройства (Arduino, ESP32, STM32) и позволяет задавать произвольный baud rate (9600, 115200 и т.д.).
- Надёжность: на Windows bridge использует CancelIoEx + PurgeComm + синхронный WriteFile для гарантированной записи при проблемах с overlapped I/O.
3. Практический сценарий: ESP32 + DHT22 → ASI Biont → Telegram-уведомления
Проблема
На складе хранятся чувствительные к температуре товары. Нужно контролировать температуру и влажность, и при выходе за пределы (например, температура > 30°C или влажность < 20%) мгновенно получать оповещение в Telegram. Обычное решение требует написания прошивки на микроконтроллере, настройки MQTT-брокера, написания скрипта для логирования и интеграции с Telegram API. Всё это занимает часы или дни.
Решение с ASI Biont
- Прошивка микроконтроллера. На ESP32 загружается простая прошивка, которая каждые 10 секунд читает данные с DHT22 и выводит их в UART в формате:
TEMP:25.3,HUM:60.1
Код прошивки (Arduino IDE):
```cpp
#include
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (!isnan(t) && !isnan(h)) {
Serial.print("TEMP:");
Serial.print(t);
Serial.print(",HUM:");
Serial.println(h);
}
delay(10000);
}
2. **Запуск Hardware Bridge.** Пользователь скачивает `bridge.py` из дашборда ASI Biont (Devices → Create API Key → Скачать bridge) и запускает:bash
pip install pyserial requests websockets
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200 --rate=10
``
Параметры:
---token— API-ключ, полученный в дашборде.
---ports— COM-порт, к которому подключён ESP32 (например, COM3 на Windows, /dev/ttyUSB0 на Linux).
---baud— скорость обмена (115200).
---rate` — ограничение частоты запросов (10 команд в секунду).
3. Описание задачи в чате ASI Biont. Пользователь пишет:
«Подключись к ESP32 через COM3 на 115200 baud. Устройство каждые 10 секунд выводит данные в формате TEMP:25.3,HUM:60.1. Парси эти строки, и если температура превышает 30°C или влажность опускается ниже 20%, отправь мне уведомление в Telegram на @my_channel. Также логируй все показания в PostgreSQL базу данных на localhost:5432, таблица sensor_data.»
4. AI пишет и выполняет код. ASI Biont генерирует Python-скрипт, который:
- Используетindustrial_command(protocol='serial', command='serial_write_and_read', data='')для получения последней строки из порта.
- Парсит строку регулярным выражением.
- Сравнивает с порогами.
- При превышении отправляет сообщение через Telegram Bot API (requests.postкapi.telegram.org).
- Логирует все данные в PostgreSQL черезpsycopg2.
Пример фрагмента кода (выполняется в sandbox):
```python
import re
import requests
import psycopg2
from datetime import datetime
# Получение данных с устройства через bridge
# (команда отправляется через industrial_command, но для примера показываем логику обработки)
raw_data = "TEMP:25.3,HUM:60.1" # предположим, что получили от bridge
match = re.match(r"TEMP:([\d.]+),HUM:([\d.]+)", raw_data)
if match:
temp = float(match.group(1))
hum = float(match.group(2))
if temp > 30 or hum < 20:
# Отправка в Telegram
bot_token = "YOUR_BOT_TOKEN"
chat_id = "@my_channel"
msg = f"⚠️ Превышение! Температура: {temp}°C, Влажность: {hum}%"
requests.post(f"https://api.telegram.org/bot{bot_token}/sendMessage", json={"chat_id": chat_id, "text": msg})
# Логирование в PostgreSQL
conn = psycopg2.connect(host="localhost", dbname="sensors", user="user", password="pass")
cur = conn.cursor()
cur.execute("INSERT INTO sensor_data (timestamp, temp, hum) VALUES (%s, %s, %s)", (datetime.now(), temp, hum))
conn.commit()
cur.close()
conn.close()
``
**Важно:** Код выполняется в sandbox с таймаутом 30 секунд. Для непрерывного мониторинга AI используетindustrial_command` с периодическими вызовами, а не бесконечный цикл.
4. Альтернативные сценарии для UART-устройств
| Устройство | Способ подключения | Сценарий |
|---|---|---|
| Arduino + датчик влажности почвы | Hardware Bridge (COM-порт) | Полив растений: если влажность < 30%, AI включает реле через команду RELAY_ON\n |
| STM32 + энкодер | Hardware Bridge (COM-порт) | Мониторинг оборотов двигателя, логирование в InfluxDB |
| GPS-трекер (NMEA) | Hardware Bridge (COM-порт) | Парсинг NMEA-строк, построение маршрута на карте через Google Maps API |
| ESP32 + MQTT | MQTT (paho-mqtt) | Сбор данных с нескольких датчиков, управление умным домом |
| Raspberry Pi + GPIO | SSH (paramiko) | Управление светодиодами, считывание кнопок, запуск скриптов |
5. Почему это выгодно?
- Скорость. Интеграция занимает минуты вместо часов. Пользователь не пишет код — AI делает это за него.
- Гибкость. Можно подключить любое устройство с любым протоколом (UART, MQTT, Modbus, SSH, HTTP) без ожидания обновлений платформы.
- Единый интерфейс. Все устройства управляются через один чат. Не нужно переключаться между разными панелями.
- Автоматизация. AI может не только собирать данные, но и принимать решения: отправлять уведомления, записывать в БД, вызывать внешние API.
Заключение
Интеграция UART-микроконтроллеров с AI-агентом ASI Biont через Hardware Bridge — это простой и надёжный способ превратить любое устройство в часть интеллектуальной системы автоматизации. Вам не нужно быть экспертом в Python или протоколах — достаточно описать задачу на естественном языке. ASI Biont сам подберёт способ подключения, напишет код и начнёт обработку данных. Попробуйте прямо сейчас: перейдите на asibiont.com, создайте API-ключ, скачайте bridge.py и подключите ваш первый микроконтроллер. Умная автоматизация доступна каждому.
Комментарии