Введение
Современные системы мониторинга и предиктивной аналитики всё чаще строятся на принципах Edge AI: данные обрабатываются непосредственно на устройстве, а не в облаке. Это позволяет сократить задержки, снизить требования к пропускной способности канала и повысить автономность. Одним из ключевых компонентов таких решений является sensor fusion — объединение показаний нескольких датчиков (акселерометра, гироскопа, магнитометра) для получения более точной картины состояния объекта. Когда к этому добавляется on-device ML (выполнение нейросетевых моделей прямо на микроконтроллере), открываются возможности для реального времени: прогнозирование вибраций, обнаружение аномалий, предсказание отказов оборудования.
Однако разработка интеграции между таким устройством и AI-агентом обычно требует написания десятков строк кода, настройки брокеров сообщений и развёртывания промежуточных сервисов. ASI Biont решает эту задачу кардинально иначе: вы просто описываете в чате, к какому устройству подключиться, передаёте параметры (IP, порт, топик MQTT), и AI-агент сам генерирует и выполняет Python-код интеграции. Никаких панелей управления, никаких кнопок «добавить устройство» — только диалог.
В этой статье мы разберём, как подключить систему сенсорного слияния на базе популярного датчика MPU9250 (акселерометр + гироскоп + магнитометр) к ASI Biont через MQTT, выполнять инференс нейросети на границе сети и получать предиктивную аналитику без участия облака.
1. Что такое Sensor Fusion + AI Inference и зачем его подключать к AI-агенту?
Sensor fusion — это процесс объединения данных от нескольких датчиков для получения более точного и полного описания окружающей среды. Например, акселерометр измеряет линейное ускорение, гироскоп — угловую скорость, а магнитометр — направление магнитного поля. Комбинируя их показания с помощью фильтра Калмана или нейросети, можно определить ориентацию объекта в пространстве с высокой точностью.
AI inference на устройстве означает, что предобученная модель (например, свёрточная нейросеть или LSTM) запускается прямо на микроконтроллере (ESP32, STM32) или одноплатнике (Raspberry Pi). Это даёт три ключевых преимущества:
- Минимальная задержка — данные обрабатываются за миллисекунды, без отправки в облако.
- Автономность — устройство работает даже при потере связи с интернетом.
- Приватность — чувствительные данные не покидают локальную сеть.
Подключение такой системы к AI-агенту ASI Biont позволяет:
- Автоматически настраивать сбор данных и запуск модели.
- Получать результаты инференса в чат (например, «Обнаружена аномальная вибрация на вентиляторе №3»).
- Управлять порогами срабатывания и параметрами модели через диалог.
- Интегрировать предупреждения в Telegram или Slack.
2. Какой способ подключения используется и почему?
Для интеграции MPU9250 + ESP32 с ASI Biont мы используем MQTT — лёгкий протокол обмена сообщениями, идеально подходящий для IoT-устройств с ограниченными ресурсами. ESP32 будет публиковать данные с датчика в топик sensor/mpu9250, а AI-агент подпишется на этот топик, выполнит инференс (запустит предобученную модель) и, при необходимости, опубликует команду обратно в топик commands/actuator.
Почему MQTT, а не HTTP или Modbus?
- MQTT требует минимального трафика (заголовок всего 2 байта), что критично для батарейных устройств.
- Поддержка QoS (гарантии доставки) — данные не потеряются при временных сбоях связи.
- Асинхронная модель publish/subscribe: ESP32 может спать большую часть времени и просыпаться только для отправки данных.
ASI Biont подключается к MQTT-брокеру (например, Mosquitto) через библиотеку paho-mqtt, которая доступна в sandbox-окружении execute_python. AI-агент пишет скрипт, который подписывается на топик, получает данные, запускает модель (ONNX Runtime) и публикует результаты.
3. Конкретный сценарий: прогнозирование вибраций на промышленном вентиляторе
Постановка задачи
На заводе установлен вентилятор системы охлаждения. На его корпусе закреплён модуль ESP32 с датчиком MPU9250. Необходимо в реальном времени анализировать вибрации и предсказывать момент, когда подшипник выйдет из строя (предиктивная аналитика). Если аномалия обнаружена — отправить предупреждение в Telegram.
Что делает пользователь
Пользователь открывает чат с ASI Biont и пишет:
«Подключись к MQTT-брокеру по адресу 192.168.1.100:1883, подпишись на топик sensor/mpu9250. Данные приходят в JSON: {"ax":1.2, "ay":0.5, "az":9.8, "gx":0.01, "gy":0.02, "gz":0.03, "mx":0.1, "my":0.2, "mz":0.3}. Запусти модель anomaly_detection.onnx (она уже загружена на устройство) и при обнаружении аномалии опубликуй сообщение в топик alerts с текстом „Аномалия вибрации на вентиляторе №3“. Также отправь уведомление в Telegram через бота.»
AI-агент анализирует запрос, генерирует Python-скрипт и выполняет его в sandbox. Пользователь видит лог подключения и начинает получать предупреждения.
Пример кода, который генерирует ASI Biont
import json
import time
import paho.mqtt.client as mqtt
import onnxruntime as ort
import numpy as np
import requests
# Настройки MQTT
BROKER = "192.168.1.100"
PORT = 1883
TOPIC_DATA = "sensor/mpu9250"
TOPIC_ALERT = "alerts"
# Загрузка ONNX-модели
session = ort.InferenceSession("anomaly_detection.onnx")
input_name = session.get_inputs()[0].name
# Telegram bot token (получен от пользователя)
TELEGRAM_TOKEN = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID = "987654321"
def on_message(client, userdata, msg):
try:
data = json.loads(msg.payload.decode())
# Формируем входной вектор: 9 признаков
features = np.array([[data["ax"], data["ay"], data["az"],
data["gx"], data["gy"], data["gz"],
data["mx"], data["my"], data["mz"]]], dtype=np.float32)
# Инференс
output = session.run(None, {input_name: features})
anomaly_score = output[0][0][0]
if anomaly_score > 0.8: # порог аномалии
alert_msg = "Аномалия вибрации на вентиляторе №3"
# Публикуем в MQTT
client.publish(TOPIC_ALERT, alert_msg)
# Отправляем в Telegram
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": CHAT_ID, "text": alert_msg})
except Exception as e:
print(f"Ошибка: {e}")
client = mqtt.Client()
client.on_message = on_message
client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC_DATA)
client.loop_start()
# Держим соединение 10 минут (sandbox таймаут 30 сек — в реальности скрипт работает дольше)
time.sleep(600)
client.loop_stop()
Важно: В sandbox ASI Biont действует таймаут 30 секунд, поэтому для длительной работы скрипт должен быть развёрнут на отдельном сервере или Raspberry Pi. Однако для проверки интеграции и разового сбора данных 30 секунд достаточно.
Схема подключения
[MPU9250] -- I2C --> [ESP32] -- WiFi --> [MQTT Broker (Mosquitto)] <-- MQTT --> [ASI Biont (cloud)]
|
+--> [Telegram Bot]
4. Как ASI Biont подключается к устройству: пошагово
- Пользователь описывает задачу в чате — указывает тип устройства (ESP32), протокол (MQTT), адрес брокера, топики, параметры модели.
- AI-агент генерирует Python-скрипт с использованием библиотек
paho-mqtt,onnxruntime,requests. - Скрипт выполняется в sandbox-окружении
execute_pythonна сервере ASI Biont (Railway). - AI подключается к MQTT-брокеру, подписывается на топик, получает данные, выполняет инференс, публикует результаты и отправляет уведомления.
- Пользователь видит логи и результаты в чате.
Важно: Для работы с COM-портами или локальными ресурсами (если ESP32 подключён через USB) используется Hardware Bridge — отдельное приложение bridge.py, которое пользователь запускает на своём ПК. Bridge подключается к ASI Biont через HTTP long polling, и AI отправляет команды через industrial_command(protocol='serial://', ...). В нашем сценарии ESP32 работает по WiFi, поэтому bridge не требуется.
5. Почему это выгодно?
- Не нужно писать код вручную — AI-агент генерирует рабочий скрипт за секунды.
- Единый интерфейс — все устройства подключаются через диалог, без панелей управления.
- Гибкость — можно менять модель, пороги срабатывания, каналы уведомлений просто описав новую задачу в чате.
- Автономность — инференс выполняется на устройстве (ESP32) или на сервере ASI Biont, не требуя постоянного соединения с облаком.
Заключение
Интеграция систем sensor fusion и AI inference с AI-агентом ASI Biont открывает путь к созданию по-настоящему умных Edge-решений без сложной инфраструктуры. Вы просто описываете задачу — и AI сам пишет код, подключается к устройству и начинает анализировать данные. Промышленная предиктивная аналитика, мониторинг вибраций, обнаружение аномалий — всё это становится доступным за считанные минуты.
Попробуйте сами: откройте чат с ASI Biont на asibiont.com и опишите своё устройство — AI-агент подключится к нему и начнёт работу.
Комментарии