Микрофон MAX9814 и INMP441 + ASI Biont: голосовое управление умным домом через AI-агента

Вы когда-нибудь хотели, чтобы ваш умный дом понимал вас с полуслова? Не через приложение, не через пульт, а просто: вы сказали — он сделал. С подключением микрофона к ASI Biont это становится реальностью. Сегодня разберём, как подключить два популярных микрофона — аналоговый MAX9814 и цифровой I2S INMP441 — к AI-агенту, настроить распознавание речи и автоматизировать команды. Поехали!

Зачем подключать микрофон к AI-агенту?

Микрофон — это «уши» для вашей системы. Само по себе устройство просто записывает звук, но в связке с ASI Biont оно превращается в полноценный голосовой интерфейс. Вы можете:

  • Управлять освещением, климатом, шторами — просто сказав «Включи свет в гостиной».
  • Отдавать команды промышленным контроллерам: «Подними температуру в цехе до 22 градусов».
  • Запускать рабочие процессы: «Отправь отчёт на почту» или «Запусти тестирование партии №5».
  • Интегрировать голосовой ввод в свои скрипты — например, для голосового заполнения форм или журналов.

ASI Biont — это AI-агент, который умеет подключаться к любому устройству через Python-код. Вам не нужно ждать готовых интеграций: вы описываете в чате, к чему подключиться и как, а AI сам пишет и выполняет код. Работает с ESP32, Raspberry Pi, Arduino, промышленными контроллерами и даже с вашим PC.

Способы подключения: что выберем для микрофона?

У ASI Biont есть несколько способов связи с железом: COM-порт, MQTT, Modbus, SSH, HTTP API, OPC-UA и другие. Но для микрофона — это особый случай. Микрофон не висит в сети и не имеет IP-адреса. Он подключается к микроконтроллеру (например, ESP32) по аналоговому или цифровому интерфейсу. Поэтому我们先 рассмотрим, как ESP32 с микрофоном общается с ASI Biont.

Вариант 1: ESP32 + MAX9814 + ASI Biont

MAX9814 — аналоговый микрофон с усилителем. Он подключается к аналоговому пину ESP32 (например, GPIO34). ESP32 читает уровень звука (RMS или пиковый) и передаёт его в ASI Biont по MQTT или через последовательный порт.

Схема подключения:

MAX9814 ESP32
VCC 3.3V
GND GND
OUT GPIO34 (ADC)
AR логический вход (можно не подключать или к GPIO 15 для регулировки)

Код на MicroPython для ESP32:

from machine import Pin, ADC, Timer
import ujson
from umqtt.simple import MQTTClient

# Настройка АЦП
adc = ADC(Pin(34))
adc.atten(ADC.ATTN_11DB)  # диапазон 0-3.6V
adc.width(ADC.WIDTH_12BIT)  # 12 бит

# MQTT клиент
mqtt = MQTTClient('esp32_audio', '192.168.1.100', port=1883, user='biont', password='secret')
mqtt.connect()

def read_audio(timer):
    # Считываем 100 значений за 10 мс и считаем RMS
    samples = [adc.read() for _ in range(100)]
    rms = (sum(s*s for s in samples) / len(samples)) ** 0.5
    mqtt.publish(b'home/sound_level', ujson.dumps({'rms': rms, 'ts': time.time()}))

# Таймер на 1 Гц
tim = Timer(1)
tim.init(period=1000, mode=Timer.PERIODIC, callback=read_audio)

ASI Biont подписан на топик home/sound_level и анализирует уровень шума. Если RMS превышает порог, AI может запустить сценарий — например, отправить уведомление в Telegram или включить запись.

Но это ещё не распознавание речи. Для распознавания сам MAX9814 недостаточен — нужен речевой движок (например, Vosk или Google Speech). Как это сделать? Опционально: ESP32 записывает WAV-файл на SD-карту или отправляет аудиопоток по MQTT/HTTP на сервер, где ASI Biont использует Vosk для распознавания. Это можно автоматизировать через execute_python — AI напишет скрипт, который принимает аудио, распознаёт и выполняет команды.

Вариант 2: ESP32 + INMP441 + ASI Biont (цифровой I2S)

INMP441 — цифровой микрофон с интерфейсом I2S. Он даёт более чистое качество и не подвержен аналоговым помехам. Подключается к ESP32 по I2S-шине, что позволяет передавать PCM-аудио напрямую.

Схема подключения:

INMP441 ESP32
VDD 3.3V
GND GND
SCK GPIO26 (BCLK)
WS GPIO25 (LRCLK)
SD GPIO22 (DIN)
L/R GND (левый канал)

Чтение аудио в MicroPython:

from machine import I2S, Pin
import ustruct

# Настройка I2S
sck_pin = Pin(26)
ws_pin = Pin(25)
sd_pin = Pin(22)

i2s = I2S(0, sck=sck_pin, ws=ws_pin, sd=sd_pin, mode=I2S.TX, bits=16, format=I2S.MONO, rate=16000, ibuf=20000)

# Буфер для аудио (например, 3200 байт на 100 мс)
buf = bytearray(3200)

def read_audio():
    i2s.readinto(buf)
    # Здесь можно отправить buf по MQTT или сохранить в файл
    return buf

Такой поток аудио можно отправлять в ASI Biont через WebSocket или HTTP POST. AI-агент, используя библиотеку pyaudio и Vosk, распознаёт команды.

Как ASI Biont подключается к устройству?

Вы, наверное, заметили, что я нигде не показывал настройку «подключения» в ASI Biont. Всё верно: вам не нужно создавать «устройство» в панели управления. Вы просто описываете задачу в чате: «Подключись к ESP32 на IP 192.168.1.50, порт 8080, читай JSON с уровнем звука. Если уровень больше 500 — включи свет в гостиной через MQTT». ASI Biont сам напишет Python-скрипт, который:

  1. Подключается к ESP32 по HTTP или MQTT.
  2. Получает данные.
  3. Анализирует их.
  4. Выполняет нужные действия.

Для этого используется универсальный метод execute_python — AI генерирует код в песочнице, запускает его и возвращает результат.

Пример: голосовое управление светом через INMP441

Допустим, вы хотите, чтобы при слове «свет» включался свет, при слове «музыка» — включалась музыка на колонках. Как это реализовать без сложной настройки?

Шаг 1. Опишите задачу в чате ASI Biont:

У меня есть ESP32 с микрофоном INMP441, он отправляет аудио на сервер по UDP на порт 5000. Напиши скрипт, который принимает это аудио, распознаёт слова «свет» и «музыка» с помощью Vosk, и при распознавании слова «свет» отправляет MQTT-команду на включение света, а при «музыка» — включает медиаплеер.

Шаг 2. AI пишет код — например, на Python с использованием pyaudio, vosk и paho-mqtt.

import paho.mqtt.client as mqtt
import vosk
import pyaudio
import json

# Настройка Vosk
model = vosk.Model("vosk-model-small-ru-0.22")
rec = vosk.KaldiRecognizer(model, 16000)

# MQTT
mqtt_client = mqtt.Client()
mqtt_client.connect("192.168.1.100", 1883)

# Аудио
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=4000)

print("Слушаю...")
while True:
    data = stream.read(4000, exception_on_overflow=False)
    if rec.AcceptWaveform(data):
        result = json.loads(rec.Result())
        text = result.get('text', '')
        if 'свет' in text:
            mqtt_client.publish("home/light", "ON")
        elif 'музыка' in text:
            mqtt_client.publish("home/music", "play")

Этот код запускается на сервере или на отдельной машине, где работает ASI Biont. AI сам подберёт нужные библиотеки и сгенерирует корректный код.

Автоматизация сбора данных и управление через чат

ASI Biont может не только выполнять команды, но и собирать данные с микрофона для последующего анализа. Например, вы можете попросить AI:

  • «Собирай уровень шума каждый час и отправляй мне статистику в Telegram»
  • «Если уровень шума превысит 60 дБ, предупреди меня и включи кондиционер»
  • «Распознавай фразу „отчёт
← Все статьи

Комментарии

Читайте также

Content Strategy — контент-стратегия и контент-маркетинг: освойте профессию с ИИ-обучением на asibiont.com

10 августа 2026

12 промтов для Node.js и Express: REST API, middleware и авторизация

10 августа 2026

OPC-UA (SCADA/DCS) + AI-агент ASI Biont: интеграция промышленных данных с интеллектуальной автоматизацией

10 августа 2026

Mobile Security — безопасность мобильных приложений (iOS и Android): практический курс на asibiont.com

10 августа 2026

У ИИ есть душа? Как дать LLM характер и эмоции в ролевых играх

10 августа 2026

Курс по ИИ-автоматизации бизнеса: от ИИ-агентов до бизнес-процессов с измеримым ROI

10 августа 2026

ИИ помогает Airbnb выпускать функции быстрее: новая поисковая функция уже в тестировании

9 августа 2026

Курс Cambridge IGCSE Geography (0460): Освойте население, природную среду и экономическое развитие

9 августа 2026

Интеграция тачскрина (FT6206, XPT2046) с AI-агентом ASI Biont: от ESP32 до промышленных панелей

9 августа 2026