Для чего мы создаем собственные решения умного дома? В подавляющем большинстве случаев энтузиасты реализуют идеальные для себя системы, потому что существующие решения имеют недостатки. 10 лет назад я захотела создать устройство не только для себя, но и всех людей, которые испытывают сложности в выборе или использовании гаджетов умного дома.
Поскольку главной идеей было упрощение, я решила объединить датчики умного дома, умную колонку и камеру в одно устройство - МУЗА. Общую историю разработки я описала в другой статье, а сейчас хочу сосредоточиться на причине большой длительности разработки - превращении образца в устройство для продажи, своего рода симбиоз DIY и IT.
И, поскольку DIY непосредственно связан с личностью автора и разработчика, хочу поделиться частичкой и своей личности в виде сопровождающего статью плейлиста (https://open.spotify.com/playlist/6A3pDbww5UHBMu8WPsQy5r?si=K3IjrtYPTzKHZSFx2YHwwA). Парадоксально сейчас понимать, насколько многие песни подходили к ситуациям не только хронологически, но и по значению.
Аппаратная часть
2017 год, я студентка, полная энтузиазма и энергии, наконец придумываю идею упрощения эксплуатации умного дома. Но моя учебная специальность - Управление инновационными проектами, а знаний в электронике - минимум. Начав почти с нуля, к концу 2019 года я собрала первый образец: на макетной плате микроконтроллер ESP32 и простейшие датчики температуры, влажности, газа, инфракрасный датчик движения, модуль колонки с Amazon Alexa на плате ESP32-LyraT и модуль камеры на ESP32-Cam.



Появилась задача разработки специальной платы с датчиками и питанием дополнительных модулей. Еще я решила добавить адресные светодиоды для индикации подключения или аварийных показаний датчиков. В течение следующего года я столкнулась со следующими проблемами и вызовами:
Если вы собираетесь для разработки и монтажа электрической схемы и плат обращаться к другим людям (не создавать самостоятельно), самая главная задача - найти квалифицированного ответственного специалиста.
Даже если в техническом задании будут ошибки или упущения, опытный электронщик обратит внимание и даст совет по внесению изменений. С первым разработчиком мне повезло: прислал файлы в срок, отвечал на все вопросы по выбору компонентов и тестированию. Он сразу предупредил, что процесс сложный и многоэтапный: первая версия платы может вообще не заработать. Но, к моему счастью, заработала, а для полной реализации ожидаемой работоспособности понадобилось внести минимальное количество правок.
Монтаж можно заказывать сразу вместе с производством плат, но, как правило, это выгоднее при большом количестве плат. А с частными монтажниками ситуация для меня складывалась сложно: кто-то просил распечатать всю документацию и только жаловался на все подряд, кто-то все сделал хорошо, но при повторном обращении отказался из-за занятости, кто-то допускал ошибки в монтаже, пока только с одним специалистом удалось неплохо сработаться, и даже он значительно повысил стоимость своих услуг в дальнейшем.
Могу выявить только одну закономерность: те специалисты, которые всем недовольны, выражают большое количество сомнений, не дадут хороший результат в конкретном случае. Могут возникать некоторые вопросы, сомнения, но это все и всегда решаемо, важно, чтобы человек был заинтересован в работе над проектом.
Нужно по возможности выбирать минимально уязвимые в монтаже компоненты. Существует, наверное, почти незаменимая микросхема - преобразователь интерфейса CP2102 от SiliconLabs. Цитируя фильм "Быстрее пули" - "самый дизельный дизель на дизельном заводе". Каждый из монтажников плат хотя бы один раз допускал ошибку в монтаже этого преобразователя. Существуют уже готовые целые платы с этим преобразователем, но для конечных потребителей они вообще не нужны: подключение к компьютеру предусмотрено только на этапе производства для загрузки прошивки на микроконтроллер и проверки работы. В итоге было решено оставить разъемы для подключения внешней платы преобразователя, чтобы не нужно было всегда его припаивать. Да, в моем устройстве и сейчас есть чувствительные к температуре пайки элементы, но это хотя бы нивелируется другими важными преимуществами.
Нужно по возможности выбирать доступные компоненты. Микроконтроллеры ESP32 можно купить и во многих российских магазинах и на зарубежных площадках, отличие только в цене. Можно заказывать для тестов пару штук с быстрой доставкой, а для дальнейшего производства - партии подешевле. Сначала мне пару раз доводилось ждать по месяцу, пока придут компоненты, которых не было в широком доступе.
Многие специалисты и энтузиасты предпочитали заказывать печатные платы у китайских компаний и их российских посредников, но для первых тестовых образцов это бывает неоправданно дорого и долго с учетом доставки. Я заказывала у новосибирского производителя, монтажник отметил просто нормальное качество без изысков, но для тестов большего пока не требовалось.
Нужно проводить как можно больше тестов. В ходе тестирования стало понятно, что микроволновый датчик движения точнее инфракрасного, при объединении датчиков с микроконтроллером и схемой питания на одной плате искажаются показания, ESP32-Cam не обладают достаточной надежностью, значительно перегреваются, а ESP32-LyraT не хватает вычислительных мощностей для работы с голосовым ассистентом Алиса. Поэтому было решено разработать новую плату, датчики переместить на отдельную плату, модули ESP32-Cam и ESP32-LyraT заменить на одноплатный компьютер. Уже в ходе тестирования работы одноплатного компьютера была выбрана наиболее подходящая звуковая карта с микрофонами и подключением динамиков. Готовые модули удобно использовать в тестировании, чтобы определять наиболее подходящие компоненты и разрабатывать свои платы с этими компонентами.
Нынешняя модификация включает ESP32-Wroom-E, датчики BME680 (температура, влажность, давление, качество воздуха), MAX44009 (освещенность), D203S (инфракрасный датчик движения), RCWL-0516 (микроволновый датчик движения), 8 адресных светодиодов, а также Orange PI (3B или Compute Module 4) с широкоугольной камерой OV5640 и звуковой картой с двумя MEMS-микрофонами и 5Вт-динамиками.
Корпус
По определению, моделью может быть даже картонный макет, поэтому свои первые пробы габаритов и формы корпусов я делала из картона.

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


Передо мной стояла задача создания корпуса с минимальным количеством деталей, отверстиями для датчиков, звука, объектива камеры, разъемов, полупрозрачной частью для светодиодов. Еще важно было спроектировать соединение деталей таким образом, чтобы можно было корпус при необходимости открыть, закрыть и зафиксировать при завершении производства. С учетом потенциального дальнейшего изготовления методом литья необходима обтекаемая специфическая конструкция, чтобы жидкий пластик мог беспрепятственно заполнять форму для литья. Я решила делать корпус сферической формы из трех деталей с резьбовым соединением: нижнего полупрозрачного дна, основы крышки и декоративной сетки.
Основная сложность была в том, чтобы уместить все компоненты в небольшом корпусе без ущерба качеству (точности показаний датчиков, распознаванию команд и звучанию музыки). При направленности динамиков вниз звук значительно рассеивался, отражался и искажался, поэтому выбрана направленность вверх. Одноплатный компьютер нагревается, поэтому плата с датчиками разделяет небольшой перегородка.

После тестирования и изменения конфигурации плат внесла небольшие коррективы в конструкцию: сетку объединила с основой крышки, изменила параметры резьбы и крепления для плат. Общие группы с платами делала по-прежнему в SketchUp из-за удобной навигации, но саму основную модель уже в Компас-3D.

Пока несколько корпусов я только распечатывала: дважды с помощью FDM-печати, трижды с помощью фотополимерной (2 раза у компаний и один у частного энтузиаста). FDM-печать хоть и не очень дорогая, но подходит только для первых тестов, поэтому для основных образцов я использовала именно фотополимерную. Большое влияние на качество результата оказывают материалы, принтер и постобработка: два корпуса от компаний оказались достаточно прочными, опоры для плат при вкручивании саморезов не испортились, а в корпусе из водорастворимого фотополимера от частника опоры треснули. У одного корпуса от компании была очень хорошая постобработка в пескоструйной камере и покраска, а со вторым пришлось дополнительно повозиться с помощью шлифовальной бумаги.
Программная часть
Программная часть сначала представляла собой скетчи в Arduino IDE и прошивку в ESP-IDF, базу данных в Firebase и мобильное приложение с показаниями датчиков. Но для масштабирования эти решения не подходили.
Я выбрала ESP-Rainmaker - комплексную платформу с готовыми примерами, серверной инфраструктурой, мобильным приложением, возможностью создания собственных прошивок и масштабирования уже с собственным сервером по мере роста продаж.
Сначала я подготовила прошивку с ESP-Rainmaker для микроконтроллера с датчиками и светодиодами в Arduino IDE, затем переработала в ESP-IDF для большего количества функций и параметров конфигурации. Основные сложности возникли с поиском подходящих библиотек для периферии и написанием кода для анимированных режимов подсветки.

Мобильное приложение ESP-Rainmaker достаточно удобное, процесс добавления устройства простой, понятный и быстрый, есть только вопросы к UI (темный текст на темном фоне). Но самое главное - интеграция с другими устройствами и сервисами. Сейчас в ESP-Rainmaker можно добавлять сторонние устройства только с поддержкой стандарта Matter, несколько лет назад и этой возможности не было. Еще ESP-Rainmaker может синхронизироваться с Google Assistant и Amazon Alexa, но в России наиболее популярна Алиса. Вывод: нужно делать собственную интеграцию с Алисой, а в приложении "Умный дом с Алисой" уже можно добавлять устройства других производителей. Разработкой прошивок я занималась самостоятельно, но в веб-программировании у меня не было опыта и знаний, поэтому обратилась к программисту.

Программист создал виртуальную машину, затем настраивал взаимодействие по API. Возникали сложности с вопросами безопасности (нагрузкой, портами, куки) и сохранением данных при перезагрузке сервера.
Затем нужно было реализовать видеонаблюдение, программист разработал python-скрипты для одноплатного компьютера и функции на сервере, подобрали параметры трансляции в FFmpeg и протестировали. Долго не могли понять, почему в приложении "Умный дом с Алисой" на iOS трансляция воспроизводится, а на Android - нет. Только через несколько недель выяснила, что это можно исправить с помощью добавления параметра формата пикселей в команду трансляции.
Для голосового управления и воспроизведения музыки использовались готовые модули, вместе с программистом решали задачи с передачей и обработкой звука, авторизацией пользователя с аккаунтом Яндекса.
Как DIY-проекты могут развиваться
На мой взгляд, чтобы DIY-разработка могла стать коммерциализуемой, помимо представленных задач разработки есть еще три важнейших пункта.
Нужно учитывать мнение потенциальных пользователей и пользовательский опыт. Когда что-то делаем только для себя, функции и дизайн устраивают нас, но будут неудобны для других пользователей.
Я старалась максимально упростить процесс настройки и эксплуатации: больше не нужны замена батареек, дополнительные контроллеры и изучение совместимости устройств. Но в данном вопросе никогда не может быть достаточно: для достижения идеала в дальнейшем хотелось бы больше упростить настройку (сейчас микроконтроллер с датчиками и одноплатный компьютер подключаются к Wi-Fi по-отдельности) и улучшить интерфейс страницы авторизации с Яндексом и настройками.
Нужно быть готовыми ко всему. Если какой-то сервис прекратит работу или будет заблокирован, для своего личного проекта устранение проблемы будет проще, чем для десятков, сотен или тысяч клиентов. За время разработки я сталкивалась с самыми непредсказуемыми обстоятельствами:
В 2020 году срок разработки и монтажа компонентов на платы неоднократно менялся из-за пандемии: сначала болел схемотехник, затем монтажник;
Одноплатные компьютеры значительно подорожали с 2,5 тысяч до 8 тысяч за 4 года: сначала в 2022 года из-за санкций, а потом в 2025 году из-за дефицита на рынке памяти;
С программистом разработали метод авторизации без дисплея в учетной записи Яндекса на одноплатном компьютере с помощью QR-кода. Пока дорабатывали другие функции, Яндекс изменил методы авторизации. Передавать авторизационные данные (непосредственно логин и пароль) через сервер или другие промежуточные элементы было бы некорректно с юридической точки зрения. В короткие сроки пришлось переделывать с нуля, но новый метод оказался даже более надежным - пользователю дается прямой доступ к интерфейсу одноплатного компьютера;
За время разработки практически не использовала нейросети, поскольку во время основного написания программ агенты еще не достигли достаточного уровня развития. Максимум, ИИ-результаты в поисковой системе помогали устранять ошибки. И только сейчас, при добавлении поддержки Matter для устройства, решила обратиться к нейросетям, потому что не могла найти многие детали в документации и примерах. По предварительной оценке, сэкономила пару недель. Поэтому теперь считаю, что есть случаи, когда нейросети могут быть полезными.
Не всегда нужно давать пользователю именно то, что он просит.
Каталоги музыки на российских стриминговых сервисах все больше пустеют и разбавляются ИИ-контентом, поэтому многие предпочитают воспроизведение музыки через Bluetooth-колонки или умные колонки с поддержкой Bluetooth. При этом Bluetooth влияет на звучание и имеет задержки. Было решено добавить пользователям возможность воспроизведения любой музыки из любого приложения без потери качества, поэтому реализована поддержка стандарта беспроводной передачи воспроизведения медиа-контента через Wi-Fi - AirPlay2. Он бесшовно работает с iOS, а для Android нужно только дополнительное приложение (AirMusic).
Особое внимание в рамках этого же пункта уделю стандарту отрасли умного дома Matter.
Matter позиционируется как единый универсальный стандарт для локальной работы устройств, поэтому в последнее время все больше людей интересуются и покупают приборы именно с поддержкой Matter. Но несмотря на растущую популярность, проекту еще присущи недостатки начальных этапов: пользователи жалуются на регулярную потерю соединения, ошибки при подключении и недостаточное количество устройств в продаже.
За последние 2 года я несколько раз пыталась работать со стандартом Matter и столкнулась с аналогичными проблемами лично.
Во-первых, при разработке программ во время компиляции регулярно возникали ошибки, связанные непосредственно с SDK: не найдена библиотека, в одном служебном файле изменен код, но оставлен прежним в других. Очень огорчает сам факт того, что можно разрабатывать только в macOS и Linux, а для Windows нужна прослойка в виде WSL со всеми последствиями. Чтобы не было ошибок с SDK, пришлось скачивать готовый образ в докере (стабильность для Windows тоже оставляет желать лучшего), формировать образ для WSL, и уже этот образ устанавливать.
Во-вторых, когда наконец удалось создать и запустить прошивку для микроконтроллера, в мониторе порта действительно периодически наблюдала прерывания соединения с сетью и ошибки при подключении. То есть, можно все разработать по канону, стараться оптимизировать, а в результате покупатели будут оставлять негативные отзывы из-за того, что практически нельзя исправить самостоятельно .
В-третьих, надо понимать, что именно выбирать в качестве контроллера. По отзывам, что Яндекс Станции, что другие хабы периодически сбоили. У меня есть опыт тестирования с Home Assistant, причем негативный. Возможно, мне просто не везло, возможно, все дело в работе одноплатных компьютеров и \ или SD-карт, но даже связь с самим Home Assistant прерывалась. Ну и специфика проекта Home Assistant направлена на энтузиастов, готовых ради персонализации разбираться в каждом малейшем аспекте, что явно не подходит широкому кругу потребителей. Самое главное - при том, что в мониторе порта я видела все показания датчиков, исходящие сообщения с эндпоинтами и кластерами (устройства и характеристики в Matter), в Home Assistant картина была другой: какие-то датчики вообще не добавились, какие-то не обновляли показания. Вероятно, все дело именно в приложением Matter-Server или интеграции, но в любом случае, это свидетельствует о том, что стандарт не настолько универсален, как заявлено.
В-четвертых, консорциум CSA требует несколько этапов тестирования и сертификации для одобрения продуктов, причем, по некоторым данным, стоимость может превышать 30 тысяч долларов. То есть, процедуру могут себе позволить очень немногие, ждать взрывного роста ассортимента не стоит.
Но я все равно считаю, что Matter - многообещающий проект. Да, предстоит налаживать стабильность, совершенствовать средства разработки, возможно, упрощать сертификацию. Нужно просто немного времени.
При хорошем уровне реализации Matter поможет крупным компаниям увеличить аудиторию. Matter может быть полезен индивидуальным энтузиастам для личного использования без необходимой сертификации. Но для небольших компаний и стартапов барьер сертификации пока значителен.
А пока я нашла, возможно, идеальное решение, сочетающее преимущества Matter и устраняющее недостатки. Это ESP-Rainmaker + Matter. Выше я описывала ESP-Rainmaker, а недавно добавилась возможность интеграции с Matter. Можно при разработке прошивки микроконтроллера добавить код поддержки Matter, а в мобильное приложение подключать не только собственные запрограммированные устройства, но и гаджеты других производителей. Отличительная черта - устройства, разработанные в ESP-Rainmaker + Matter, очевидно, поддерживают не только локальный Matter, но и работу в приложении непосредственно через облако. Таким образом, при сбоях и прерывании соединения через Matter команды отправляются через облако, надежность и пользовательский опыт улучшаются.
Я доработала прошивку с Matter, но не могла понять, почему в приложении некоторые функции работают некорректно. Выяснила, что в мобильном приложении есть ошибка (работает только с одним эндпоинтом). Теперь жду информацию от компании по поводу исправлений, тогда вообще все будет идеально.
Таким образом, DIY может стать чем-то большим даже в таком вопросе, когда одиночные разработчики выявляют какие-то ошибки, предлагают решения или обновления, которые применяют крупные компании.
Теперь, возможно, самый главный вопрос: а почему я вообще думаю, что DIY должен быть чем-то большим? Потому что может. Собственно, вот и ответ на вопрос из заголовка. Под многими статьями про умные дома люди оставляют большое количество комментариев, причем довольно часто начинают описывать свои решения, ставить их в пример. Но часто комментарии могут оставаться без внимания, интересные идеи теряются в информационном пространстве. Поэтому мне кажется, что нужно обязательно делиться опытом более обширно: помимо комментариев писать непосредственно свои статьи, публиковать видео. Ведь в свое время, еще до повсеместного распространения нейросетей, именно благодаря опубликованному опыту других энтузиастов я делала первые шаги в разработке, узнавала много новой и полезной информации, а теперь могу дать какую-то информацию уже сама. Сможет ли МУЗА стать чем-то большим - покажет время, а следить за новостями проекта можно на сайте https://smart-muse.ru.