Мой личный ассистент

0. Если ты никогда не держал паяльник

Хорошая новость: для первого рабочего узла паяльник не нужен вообще. Все модули из списка продаются с уже припаянными штырьками (в описании это называется «с распаянными пинами» или «pin header soldered»), и соединяются они проводами-перемычками, которые просто надеваются на штырёк.

Что понадобится вместо пайки:

Паяльник понадобится позже и только в двух местах: провода к динамику и провода к электрозамку. Это две точки, их спокойно можно попросить спаять любого знакомого или отдать в мастерскую за пару сотен.

Ещё три слова, которые будут встречаться дальше:

Личная страница Сергея. Инструкция: как дать Каю тело — уши, голос, руки и глаза — и поселить его дома. Всё железо из этой инструкции мы разбираем на сайте, то есть материал под рукой.

1. Что именно строим

Не «умную колонку». Колонка — это пульт с распознаванием речи: сказал команду, услышал ответ, разговор кончился. У нас другое: Кай уже существует как личность с памятью, задачами и доступом к работе. Мы не создаём ассистента заново, мы даём существующему агенту органы чувств.

Разница на примере. Колонке говорят «включи музыку» — она включает. Каю говорят «привет» — он отвечает по имени, помнит, что вчера ты просил не будить его вопросами до обеда, знает, что сегодня у тебя смена, и сам спрашивает, ставить ли утренний прогон по Модультопу. Это не сценарий, это следствие того, что у него одна память и на работу, и на дом.

2. Что берём из фильмов — по технике

Тау (2018). Дом там — тело ИИ: он видит все комнаты, держит двери и замки, управляет светом и техникой, а подвижная часть — отдельный робот. Техническая мысль: узлов должно быть несколько, и они должны быть частями одной системы, а не набором отдельных гаджетов. Второе — управление доступом (двери, замки) идёт через ту же систему, что и свет.

Бегущий по лезвию 2049. Ключевое — вывод изображения: стационарный проектор дома и переносной эмулятор. Технически это два разных устройства с одним источником: проектор в комнате и телефон в кармане показывают одно и то же. У нас так же — домашняя панель и Telegram.

Дэллоуэй (2025). Умная квартира с панелями в каждой комнате: ассистент отвечает не из колонки, а с настенного экрана, видит жильца камерой и сам открывает и закрывает доступ в помещения. Отсюда наш раздел про панели и доступ.

3. Как это работает целиком

Схема потока, от твоего голоса до действия:

[ты говоришь]
      ↓
ESP32 с микрофоном в комнате     ← слушает локально ключевое слово «Кай»
      ↓ (wi-fi, только после активации)
сервер Кая 159.194.244.30
      ↓
распознавание речи (уже работает: /mh/stt)
      ↓
Гермес — мозг Кая, та же память, что и на работе
      ↓
решение: ответить голосом / включить реле / записать задачу
      ↓
синтез речи → обратно на ESP32 → динамик
      ↓
[ты слышишь ответ, свет включился]

Важное следствие: тяжёлое (распознавание, мышление, синтез) считается на сервере, дома стоит только дешёвая железка за пару тысяч. Поэтому узлов можно наделать сколько угодно — по одному в комнату.

4. Железо: что покупать

Цены ниже — ориентир на сентябрь 2026 по российским магазинам; перед заказом сверься, они гуляют.

Позиция Модель Зачем Ориентир, ₽
Мозг узла ESP32-S3 DevKitC-1 (N16R8) Wi-Fi, две ядра, много памяти — тянет локальное ключевое слово 1200–1800
Ухо Микрофон I2S INMP441 Цифровой микрофон без шума аналоговых 250–400
Голос Усилитель I2S MAX98357A Цифровой звук сразу в динамик, без внешней звуковой платы 300–500
Динамик Широкополосный 3–5 Вт, 4 Ом Громкость на комнату 300–700
Руки Реле-модуль на 2 или 4 канала Свет, чайник, обогреватель, гирлянда 250–600
Чувства BME280 Температура, влажность, давление в комнате 350–600
Присутствие HC-SR501 или mmWave LD2410 Понимать, что ты дома и в какой комнате 150–900
Экран OLED SSD1306 0,96″ Показывать состояние: слушаю / думаю / отвечаю 250–400
Глаза ESP32-CAM или USB-камера Узнавать, кто вошёл (второй этап) 700–1500
Питание Блок 5 В 3 А + провода Питать всё это 400–800

Минимальный комплект для первого узла — ESP32-S3, микрофон, усилитель, динамик и питание: около 2500–3500 ₽. Всё остальное добавляется потом по одному модулю.

5. Сборка узла «ухо и голос»

Всё собирается на макетке за вечер, паяльник нужен только для проводов к динамику.

INMP441 (микрофон)      ESP32-S3
  VDD  ->  3V3
  GND  ->  GND
  SD   ->  GPIO 6      (данные с микрофона)
  WS   ->  GPIO 5      (выбор канала)
  SCK  ->  GPIO 4      (тактовая)
  L/R  ->  GND         (левый канал)

MAX98357A (усилитель)   ESP32-S3
  VIN  ->  5V
  GND  ->  GND
  DIN  ->  GPIO 7      (данные в динамик)
  BCLK ->  GPIO 15
  LRC  ->  GPIO 16
  +/-  ->  динамик

Реле-модуль             ESP32-S3
  VCC  ->  5V
  GND  ->  GND
  IN1  ->  GPIO 10
  IN2  ->  GPIO 11

Два подводных камня, из-за которых обычно «не работает»:

5а. Сборка шаг за шагом, руками

Раздел для случая «первый раз вижу эти платы». Каждый пункт — одно физическое действие. Делай строго по порядку и не пропускай проверки: если проверка не прошла, дальше идти нельзя, иначе искать ошибку придётся во всей конструкции сразу.

Что лежит перед тобой

Ножки на платах подписаны мелкими буквами прямо на текстолите: 3V3, GND, SD и так далее. Читать надпись удобнее под лампой и через телефонную камеру с увеличением — буквы правда мелкие.

Шаг 1. Втыкаем мозг в макетку

Берёшь ESP32-S3 и вдавливаешь её ножками в макетную плату так, чтобы ряды ножек оказались по РАЗНЫЕ стороны от продольной канавки посередине платы. Разъёмом USB-C — к краю макетки, чтобы кабель потом не упирался.

Вдавливать надо ровно и с усилием, держа плату за края. Ножки должны войти до конца, чтобы плата села на макетку почти вплотную.

Проверка: плата не качается, ни одна ножка не осталась снаружи и не подогнулась вбок.

Шаг 2. Разводим питание по краям

Берёшь красный провод. Один конец надеваешь на ножку ESP32, подписанную 3V3. Второй конец втыкаешь в любую дырку на длинной линии с КРАСНОЙ полосой.

Берёшь чёрный провод. Один конец — на ножку GND у ESP32, второй — в длинную линию с СИНЕЙ полосой.

Берёшь ещё один красный провод. Один конец — на ножку 5V у ESP32, второй — во ВТОРУЮ красную линию (она с другой стороны макетки). Так у тебя получается две шины питания: 3,3 вольта с одной стороны, 5 вольт с другой. Их путать нельзя — микрофон от пяти вольт сгорит.

Проверка: запомни или подпиши маркером, какая сторона у тебя 3,3 В, а какая 5 В. Дальше в тексте я называю их «шина 3,3» и «шина 5».

Шаг 3. Ставим микрофон

Втыкаешь INMP441 в макетку так же, как мозг: ножками в дырки, дырочкой микрофона вверх. Место бери подальше от ESP32, чтобы провода не путались.

Теперь шесть проводов, по одному за раз. Надел один — проверил по списку — взял следующий:

Цвета — только для твоего удобства, электрически они одинаковые. Но красный к питанию и чёрный к земле — привычка, которая потом спасает: перепутать провод в куче одинаковых проще, чем кажется.

Проверка: пройди список сверху вниз пальцем и по каждой строке потрогай оба конца провода. Шесть проводов — шесть строк, лишних быть не должно.

Шаг 4. Ставим усилитель

Втыкаешь MAX98357A в свободное место на макетке. Пять проводов:

Проверка: у микрофона питание идёт на 3,3, у усилителя — на 5. Это единственное место, где две шины ведут себя по-разному, и единственная ошибка, которая портит деталь насовсем.

Шаг 5. Динамик

Вот здесь понадобится паяльник — и только здесь. У динамика два провода, на усилителе им отвечают два контакта с краю, подписанные + и −.

Если на твоём усилителе стоят винтовые клеммы (маленькие синие или зелёные кубики с винтами) — паяльник не нужен вообще: зачищаешь кончик провода на сантиметр, суёшь в отверстие клеммы, затягиваешь винт отвёрткой.

Если клемм нет — провода нужно припаять к двум площадкам. Это две точки, любой знакомый с паяльником сделает за минуту, либо отдаёшь в мастерскую за пару сотен вместе со следующим пунктом.

Полярность у динамика на слух не важна: перепутаешь плюс с минусом — он всё равно заиграет.

Проверка: провода не касаются друг друга оголёнными частями. Замыкание на выходе усилителя выключает его в защиту, и ты будешь думать, что он сгорел.

Шаг 6. Реле — то, что щёлкает и включает свет

Реле-модуль это плата с синими кубиками и винтовыми клеммами. Ставишь её рядом, четыре провода:

Внимание, единственное место во всей сборке, где есть опасность: к винтовым клеммам реле подключается то, чем ты управляешь. Пока идёт настройка — вешай туда светодиодную ленту на 12 вольт или лампочку от блока питания. К домашней розетке 220 В на макетной плате не подключайся вообще: там оголённые контакты и торчащие провода, это опасно для жизни. Переезд на 220 В — только в закрытом корпусе и лучше готовым устройством, о нём в разделе 12.

Проверка: к клеммам реле сейчас ничего не подключено. Совсем ничего.

Шаг 7. Первое включение

Втыкаешь блок питания 5 В 3 А в разъём макетки или USB-C кабель от нормальной зарядки (не от компьютера — ему не хватит тока) в ESP32.

Что должно произойти: на ESP32 загорится маленький светодиод, на усилителе — свой. В динамике может один раз щёлкнуть, это нормально.

Если запахло, нагрелось или ничего не горит — немедленно выдёргивай питание и проверяй два провода: VDD микрофона (должен быть на 3,3) и VIN усилителя (должен быть на 5). В девяти случаях из десяти дело в них.

Шаг 8. Заливаем прошивку

Подключаешь ESP32 к компьютеру кабелем USB-C. Открываешь в браузере Chrome страницу web.esphome.io, жмёшь «Connect», в списке выбираешь появившийся порт.

Прошивку я тебе соберу и пришлю файлом — там уже прописаны все ножки из шагов выше, твой Wi-Fi и адрес сервера. Тебе останется выбрать файл и нажать «Install».

Проверка: после прошивки узел сам появится в списке устройств на сервере. Если не появился — смотрим, тот ли Wi-Fi прописан; на 5 ГГц ESP32 не работает, ему нужен диапазон 2,4 ГГц.

Шаг 9. Проверка голосом

Говоришь в микрофон «Кай». Узел должен ответить коротким звуком и загореться индикатором ожидания. Дальше говоришь фразу — она уходит на сервер, оттуда возвращается ответ и звучит в динамике.

Если он не слышит: дырочка микрофона направлена в тебя, а не в стол; расстояние до метра; в комнате не работает телевизор. Чувствительность и слово пробуждения настраиваются, об этом раздел 7.

Если слышит, но молчит: дело в динамике или питании, а не в микрофоне. Проверь ток блока питания — при слабом узел перезагружается ровно в момент ответа.

Куда двигаться дальше

Когда узел заговорил — самое сложное позади. Всё остальное в этой инструкции (замок, свет, камеры, проекция) собирается тем же способом: плата на макетку, питание на две шины, сигнальные провода на указанные ножки. Отличается только, какая ножка за что отвечает, и это написано в каждом разделе отдельно.

6. Прошивка: два пути

Путь короткий — ESPHome. Готовый конструктор прошивок с YAML-конфигом, в нём уже есть блок голосового ассистента и локальное ключевое слово (microWakeWord). Пишешь конфиг на двадцать строк, он собирает прошивку и заливает по воздуху. Рекомендую начать с него: за вечер получишь говорящую железку.

esphome:
  name: kai-zal

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

i2s_audio:
  - id: mic_bus
    i2s_lrclk_pin: GPIO5
    i2s_bclk_pin: GPIO4
  - id: spk_bus
    i2s_lrclk_pin: GPIO16
    i2s_bclk_pin: GPIO15

microphone:
  - platform: i2s_audio
    id: mic
    i2s_audio_id: mic_bus
    i2s_din_pin: GPIO6
    adc_type: external
    pdm: false

speaker:
  - platform: i2s_audio
    id: spk
    i2s_audio_id: spk_bus
    dac_type: external
    i2s_dout_pin: GPIO7

micro_wake_word:
  models:
    - okay_nabu          # заменяется на своё слово «Кай»
  on_wake_word_detected:
    - voice_assistant.start

voice_assistant:
  microphone: mic
  speaker: spk

Путь длинный — своя прошивка на ESP-IDF. Полный контроль, можно гнать поток прямо на наш сервер по WebSocket, без промежуточных систем. Имеет смысл на втором этапе, когда захочется своего поведения: например, чтобы Кай сам заговаривал первым, когда ты вошёл в комнату.

7. Своё ключевое слово «Кай»

Готовых моделей на слово «Кай» нет — их тренируют под конкретное слово. Два варианта:

Важно: ключевое слово распознаётся ЛОКАЛЬНО на самой железке. До активации ничего никуда не уходит — микрофон слушает только внутри себя. Это принципиально для правил приватности ниже.

8. Серверная часть — что уже готово, а что делать

Кусок Состояние Что нужно
Мозг (Гермес, память, задачи) работает ничего
Распознавание речи работает, ручка /mh/stt принять поток от ESP32
Синтез речи нет поставить Piper — локально, бесплатно, русские голоса
Приём аудио с узлов нет WebSocket-ручка на сервере Кая
Управление реле нет MQTT-брокер (mosquitto) на том же сервере

Синтез речи локальный принципиально: платить за каждое «да, включаю свет» через платный сервис — деньги на ветер, а Piper на этом же сервере говорит по-русски бесплатно и мгновенно.

9. Руки: как он включает музыку и свет

Через MQTT — это простой протокол коротких сообщений. На сервере поднимается брокер, каждый узел на него подписан. Кай отправляет строку — узел выполняет.

# Кай включает свет в зале
mosquitto_pub -t kai/zal/rele1 -m ON

# Кай спрашивает температуру в спальне
mosquitto_sub -t kai/spalnya/bme280 -C 1

Музыка — отдельно: проще всего через тот же динамик узла (Кай сам проигрывает поток) либо командой на домашнюю колонку, если она умеет принимать по сети. Первый путь честнее: тогда музыка звучит там же, где голос, и он может её приглушать, когда говорит.

10. Панели доступа: замок, домофон, кто вошёл

Самая заметная часть «дома с ИИ» из фильмов — не колонка, а панель у двери. Технически это отдельный узел с экраном, считывателем и связью с замком.

Что ставим Модуль Что делает Ориентир, ₽
Считыватель карт и брелоков RC522 (RFID 13,56 МГц) Открывает по карте или метке в телефоне 250–400
Клавиатура Матричная 4×4 или сенсорная TTP229 Код доступа, если карту забыл 200–500
Замок Электромеханическая защёлка 12 В Собственно открывание 1500–4000
Реле замка Одноканальное реле или MOSFET-модуль Даёт 12 В на защёлку по команде 250–500
Экран панели ILI9341 2,8″ или Nextion 3,5″ Показывает время, статус, кто пришёл 900–2500
Камера двери ESP32-CAM Снимок пришедшего, распознавание лиц на сервере 700–1200

Логика работы: панель считала карту → отправила id на сервер Кая → сервер решил, пускать ли и что сказать → вернул команду реле и фразу в динамик. Решение принимает сервер, а не панель, поэтому правила доступа меняются одним файлом, а не перепрошивкой.

Отдельная возможность, которой нет у обычных домофонов: Кай знает контекст. Пришёл курьер в неурочное время — он пишет тебе в Telegram снимок с двери и ждёт твоего слова; ты отвечаешь одним сообщением, он открывает.

Про безопасность честно: замок, который открывается по сети, — это риск. Правильно делать так, чтобы физическое открывание шло только по локальной сети (сервер и панель в одной домашней сети), а из интернета приходили только уведомления и подтверждения.

11. Проекции и экраны: как он показывается

Голограмма из фильма — это, если убрать кино, проектор с обратной проекцией на плёнку либо экран за стеклом. Варианты по бюджету:

Во всех случаях содержимое рисует сервер: страница в браузере на весь экран, которую Кай обновляет по сети. Это позволяет менять вид без пайки — переписал HTML, панель показала новое.

12. Управление домом: что он реально включает

Задача Чем Замечание
Свет Реле-модуль в подрозетник или умное реле Sonoff Механический выключатель должен продолжать работать
Розетки (чайник, обогреватель) Умная розетка с Wi-Fi Готовые дешевле самоделки и уже сертифицированы
Музыка Динамик узла или сетевой плеер Кай приглушает музыку, когда говорит
Шторы Шаговый двигатель + драйвер A4988 Момент считать заранее, тяжёлые шторы требуют редуктора
Климат Реле на обогреватель + BME280 как датчик Гистерезис в коде, иначе реле щёлкает каждую минуту
Сценарии Логика на сервере «Пришёл домой» = свет в прихожей + чайник + сводка дня

Обязательное правило по электрике: всё, что коммутирует 220 В, ставится в изолированный корпус, на din-рейку и через автомат. Реле-модуль с голыми контактами на столе — это не «прототип», это пожар.

13. Глаза: камеры и распознавание

ESP32-CAM даёт кадр 1600×1200 и умеет отдавать поток по сети. Само распознавание лиц на ней делать бессмысленно — она слабая; кадр уходит на сервер, там сравнивается с образцами. Практическое применение три:

Датчик присутствия LD2410 (mmWave) для второй задачи лучше камеры: он видит человека сквозь мебель по дыханию и не снимает картинку вовсе.

14. Порядок сборки — по выходным

  1. Выходные первые. Один узел: ESP32-S3, микрофон, динамик. Прошивка ESPHome, ключевое слово из готового набора. Итог: сказал — Кай ответил голосом.
  2. Вечер буднего дня. Ставим Piper на сервер, свой голос вместо стандартного. Тренируем слово «Кай».
  3. Выходные вторые. Реле и умная розетка, MQTT. Итог: «Кай, включи свет» работает.
  4. Выходные третьи. Панель у двери: считыватель, экран, замок. Итог: дом узнаёт тебя.
  5. Дальше. Камеры, второй и третий узел по комнатам, зеркало или проектор.

Первый шаг стоит около трёх тысяч рублей и даёт говорящую железку в тот же вечер. Дальше добавляется по одному модулю, и каждый следующий обзор на этом сайте — заодно инструкция к очередному куску твоего дома.

15. Что от меня и что от тебя

Моя часть: серверная — приём аудио, синтез речи, MQTT, правила и сценарии, тренировка ключевого слова, весь код прошивок. Твоя: заказать железо и спаять, это два вечера с паяльником, и решить, с какой комнаты начинаем.

16. Где покупать и почём

Ссылки ведут на поиск по названию модуля в магазине — так они не протухнут, когда конкретный продавец закончится. Цены ниже я не проверял вручную у каждого продавца, это диапазон по рынку на начало сентября 2026: бери как ориентир, точную цену увидишь по ссылке.

Что Точное название для поиска Ориентир Где смотреть
Плата-мозг ESP32-S3 DevKitC-1 N16R8 1200–1800 ₽ Ozon · Wildberries · Чип и Дип
Микрофон INMP441 I2S микрофон модуль 250–400 ₽ Ozon · Wildberries
Усилитель MAX98357A I2S усилитель 300–500 ₽ Ozon · Чип и Дип
Динамик динамик 4 Ом 3 Вт широкополосный 300–700 ₽ Ozon
Провода перемычки дюпон мама-мама 20 см 150–250 ₽ Ozon
Макетка макетная плата breadboard 830 200–350 ₽ Ozon
Реле модуль реле 2 канала 5V оптопара 250–600 ₽ Ozon
Датчик среды BME280 модуль 350–600 ₽ Ozon
Присутствие LD2410C датчик присутствия 400–900 ₽ Ozon
Экран OLED SSD1306 0.96 I2C 250–400 ₽ Ozon
Считыватель RC522 RFID модуль 250–400 ₽ Ozon
Камера ESP32-CAM OV2640 700–1200 ₽ Ozon
Питание блок питания 5V 3A USB-C 400–800 ₽ Ozon

Первый заказ, чтобы начать: плата, микрофон, усилитель, динамик, провода, макетка, блок питания. Выходит примерно 2900–4400 ₽ — это всё, что нужно для говорящего узла.

Второй заказ, когда первый заработает: реле, датчик среды, датчик присутствия, экран. Ещё около 1300–2300 ₽.

На что смотреть в карточке товара, чтобы не промахнуться:

Скажешь, каким магазином удобнее пользоваться, — соберу конкретную корзину с карточками и итоговой суммой, чтобы оставалось нажать «купить».