Введение
Микрофоны — это глаза и уши для AI-агента. Если вы работаете с голосовым управлением, аудиоаналитикой или системами умного дома, то рано или поздно столкнётесь с необходимостью передать звуковые данные из физического мира в нейросеть. Модули MAX9814 (аналоговый выход с усилителем) и INMP441 (цифровой I²S-микрофон) — два самых популярных варианта для DIY-проектов, промышленных прототипов и IoT-решений. Но как заставить AI-агента ASI Biont «услышать» то, что записывает микрофон, и принять на основе этого решение? В этой статье мы разберём реальный кейс: подключение MAX9814 и INMP441 к ASI Biont через ESP32 и MQTT, с полным циклом от датчика до AI-аналитики.
Проблема: как передать аудиопоток в AI-агент?
Типичная задача: вы хотите, чтобы AI-агент анализировал уровень шума в помещении, распознавал голосовые команды или детектировал определённые звуки (например, сигнал тревоги). Микрофон сам по себе — просто датчик, он выдаёт аналоговый сигнал (MAX9814) или цифровой I²S-поток (INMP441). Чтобы этот сигнал стал полезным для AI, его нужно:
- Оцифровать (с помощью микроконтроллера — ESP32, Arduino).
- Передать в ASI Biont (через MQTT, COM-порт или HTTP).
- Обработать — AI-агент может запустить FFT-анализ, определить уровень громкости, частотный спектр или даже запустить распознавание речи (через внешние API).
Проблема в том, что написать код для каждого из этих шагов вручную — долго и требует знаний embedded-разработки, сетевых протоколов и Python. ASI Biont решает эту проблему: вы просто описываете задачу в чате, и AI-агент сам пишет код интеграции, подключается к устройству и начинает сбор данных.
Решение: ASI Biont + ESP32 + микрофон через MQTT
Для нашего кейса мы выберем самый гибкий способ подключения: MQTT через ESP32. Почему MQTT?
- ESP32 имеет встроенный Wi-Fi и Bluetooth, что идеально для передачи данных в облако.
- MQTT — лёгкий протокол, поддерживающий publish/subscribe, что позволяет AI-агенту как получать данные, так и отправлять команды обратно на устройство.
- ASI Biont поддерживает MQTT через библиотеку paho-mqtt в execute_python — AI сам напишет скрипт подписки и публикации.
Альтернативный вариант — COM-порт через Hardware Bridge. Если ваш микрофон подключён к Arduino или ПК через USB, AI может открыть COM-порт, читать данные последовательно и анализировать их в реальном времени. Но для автономного IoT-устройства MQTT удобнее.
Сценарий: умный контроль шума в офисе
Представьте, что вы хотите автоматически регулировать уровень громкости оповещений в зависимости от фонового шума. Если в комнате тихо — система уменьшает громкость динамиков; если шумно — увеличивает. Вот как это реализуется с ASI Biont:
Шаг 1. Прошивка ESP32
Вы загружаете на ESP32 скетч, который читает аналоговый сигнал с MAX9814 (пин ADC) или цифровой с INMP441 (через I²S). Каждые 100 мс ESP32 вычисляет средний уровень сигнала (RMS) и публикует его в MQTT-топик office/noise_level.
Пример фрагмента кода для ESP32 (Arduino IDE):
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const char* mqtt_server = "test.mosquitto.org";
WiFiClient espClient;
PubSubClient client(espClient);
#define MIC_PIN 34 // ADC pin for MAX9814
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500); }
client.setServer(mqtt_server, 1883);
client.connect("ESP32_MIC");
}
void loop() {
if (!client.connected()) { client.connect("ESP32_MIC"); }
client.loop();
int sample = analogRead(MIC_PIN);
float voltage = sample * (3.3 / 4095.0);
// Отправляем сырое значение напряжения
client.publish("office/noise_level", String(voltage).c_str());
delay(100);
}
Шаг 2. Подключение ASI Biont к MQTT-брокеру
Вы открываете чат с AI-агентом ASI Biont и пишете:
«Подключись к MQTT-брокеру test.mosquitto.org:1883, подпишись на топик office/noise_level. Получай данные каждые 100 мс. Если средний уровень шума за последние 5 секунд превышает 1.5 В, отправь мне уведомление в Telegram: "В офисе шумно, рекомендую снизить порог громкости". Если уровень ниже 0.3 В — отправь "В офисе тихо, можно уменьшить громкость оповещений". Используй библиотеку paho-mqtt.»
AI-агент генерирует Python-скрипт (выполняется в sandbox-окружении execute_python) и запускает его. Пример того, что сгенерирует AI:
import paho.mqtt.client as mqtt
import json
import time
from collections import deque
import requests
# Настройки
MQTT_BROKER = "test.mosquitto.org"
MQTT_PORT = 1883
TOPIC = "office/noise_level"
TELEGRAM_BOT_TOKEN = "YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID = "YOUR_CHAT_ID"
# Окно для скользящего среднего (50 сэмплов = 5 секунд)
window = deque(maxlen=50)
def on_message(client, userdata, msg):
try:
voltage = float(msg.payload.decode())
window.append(voltage)
if len(window) == 50:
avg = sum(window) / len(window)
if avg > 1.5:
text = "В офисе шумно, рекомендую снизить порог громкости"
requests.post(f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": text})
elif avg < 0.3:
text = "В офисе тихо, можно уменьшить громкость оповещений"
requests.post(f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": text})
except Exception as e:
print(f"Error: {e}")
client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.subscribe(TOPIC)
client.loop_forever()
Шаг 3. Результат
AI-агент работает 24/7: он получает данные с микрофона через MQTT, анализирует уровень шума за 5-секундное окно и отправляет уведомления в Telegram при превышении порогов. Время от запуска до первого уведомления — меньше минуты. Всё, что вы сделали — описали задачу в чате и указали параметры подключения.
Почему это выгодно?
- Не нужно писать код вручную. AI-агент сам генерирует и выполняет Python-скрипты с использованием реальных библиотек (paho-mqtt, requests, numpy для FFT и т.д.).
- Любой протокол и устройство. Хотите подключить микрофон через COM-порт к Arduino? Используйте Hardware Bridge (bridge.py) — AI откроет COM3 на 115200 baud и будет читать данные через serial_write_and_read. Хотите получать аудиопоток по HTTP с IP-камеры? AI напишет скрипт с aiohttp.
- Мгновенная интеграция. Не нужно ждать обновлений платформы — вы подключаете что угодно прямо сейчас, просто описав задачу в чате.
- Масштабируемость. Один AI-агент может одновременно слушать десятки ESP32 с микрофонами, анализировать данные и управлять исполнительными устройствами (реле, динамики, свет) через те же MQTT-топики.
Альтернативный сценарий: COM-порт + Hardware Bridge
Если вы предпочитаете проводное подключение (например, для низкой задержки), используйте Arduino с MAX9814, подключённый к ПК через USB. ASI Biont подключается через Hardware Bridge:
- Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key).
- Запустите bridge:
python bridge.py --token=YOUR_TOKEN --ports=COM3 --baud 115200. - В чате с AI-агентом напишите: «Подключись к COM3 через bridge, читай данные с микрофона. Каждые 200 мс отправляй мне среднее значение за последние 10 сэмплов.»
AI отправит команду через industrial_command с protocol='serial' и command='serial_write_and_read', а bridge передаст данные на устройство и вернёт ответ.
Заключение
Микрофоны MAX9814 и INMP441 — это простые, но мощные датчики, которые открывают доступ к голосовому управлению и аудиоаналитике. С ASI Biont их интеграция перестаёт быть задачей для embedded-инженера и становится делом нескольких минут в чате. AI-агент сам выбирает способ подключения (MQTT, COM-порт, SSH), пишет код, запускает его и управляет устройством в реальном времени. Попробуйте сами: опишите свою задачу на asibiont.com и увидите, как AI оживляет железо.
Комментарии