Введение
Arduino Nano BLE Sense — это компактная плата на базе nRF52840, оснащённая набором сенсоров (акселерометр, гироскоп, микрофон, датчик температуры, влажности, давления, цвета и жестов) и Bluetooth Low Energy (BLE). Её главная фишка — возможность запуска моделей машинного обучения прямо на микроконтроллере (TinyML) с использованием TensorFlow Lite Micro. Это открывает двери для on-device ML: анализ вибраций, распознавание голосовых команд, детекция жестов — всё без отправки данных в облако.
Но что, если мы хотим не только запустить модель на плате, но и связать её с внешним миром: отправлять уведомления при аномалиях, сохранять логи в базу данных, управлять умным домом? Тут на помощь приходит AI-агент ASI Biont. Вместо того чтобы писать сложный бэкенд для интеграции, вы просто описываете задачу в чате, и AI сам пишет код подключения, используя execute_python или Hardware Bridge. В этой статье мы разберём, как загрузить TinyML-модель на Arduino Nano BLE Sense для распознавания жестов, а затем подключить плату к ASI Biont через BLE и MQTT для автоматизации сценариев.
Зачем подключать Arduino Nano BLE Sense к AI-агенту?
Arduino Nano BLE Sense — это мощный инструмент для edge computing. Однако его возможности ограничены локальной обработкой. Связка с AI-агентом даёт:
- Удалённый мониторинг: AI может читать данные сенсоров через BLE и анализировать их в реальном времени.
- Автоматизация: при обнаружении жеста (например, взмах руки) AI может отправить команду в Telegram, включить свет через MQTT или записать событие в базу данных.
- Гибкость: не нужно писать серверную часть — AI генерирует код за секунды.
- Расширение сценариев: on-device ML фильтрует шум, а облачный AI принимает решения на основе глобальных данных.
Как ASI Biont подключается к Arduino Nano BLE Sense?
Arduino Nano BLE Sense поддерживает несколько способов подключения:
1. BLE (Bluetooth Low Energy): через UART-сервис или пользовательские характеристики. Это беспроводной вариант, но требует bridge-устройства (например, Raspberry Pi или ПК с Bluetooth-адаптером).
2. COM-порт (USB): через Hardware Bridge. Пользователь запускает bridge.py на ПК, который соединяется с ASI Biont через WebSocket. AI отправляет команды через industrial_command с протоколом serial://.
3. MQTT: если на плате установлен Wi-Fi-модуль (например, ESP32), но в нашем случае используется BLE, поэтому MQTT напрямую не поддерживается. Однако можно использовать промежуточное устройство (Raspberry Pi) как MQTT-брокер.
В нашем сценарии мы используем COM-порт через Hardware Bridge — это самый надёжный способ для отладки и прототипирования. Плата подключается к ПК по USB, bridge.py открывает COM-порт, и AI получает прямой доступ к последовательному интерфейсу.
Сценарий: распознавание жестов и управление умным домом
Проблема
У вас есть Arduino Nano BLE Sense с акселерометром (LSM9DS1). Вы обучили TinyML-модель (например, с помощью TensorFlow Lite Micro) распознавать три жеста: «хлопок», «взмах влево», «взмах вправо». Модель запускается на плате и выводит результат через Serial (UART) в виде строки GESTURE:LEFT или GESTURE:CLAP. Вы хотите, чтобы при распознавании жеста:
- «хлопок» — включался свет в гостиной (через умную розетку с HTTP API),
- «взмах влево» — отправлялось уведомление в Telegram,
- «взмах вправо» — запускался скрипт на Raspberry Pi (например, воспроизведение музыки).
Решение
- Загрузите модель на плату и настройте вывод результата в Serial через
Serial.println("GESTURE:LEFT"). - Подключите плату к ПК через USB и определите номер COM-порта (например, COM3 на Windows, /dev/ttyACM0 на Linux).
- Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
- Запустите bridge.py на ПК с параметрами:
bash pip install pyserial requests websockets python bridge.py --token=YOUR_API_TOKEN --ports=COM3 --baud 115200
Bridge подключится к ASI Biont через WebSocket и откроет COM-порт. - В чате с ASI Biont напишите: «Подключись к Arduino на COM3 (115200 baud). Читай строки каждые 100 мс. Если строка содержит "GESTURE:LEFT", отправь "WARNING" в Telegram (токен бота: ...). Если "GESTURE:CLAP", включи свет через HTTP POST на 192.168.1.100/api/toggle. Если "GESTURE:RIGHT", выполни скрипт на Raspberry Pi по SSH (IP: 192.168.1.50, user: pi, pass: ...) командой "python3 /home/pi/play_music.py"». AI выполнит задачу, сгенерировав и запустив код.
Пример кода, который генерирует AI
AI пишет Python-скрипт для execute_python, который подключается к bridge через industrial_command, читает данные и выполняет действия. Ниже — упрощённая версия того, что делает AI (реальный код генерируется динамически):
import requests
import time
import json
# Параметры
BAUD = 115200
PORT = "COM3"
TELEGRAM_BOT_TOKEN = "YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID = "YOUR_CHAT_ID"
LIGHT_URL = "http://192.168.1.100/api/toggle"
SSH_HOST = "192.168.1.50"
SSH_USER = "pi"
SSH_PASS = "password"
# Функция отправки в Telegram
def send_telegram(text):
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
data = {"chat_id": TELEGRAM_CHAT_ID, "text": text}
requests.post(url, json=data)
# Функция включения света
def toggle_light():
requests.post(LIGHT_URL)
# Функция выполнения команды по SSH
def run_ssh(command):
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(SSH_HOST, username=SSH_USER, password=SSH_PASS)
stdin, stdout, stderr = client.exec_command(command)
client.close()
# Чтение через bridge (симулировано — реально используется industrial_command)
# В execute_python мы не имеем прямого доступа к COM, поэтому используем tool call
# Ниже — пример, как AI вызывает инструмент
Обратите внимание: в реальности AI не пишет бесконечный цикл (так как sandbox имеет таймаут 30 секунд). Вместо этого AI использует industrial_command с протоколом serial:// для атомарного чтения и записи. Пример вызова из чата:
industrial_command(
protocol='serial://',
command='serial_write_and_read',
params={
'port': 'COM3',
'baud': 115200,
'data': '47245353545552453a4c4546540a' # hex для "GESTURE:LEFT\n"
}
)
Но чаще AI использует execute_python с библиотекой pyserial через Hardware Bridge — он подключается к bridge, который выполняется на ПК пользователя, и bridge сам читает данные. AI пишет скрипт, который отправляет команды в bridge через WebSocket (это делает sandbox-окружение).
Пошаговый план для пользователя
- Подготовьте плату: загрузите скетч с TinyML-моделью, который выводит результат в Serial.
- Установите bridge: скачайте bridge.py из дашборда ASI Biont, установите зависимости (
pip install pyserial requests websockets). - Запустите bridge:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200. - Опишите задачу в чате: например, «Читай данные с Arduino на COM3, при появлении "GESTURE:CLAP" включи свет через HTTP POST на http://192.168.1.100/on». AI сгенерирует и выполнит код.
- Наслаждайтесь автоматизацией: AI будет мониторить порт и выполнять действия.
Результаты и выводы
Интеграция Arduino Nano BLE Sense с ASI Biont через Hardware Bridge позволяет объединить on-device ML (TinyML) с облачным ИИ без написания бэкенда. В нашем примере:
- Скорость: настройка заняла 5 минут (скачать bridge, запустить, описать задачу).
- Гибкость: AI может подключаться к любым устройствам через execute_python — от умных розеток до PLC.
- Надёжность: bridge использует CancelIoEx и PurgeComm для стабильной работы на Windows.
Этот подход подходит для:
- Промышленного мониторинга (анализ вибраций на станках).
- Умного дома (распознавание жестов для управления светом).
- Медицинских устройств (детекция падений с акселерометра).
Почему это выгодно?
Вам не нужно писать код для интеграции — AI делает это за секунды. Просто опишите устройство и задачу в чате. ASI Biont поддерживает более 10 протоколов (COM, MQTT, Modbus, HTTP, SSH, OPC-UA и другие) и может подключаться к любому устройству через execute_python. Это экономит часы разработки и позволяет сосредоточиться на бизнес-логике.
Заключение
Arduino Nano BLE Sense — отличная платформа для TinyML, но её потенциал раскрывается в связке с AI-агентом. ASI Biont делает эту связку мгновенной: вы просто говорите, что нужно, и AI подключается, читает данные и автоматизирует сценарии. Попробуйте сами на asibiont.com — создайте API-ключ, скачайте bridge и опишите свою задачу в чате. Увидите, как легко edge AI встречается с облачным ИИ.
Комментарии