Введение
Модули BLE, такие как HM-10 и HC-05, давно стали стандартом для беспроводной связи в проектах Интернета вещей. Они используются в умных домах, носимой электронике, промышленных датчиках и робототехнике. Однако управление этими устройствами часто требует написания отдельного кода, настройки последовательного порта и ручного парсинга данных. ASI Biont — AI-агент, который интегрируется с BLE-модулями через Hardware Bridge, беря на себя всю рутину подключения и анализа. В этой статье разберем, как AI подключается к HM-10 и HC-05, какие задачи решает и почему это выгоднее традиционного подхода.
Как ASI Biont подключается к BLE-устройствам
ASI Biont использует Hardware Bridge — приложение bridge.py, которое пользователь запускает на своем компьютере. Bridge подключается к облачному AI через WebSocket и обеспечивает доступ к локальным COM-портам, к которым подключены BLE-модули. Для HM-10 и HC-05 используется протокол serial:// : AI отправляет команду serial_write_and_read(data=hex_string), bridge пишет данные в порт и сразу читает ответ. Пользователь указывает порт (например, COM3) и скорость (9600 или 115200 бод).
Почему именно COM-порт?
BLE-модули HM-10 и HC-05 обычно подключаются к микроконтроллеру (Arduino, ESP32) или ПК через UART-to-USB адаптер. В системе они отображаются как виртуальный COM-порт. Hardware Bridge — единственный способ для облачного AI взаимодействовать с локальным последовательным портом, так как execute_python выполняется в облаке и не имеет доступа к аппаратному обеспечению пользователя.
Сценарий использования: сбор данных с датчика температуры через HM-10
Рассмотрим реальный кейс: у нас есть Arduino с модулем HM-10 и датчиком DHT22. Arduino каждые 5 секунд отправляет температуру и влажность по BLE на ПК. Задача: подключить AI-агента, чтобы он анализировал данные и отправлял уведомления в Telegram при выходе за пределы нормы.
Шаг 1. Настройка Arduino
Прошиваем Arduino кодом, который считывает DHT22 и отправляет строку в формате TEMP:23.5,HUM:60.2\n через SoftwareSerial на HM-10. Пример:
#include <SoftwareSerial.h>
#include <DHT.h>
SoftwareSerial ble(10, 11); // RX, TX
DHT dht(2, DHT22);
void setup() {
Serial.begin(9600);
ble.begin(9600);
dht.begin();
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (!isnan(t) && !isnan(h)) {
ble.print("TEMP:");
ble.print(t);
ble.print(",HUM:");
ble.println(h);
}
delay(5000);
}
Шаг 2. Запуск Hardware Bridge
Пользователь скачивает bridge.py из дашборда ASI Biont (Devices → Create API Key) и запускает:
pip install pyserial requests websockets
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud=9600 --rate=10
Bridge подключается к ASI Biont через WebSocket и начинает слушать COM3.
Шаг 3. Диалог с AI
Пользователь пишет в чате: «Подключись к HM-10 на COM3, скорость 9600. Каждые 30 секунд читай данные с датчика, парси температуру и влажность. Если температура выше 30°C — отправь предупреждение в Telegram». AI генерирует и выполняет код через industrial_command:
# AI генерирует этот код и выполняет его в sandbox
import json
from datetime import datetime
import requests
# Предыдущий вызов serial_write_and_read получил данные
# Данные приходят в виде строки "TEMP:23.5,HUM:60.2"
def parse_sensor_data(raw: str) -> dict:
parts = raw.strip().split(',')
data = {}
for part in parts:
key, value = part.split(':')
data[key] = float(value)
return data
def send_telegram_alert(message: str, bot_token: str, chat_id: str):
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
payload = {"chat_id": chat_id, "text": message}
requests.post(url, json=payload, timeout=10)
# Получаем данные от bridge (предположим, что они уже сохранены в переменной)
raw_data = "TEMP:23.5,HUM:60.2"
parsed = parse_sensor_data(raw_data)
print(f"Parsed data: {parsed}")
# Проверяем температуру
if parsed.get('TEMP', 0) > 30:
send_telegram_alert(
message=f"⚠️ Температура превысила 30°C: {parsed['TEMP']}°C",
bot_token="YOUR_BOT_TOKEN",
chat_id="YOUR_CHAT_ID"
)
AI также может настроить периодический опрос: он использует serial_write_and_read в цикле (но без бесконечного цикла — только несколько итераций) или сохраняет данные в базу для дальнейшего анализа.
Шаг 4. Результат
- AI автоматически парсит данные, не требуя ручного написания парсера.
- При превышении порога отправляется Telegram-уведомление.
- Пользователь может попросить AI построить график температуры за последний час или предсказать тренд.
Другие сценарии
| Устройство | Задача | Команда AI |
|---|---|---|
| HC-05 + Arduino | Управление сервоприводом по углу | serial_write_and_read(data="SERVO:90\n") |
| HM-10 + ESP32 | Включение реле при движении | AI пишет код, который читает данные с датчика движения через BLE и публикует команду в MQTT |
| HC-05 + GPS-трекер | Парсинг NMEA-строк и отображение маршрута | AI использует библиотеку pynmea2 для парсинга |
Преимущества интеграции с AI-агентом
- Мгновенная интеграция: не нужно писать код вручную. Пользователь описывает задачу естественным языком, AI генерирует и выполняет код.
- Универсальность: ASI Biont подключается к любому устройству через execute_python — AI сам пишет код интеграции под каждое устройство. Не нужно ждать, пока разработчики добавят поддержку.
- Автоматизация анализа: AI может не только читать данные, но и анализировать их, выявлять аномалии, строить прогнозы.
- Простота: все настройки — через диалог в чате, никаких панелей управления и кнопок «добавить устройство».
Заключение
BLE-модули HM-10 и HC-05 открывают широкие возможности для IoT-проектов, а интеграция с ASI Biont превращает их в полноценные умные устройства, управляемые AI. Попробуйте сами: опишите свою задачу в чате на asibiont.com, и AI-агент подключится к вашему BLE-устройству за секунды.
Комментарии