Введение
ESP32-S3 — это не просто микроконтроллер с Wi-Fi и Bluetooth. Благодаря аппаратному ускорителю нейросетей ESP-DL и поддержке TensorFlow Lite Micro, он способен выполнять инференс моделей машинного обучения прямо на борту, без отправки данных в облако. Это открывает дверь в мир Edge AI: предиктивная диагностика оборудования, детекция аномалий вибрации, распознавание голосовых команд — всё это работает с задержкой менее 10 мс и экономит до 90% трафика по сравнению с облачными решениями.
Проблема в том, что настройка такой системы требует ручного написания кода для сбора данных, загрузки модели, обработки результатов и интеграции с внешними сервисами. Здесь на помощь приходит AI-агент ASI Biont. Он подключается к ESP32-S3 по MQTT или через Hardware Bridge (COM-порт) и берёт на себя всю логику: от парсинга показаний датчика до отправки уведомлений в Telegram при обнаружении аномалии. В этой статье мы разберём, как ASI Biont интегрируется с ESP32-S3 для задачи предиктивной диагностики — детекции аномалий вибрации на TFLite Micro.
Как ASI Biont подключается к ESP32-S3
ESP32-S3 — устройство, которое может работать как MQTT-клиент, так и как COM-порт устройство (через UART-USB). ASI Biont поддерживает оба способа:
- MQTT (через paho-mqtt в execute_python) — ESP32 публикует данные инференса в топик, AI-агент подписывается и анализирует их.
- Hardware Bridge (COM-порт) — если ESP32 подключён к ПК по USB, пользователь запускает bridge.py, и AI отправляет/читает данные через serial_write_and_read.
Выбор способа зависит от задачи. Для автономного устройства, которое работает удалённо (например, на станке), удобнее MQTT — ESP32 сам публикует результаты. Для прототипирования и отладки — COM-порт проще: не нужно настраивать Wi-Fi на ESP32.
Конкретный сценарий: Детекция аномалий вибрации
Допустим, у нас есть ESP32-S3 с подключённым акселерометром (например, MPU6050) и предобученная модель TFLite Micro для классификации вибраций: норма / аномалия. ESP32 выполняет инференс каждые 100 мс и публикует результат в топик MQTT esp32/vibration.
Задача: ASI Biont должен получать эти данные, логировать их в CSV, и при обнаружении аномалии отправлять оповещение в Telegram и записывать событие в базу данных PostgreSQL.
Решение: Пользователь описывает задачу в чате ASI Biont:
«Подключись к ESP32 по MQTT, брокер mqtt://192.168.1.100:1883, топик esp32/vibration. Данные приходят в JSON: {"status": "normal" или "anomaly", "value": 0.87}. Логируй всё в файл vibration_log.csv. При аномалии отправь сообщение в Telegram на мой канал @my_channel и запиши в PostgreSQL таблицу alerts (timestamp, value).»
AI-агент генерирует и выполняет Python-скрипт в sandbox-окружении:
import paho.mqtt.client as mqtt
import json
import csv
import requests
import psycopg2
from datetime import datetime
# Настройки
MQTT_BROKER = "192.168.1.100"
MQTT_TOPIC = "esp32/vibration"
TELEGRAM_BOT_TOKEN = "YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID = "@my_channel"
DB_DSN = "postgresql://user:pass@localhost:5432/mydb"
CSV_FILE = "vibration_log.csv"
# Инициализация CSV
with open(CSV_FILE, "a", newline="") as f:
writer = csv.writer(f)
writer.writerow(["timestamp", "status", "value"])
def on_message(client, userdata, msg):
data = json.loads(msg.payload.decode())
timestamp = datetime.now().isoformat()
status = data["status"]
value = data["value"]
# Логирование в CSV
with open(CSV_FILE, "a", newline="") as f:
writer = csv.writer(f)
writer.writerow([timestamp, status, value])
if status == "anomaly":
# Telegram
text = f"⚠️ Аномалия вибрации! Значение: {value}"
requests.post(f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": text})
# PostgreSQL
conn = psycopg2.connect(DB_DSN)
cur = conn.cursor()
cur.execute("INSERT INTO alerts (timestamp, value) VALUES (%s, %s)",
(timestamp, value))
conn.commit()
cur.close()
conn.close()
client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER, 1883, 60)
client.subscribe(MQTT_TOPIC)
client.loop_forever() # Внимание: в sandbox таймаут 30 секунд, поэтому loop_forever не подойдёт
Важно: В sandbox ASI Biont у скриптов есть таймаут 30 секунд. Для долгоживущих подписок используется механизм industrial_command с MQTT-протоколом, который поддерживает постоянное соединение. Но для демонстрации логики подойдёт и краткосрочный сбор данных.
Альтернатива: COM-порт через Hardware Bridge
Если ESP32 подключён к ПК по USB (например, для отладки), пользователь запускает bridge.py:
pip install pyserial requests websockets
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
Теперь AI может отправлять команды через industrial_command:
industrial_command(protocol='serial://', command='serial_write_and_read', data='524541440a') # READ\n
ESP32 отвечает данными с акселерометра. AI парсит hex-ответ, запускает модель (если нужно передать данные в облако) или просто логирует.
Почему это выгодно
- Скорость интеграции: Вместо того чтобы писать обработчик MQTT, Telegram-бота и запросы к БД вручную, пользователь просто описывает задачу на естественном языке. AI генерирует и выполняет код за секунды.
- Гибкость: ASI Biont подключается к любому устройству через execute_python — не нужно ждать обновлений платформы. Поддержка paho-mqtt, pyserial, paramiko, aiohttp и десятков других библиотек есть сразу.
- Edge AI + Cloud AI: ESP32-S3 делает быстрый инференс на месте (задержка <10 мс), а ASI Biont в облаке анализирует тренды, сохраняет историю и принимает решения на основе всей системы.
Как начать
- Загрузите на ESP32-S3 прошивку с TFLite Micro моделью (например, детекции аномалий).
- Настройте публикацию результатов в MQTT или вывод в COM-порт.
- Зайдите в чат ASI Biont и опишите задачу: «Подключись к ESP32 по MQTT, читай топик esp32/vibration, логируй и отправляй оповещения».
- AI сам напишет и выполнит код интеграции.
Никаких панелей управления, кнопок «добавить устройство» и ручного копирования API-ключей — всё через диалог.
Заключение
Интеграция ESP32-S3 с AI-агентом ASI Biont превращает обычный микроконтроллер в полностью автономную систему предиктивной диагностики. Вы получаете сверхнизкие задержки on-device ML и мощную облачную логику без единой строки кода, написанной вручную. Попробуйте сами на asibiont.com — опишите своё устройство и задачу, и AI сделает всё остальное.
Комментарии