AI based IoT на esp32 для элементов Headless неумного дома

КДПВ by chatgpt
КДПВ by chatgpt

Сейчас нейронки — это не хайп, а мейнстрим. На сколько сильно бы мы не обожглись на них в прошлых годах, к концу 2025го топовые модели типа Gemini, GPT, Opus показывают достойные результаты при условии правильного формирования контекста. Используя любую прослойку между облаком и пользователем, можно голосом в вольном стиле отдавать нейронке даже нетривиальные задачи, которые она автономно решит и пошлет сигнал к действию тому или иному девайсу. Без сервера, полагаясь на облака, тратя пару долларов в месяц на API.

Если ещё недавно ESP32 ассоциировался в лучшем случае с реле, светодиодами и датчиками, то сегодня этот пятидолларовый микроконтроллер вполне может превратиться в такую прослойку.

Рассмотрим пример — ESP32 обвешена цифровым микрофоном, внешней SD картой памяти и RGB светодиодами . Человек говорит в повествовательном стиле, девайс реагирует исполнением его команды ( в предустановленных рамках) включая нужный свет.
Под капотом ESP32 записывает голос пользователя через I2S‑микрофон и сохраняет его во флеш‑память или на SD‑карту. Это принципиальный момент: аудио очень быстро съедает оперативную память, и попытка держать его в RAM с большой вероятностью обрекает на хождение по минному полю. Поэтому пишем голос на флешку, что хоть и даст небольшую задержку, но обеспечивает надежный workflow. Дальше сохранённый аудиофайл отправляется по HTTPS в LLM — чаще всего это Gemini или OpenAI. За подробностями имплементации можно заглянуть в гайд от Google.

Как это работает.
Промпт к LLM состоит из аудио войса и системного промпта, содержащего в себе набор инструментов, которые можно вызывать в ответе. Распознав голосовую команду, нейронка принимает решение ( основываясь исключительно на информации в голосовом запросе), нужно ли ей вызвать какой либо инструмент, и с какими параметрами. В ответе нейронка формирует структурированный JSON результат. Т.е. в прошивке мы описываем набор доступных действий устройства, а нейросеть сама выбирает, что именно нужно вызвать, и возвращает JSON с параметрами. Этот механизм называется Function Calling и именно он превращает голосовое управление из игрушки в инженерно аккуратное решение.

В итоге всё, чем занимается ESP32 это отправка сырого аудио на сервер и выполнение одного из предустановленных действий согласно полученному от нейронки JSON ответу.
С точки зрения прошивки это выглядит несколько скучно — зато в реальной жизни ощущается как магия. Можно сказать «Что‑то темно», и включится свет. «Сделай поуютнее» — и RGB‑лента перейдёт в тёплый режим, "Смотрим кино" и свет убавится до минимума. Без жёстких фраз, без бесконечных if‑else, без боли.
Ничего не мешает нам реализовать взаимодействие такик ESPшек путем добавления в список инструментов GET запрос на соседнюю еспху с командой сделать что то. И вот уже оживает инфраструктура умного безголового дома

В экосистеме ардуинщиков ребята уже пилят библиотеки для связи с разными провайдерами, чтобы не быть привязанным к одному поставщику "мозгов".

Подводные камни.
Во‑первых, задержка. Классическая схема "записали -- отправили -- дождались ответа" вполне рабочая, но имеет пару секунд задержки. Чтобы устройство реагировало быстрее, звук к нейронкам транслируют потоково по WebSocket, не дожидаясь окончания записи. Это заметно ускоряет отклик, но требует дополнительного сервера между ESP32 и LLM.

Во‑вторых, HTTPS. Работа с LLM почти всегда означает WiFiClientSecure, а он на ESP32 довольно тяжёлый. Иногда бывают подвисания, особенно при долгих соединениях. Принято лечить аккуратной работой с тайм‑аутами, закрытием соединений и повторным подключением, либо периодической программной перезагрузкой устройства. Не критично, но лучше быть готовым.

В сухом остатке картина получается довольно впечатляющая. ESP32 за пять долларов уже может быть умной голосовой железкой, которая обладает юзерфрендли голосовым UI.

Главный камень преткновения сейчас это wake‑word: мы не можем сказать "Алиса" или "джарвис" так же комфортно, как на яндекс станции, поэтому встает вопрос как будить устройство к прослушиванию. Существующие local wake-word решения для ESP32 есть, но распознают паршивенько. Зато есть простой и неожиданно надёжный вариант — активация по двойному хлопку в ладоши. Для такого уровня DIY поделок это может оказаться золотой пулей.
Если тема интересна, могу в следующей статье написать мануал как собрать ночник с голосовым управлением и отправкой сообщения в телеграм своей любимой.

@nicelight_nsk
09.01.2026 23:49 UTC
Первоисточник

Комментарии

@Blackbird_shadow
09.01.2026 19:27 UTC
0

Когда наконец то будет нормальный ИИ который не требует подключения куда то где товарищ майор или американский его аналог будет записывать мой каждый пук :) А чтобы все работало автономно от интернета и даже в апокалипсис - а то какая корявая и дурная фигня выходит реально . Сервер упадет и даже Гг не смоешь в умном унитазе - поскольку микрофон там будет а вот ручки-кнопки уже нет ... Кому вообще пришла такая идея впервые ?

@uvelichitel
09.01.2026 22:33 UTC
+1

В контексте поста, распознавание речи в структурированные команды работало еще до Siri, еще на кнопочных телефонах Sony-Ericsson. И сегодня распознавать речь очень доступно на домашнем, вполне бюджетном железе...

11.01.2026 07:07 UTC
0

У меня старенький Самсунг Смарт ТВ , голосовые команды понимает , уж не говорю что жесты с камеры. И для этого не нужен интернет даже , всё в прошивке.

@uvelichitel
09.01.2026 22:37 UTC
+1

А почему бы в качестве устройства ввода не использовать смартфон? Он у всех под рукой. У него хороший микрофон. Память, процессор. Динамики, он заодно может разговор поддержать. А esp только в качестве актуаторов оборудования.

@wodjudidkw982uj
12.01.2026 05:42 UTC
0

Такая система тоже кажется хорошим вариантом. С телефона можно напрямую передавать голос ИИ, а ответ передавать уже на ESP. Только в таком случае система по голосу будет работать только при наличии в доме рабочего телефона (хотя сложно представить ситуацию когда бы это было не так). Но что делать в случаях если телефон разрядился; или если в доме пару жильцов, чей телефон использовать; или сейчас телефон использоваться для более важных задач и открытие там окна для общения с ИИ будет мешать. Можно взять старый телефон на котором запустить всю эту систему, только не костыльно ли выходит? На ESP32 написал код - и только этот код выполняется. На телефоне(в этом контексте именно про неиспользуемый) же много других задач(обновления, перезагрузки, другие проблемы которые могут помешать работе системы) и автоматизировать их решения будет не лёгкой задачей. Хотя в принципе, в большинстве случаев использование и основного телефона будет адекватным, но нужно продумать как решить кейсы когда передача в LLM и обратно может быть затруднена/нарушена.

@Z55
10.01.2026 07:09 UTC
+1

Я уж думал тут будет про AI блок ESP32 S3, а тут....

@d3d11
10.01.2026 07:31 UTC
0

Мне в голову приходил похожий вариант, но ESP отправляет голос на min-PС в локалке, на котором речь распознается локально оффлайн. Так и задержка будет минимальная и независимость.

@AppCrafter
10.01.2026 18:16 UTC
0

«Если тема интересна, могу в следующей статье написать мануал как собрать ночник с голосовым управлением»

Да, интересно, только без телеги

@DYNAMIT-75
11.01.2026 07:17 UTC
0

А сейчас ? Магия ))) мой ночник из магазина , в котором по умолчанию esp в каком-то своём исполнении, управляется голосом с телефона. Но через интернет снова же , через китайский сервак . Задержка пол секунды примерно. Мало того, мобила передаёт в центр Гугл ассистента, там распознают только мой голос, посылает чёто там китайцам , они мне в ночник, да и ещё в 10 устройств других.

Так в чём у них проблема ? Завоевать рынок какой-то коробкой , которая прям дома голос будет понимать , ну 200 команд и сочетаний и возвращать команды сразу в сети на приборы.

12.01.2026 23:12 UTC
0

"Нам берег китайский не нужен"))

Нам надо своё собрать. Тут прям столько фич можно прикрутить.

@AndGry
14.01.2026 07:11 UTC
0

Ммм... Я так понимаю, это чисто умозрительный концепт на основе идей от ИИ? Использование флешки заместо RAM... Ну теоретически можно, если взять столько, что даже десяток болтливых детей не смогут убить ее всю.

Но приличный разработчик воткнул бы PSRAM какой-нибудь. 8 МБ хватит на всех

@nicelight_nsk
31.01.2026 08:18 UTC
0

Лучшее враг хорошего. Приличный разработчик мог бы взять камушек пожирнее и сделать offline Wakeword, тут простор для творчества не ограничен :)

@
06.02.2026 19:05 UTC
0
НЛО прилетело и опубликовало эту надпись здесь
@o_O_Tync
10.03.2026 20:26 UTC
0

Интересно. Пожалуйста рассказывайте сразу! Зачем была нужна статья без статьи?)