Edge AI на Arduino Nano BLE Sense: как подключить TinyML к AI-агенту ASI Biont и управлять умным мониторингом через COM-порт
Современные микроконтроллеры научились не только считывать показания с датчиков, но и выполнять прямо на борту нейросетевые модели — это направление называется TinyML. Arduino Nano BLE Sense — одна из самых популярных плат для Edge AI: на ней установлены акселерометр, гироскоп, микрофон, датчик цвета, температуры, влажности и давления. Она способна запускать модели TensorFlow Lite Micro и принимать решения за миллисекунды, не отправляя данные в облако. Но как управлять таким устройством, менять логику его работы и интегрировать с корпоративными системами без перепрошивки каждый раз? Ответ — AI-агент ASI Biont, который подключается к Arduino через COM-порт с помощью Hardware Bridge и позволяет в real-time читать данные, менять параметры и связывать инференс с внешними сервисами (Telegram, базы данных, облачные API).
В этой статье мы разберём реальный сценарий: умный мониторинг вибрации оборудования с помощью TinyML на Arduino Nano BLE Sense, управляемый через AI-агента. Вы узнаете, как AI-агент за секунды пишет интеграционный код, как работает связка bridge.py + COM-порт и почему такой подход снижает задержки, энергопотребление и затраты на облачную инфраструктуру.
Что такое Arduino Nano BLE Sense и почему он идеален для Edge AI
Arduino Nano BLE Sense построен на чипе nRF52840 от Nordic Semiconductor с 64 МГц ARM Cortex-M4F, 1 МБ flash и 256 КБ RAM. Этого достаточно, чтобы запускать небольшие нейросети (до 200–300 КБ модели) в реальном времени. Плата оснащена встроенными датчиками:
| Датчик | Модель | Назначение |
|---|---|---|
| Акселерометр + гироскоп | LSM9DS1 | Измерение ускорения, угловой скорости, магнитного поля |
| Микрофон | MP34DT05 | Анализ звука, распознавание голосовых команд |
| Датчик цвета | APDS-9960 | Цвет, жест, приближение |
| Температура / влажность | HTS221 | Окружающая среда |
| Давление | LPS22HB | Атмосферное давление |
Благодаря поддержке TensorFlow Lite Micro (TFLM) на этой плате можно развернуть модели, обученные на компьютере, и выполнять инференс без интернета. Например: классификация жестов по акселерометру (как в проекте Magic Wand), детекция звуковых событий (хлопок, речь), мониторинг вибрации для предиктивного обслуживания.
Edge AI (граничные вычисления) означает, что вся обработка происходит на устройстве, а в облако передаются только события или агрегированные данные. Это радикально снижает задержки (единицы миллисекунд вместо сотен), уменьшает объём передаваемых данных и энергопотребление.
Зачем подключать Arduino Nano BLE Sense к AI-агенту ASI Biont?
Сам по себе Arduino — отличный вычислитель, но он «железный»: его прошивка статична. Чтобы изменить порог срабатывания, добавить новый тип события или интегрировать с Telegram, нужно:
1. Отредактировать код в Arduino IDE
2. Подключить плату по USB
3. Загрузить новую прошивку
Это неудобно при быстрых итерациях или при работе с десятками устройств. AI-агент ASI Biont решает эту проблему: он подключается к Arduino через COM-порт (используя Hardware Bridge на ПК пользователя) и может:
- Читать данные с датчиков в реальном времени
- Задавать параметры (пороги, тайминги, режимы работы)
- Получать результаты TinyML-инференса (например, метку класса и уверенность)
- Отправлять команды на управление светодиодами, сервоприводами, реле
- Агрегировать данные от нескольких Arduino и передавать их в облачные сервисы
- Отправлять уведомления в Telegram, Slack, email при аномалиях
- Менять логику обработки без перепрошивки — всё через диалог в чате
При этом AI-агент сам пишет код интеграции (на Python с pyserial или используя промышленные команды), вам не нужно разбираться в программировании. Достаточно описать задачу на естественном языке.
Как ASI Biont подключается к Arduino через COM-порт: Hardware Bridge
ASI Biont работает в облаке, поэтому для доступа к локальным COM-портам используется промежуточное звено — Hardware Bridge (bridge.py). Пользователь скачивает этот скрипт в дашборде ASI Biont (Devices → Create API Key → Скачать bridge) и запускает на своём компьютере. Bridge подключается к облаку через WebSocket (единственный канал связи) и слушает команды от AI-агента.
Когда AI в чате отправляет команду industrial_command(protocol='serial://COM3', command='serial_write_and_read', data='...'), bridge получает её, записывает hex-данные в указанный COM-порт (например, COM3) с заданным baud rate (по умолчанию 115200), и сразу читает ответ от Arduino. Ответ возвращается AI-агенту, который может его проанализировать и принять решение.
Важно: bridge не имеет HTTP API и не открывает локальный сервер — все взаимодействия только через WebSocket к ASI Biont. На Windows bridge автоматически обрабатывает ошибки overlapped I/O с помощью CancelIoEx и PurgeComm.
Сценарий: умный мониторинг вибрации с TinyML
Рассмотрим конкретную задачу: на заводе установлен насос. Насос — критически важное оборудование, его внезапная остановка может привести к простою. С помощью Arduino Nano BLE Sense и TinyML мы хотим детектировать аномальную вибрацию (например, дисбаланс подшипников) и немедленно оповещать оператора.
Шаг 1. Прошивка Arduino (TinyML-модель)
На плате запускается предобученная модель классификации вибрации. Модель обучена на спектрограммах акселерометра (частотный анализ) и различает два класса: «норма» и «аномалия». Код на Arduino (упрощённо) выглядит так:
#include <Arduino_LSM9DS1.h>
#include <TensorFlowLite.h>
#include "model.h" // загруженная .tflite модель
// ... инициализация TFLite
void loop() {
float x, y, z;
if (IMU.accelerationAvailable()) {
IMU.readAcceleration(x, y, z);
// формируем входной тензор из 128 отсчётов
// запускаем инференс
if (interpreter->Invoke() == kTfLiteOk) {
float* output = interpreter->typed_output_tensor<float>(0);
if (output[1] > 0.5) { // аномалия
Serial.println("EVENT:ANOMALY:0.92"); // уверенность 92%
}
}
}
delay(10);
}
Arduino постоянно шлёт в Serial строку EVENT:ANOMALY:0.92 при обнаружении аномалии. Baude rate — 115200.
Шаг 2. Подключение через Hardware Bridge
Пользователь запускает bridge.py с параметрами:
python bridge.py --token=YOUR_TOKEN --ports=COM3 --baud 115200 --rate=10
Теперь bridge готов принимать команды от AI-агента.
Шаг 3. Настройка AI-агента через чат
Пользователь пишет в чат ASI Biont (на естественном языке):
«У меня Arduino Nano BLE Sense на COM3, 115200. Когда он присылает EVENT:ANOMALY с уверенностью больше 0.8, отправь мне сообщение в Telegram с текстом
Комментарии