Огненная Wi-Fi лампа на ESP32 – как мы открыли свой маленький свечной заводик

Блог им. 2Smart


Наша команда разрабатывает облачную IoT платформу, и для тестирования ее механик мы регулярно создаем небольшие проекты: “умные” реле, розетки, гирлянды и т.п. Некоторые проекты получаются настолько интересными, что перерастают в полноценные продукты. Про один из таких кейсов мы и решили рассказать.

Данный кейс – это доработка open source самоделки Алекса Гайвера. Мы не просто взяли готовое решение и наклеили логотип, но и добавили собственные фишки, превратив самоделку в полноценный коммерческий продукт. Наш вариант также полностью open source. Мы делимся всеми исходниками, кодом прошивки и 3D моделями. А также, рассказываем как доработать устройство под себя. В общем, пользуйтесь на здоровье нашим опытом!


Как появилась идея огненного светильника – предыстория


У нас уже был Wi-Fi контроллер для адресных LED лент с несколькими режимами работы – готовая “умная” гирлянда. Контроллер позволяет переключать режимы, менять яркость и задавать цвет свечения диодов. Гирлянда привязывается к мобильному приложению, и управлять ей можно откуда угодно, где есть интернет.



Один из инженеров команды принес в офис адресную LED матрицу 16x16, и мы решили подключить ее к своему контроллеру. Проблем не возникло – все базовые режимы заработали. Мы могли выбрать цвет свечения диодов, запустить режим стробоскопа или классической гирлянды.



Матрица как новое поле для экспериментов нам понравилась. Начали думать, что можно сделать действительно интересное.

Все уже придумано до нас (но мы нашли что улучшить)


Конечно, первое, что мы сделали – это погуглили на тему того, что вообще делают с подобными матрицами другие люди. В топе выдачи оказалась лампа Гайвера и множество ее вариантов от других разработчиков. Вполне интересный и перспективный продукт – масса возможных режимов работы, способов управления и вариантов дизайна корпуса. Ну а главное – выглядит это все очень круто!

Думать долго не стали – решили делать. Обратили внимание, что в оригинальном проекте используется микроконтроллер ESP8266. Сразу определили, что за базу возьмем ESP32 как более современный MCU. К тому же, именно на его основе мы делали все предыдущие устройства.



Бегать по магазинам сантехники и условным Леруа Мерлен в поисках подходящих труб и плафонов тоже не пришлось – свой 3D принтер у нас уже тогда был. Выбрали подходящий вариант модели корпуса на Thingiverse и начали собирать свой прототип.

Кстати, если своего 3D принтера у вас нет, рекомендуем сервис makexyz – помогает найти, где сделать 3D печать, по вашему местоположению.

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



Результат порадовал, вся команда была в восторге. Стало понятно, что идея стоит того, чтобы ее развивать. Начали экспериментировать с режимами работы, смотреть, что придумали участники комьюнити оригинального проекта. И в какой-то момент случилась та самая магия…. Хотя… стоп. Магия вне Хогвартса запрещена. Просто – случилось кое-что крутое.

Огненный режим – “фишка”, сразившая всех наповал


Экспериментируя с лампой, наш разработчик Сережа прикрутил режим Fire, позаимствованный из этого набора эффектов в комьюнити Алекса Гайвера. Логику режима сделали чуть проще – в оригинале присутствует вариативность в зависимости от размеров матрицы и угла ее размещения. Мы убрали этот нюанс, ориентируясь только на матрицу 16х16.

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



Стало понятно, что у устройства есть неплохой коммерческий потенциал. Тем более, что мы можем предложить дополнительные преимущества над теми вариантами, что продаются в интернете или собираются вручную энтузиастами: мобильное приложение с нормальным дизайном, а не из начала 2010-х, дополнительные способы управления (голосовые команды, телефонные звонки, Telegram бот), общий доступ к управлению лампой. Все это – плюсы IoT платформы, для тестирования которой все и затевалось. Мы поняли, что у устройства есть перспективы на рынке, поэтому задумались о масштабировании DIY идеи до коммерческого продукта.

Какие доработки потребовались


Получив заказ на первую небольшую партию светильников, мы определили такой список доработок:

  • добавить сенсорную кнопку для управления лампой – альтернатива мобильному приложению и просто дополнительное удобство
  • предусмотреть расположение кнопки Reset на плате под ̶д̶ы̶р̶к̶о̶й̶ технологическим отверстием в корпусе;
  • стилизовать корпус логотипами 2Smart;
  • подобрать блок питания для полной комплектности набора;
  • подобрать красивый вариант упаковки;
  • добавить в комплект вкладыш с инструкцией.
  • создать компактную печатную плату и предусмотреть в корпусе место для ее скрытого размещения;


По части железа и упаковки вроде бы все продумали, а вот софт наверняка будем еще дорабатывать. Могут вылезти какие-то баги прошивки, точно появятся новые режимы в мобильном приложении… Здесь-то и пригодится функционал нашей платформы по доставке обновлений – достаточно будет залить файл с новой прошивкой на сервер, и все подключенные лампы обновятся по воздуху.

Производство


Поскольку время поджимало – первые 50 ламп нужно было подготовить к началу декабря – мы запустили несколько процессов параллельно:

Заказали комплектующие в местных магазинах (времени ждать доставку с AliExpress не было, хотя там цены ниже).


Занялись поиском подрядчиков для быстрого изготовления печатных плат и сборки устройств. Здесь все просто – гуглим, звоним, сравниваем цены. При наличии времени можно обратиться на jlcpcb или другой подобный сервис, но у нас сроки поджимали.

Максимально загрузили 3D принтер для изготовления корпусов.


Заказали крафтовые деревянные коробки со своим логотипом.


Заказали в типографии печать вкладышей.


Себестоимость одной лампы в нашем случае – около $39. Здесь нужно учесть несколько нюансов:

  • комплектующие покупались в обычных интернет-магазинах Украины – при заказе на AliExpress удалось бы немного сэкономить;
  • корпус распечатывался на собственном 3D принтере, в расходы внесена только небольшая амортизация оборудования и стоимость материалов – при заказе печати на стороне корпус будет стоить дороже;
  • сумма учитывает изготовление коробки и печать вкладыша – дополнительные $6 в цене каждой лампы.


Вот полный расклад в долларах:


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

Как собрать и настроить такую же лампу своими руками


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

Более того, если вы решите добавить собственный эффект, мы подскажем, как это сделать:
Сделайте свое ответвление (fork) проекта и клонируйте проект уже со своего гитхаба.

После клонирования проекта создайте ветку и внесите в нее изменения:
в lib/lenta/lenta.h добавьте метод эффекта:


в LedStripStates добавьте название эффекта:


в modes_ к названию эффекта привяжите название для мобильного приложения:


в lib/lenta/lenta.cpp добавьте тело метода с описанием всей логики эффекта. Если необходимо, добавьте вспомогательные методы.

Внимание! Не забудьте, что свечение диодов – также задача режима, для которой необходимо использовать команду LEDS.show();.

в HandleCurrentState добавьте режим в switch:


Соберите прошивку командой pio run (при этом нужно находиться в папке Firmware).
Готовый файл прошивки будет находиться в папке проекта -> Firmware/.pio/build/esp32dev/firmware.bin (если при сборке не возникли ошибки ;)

Чтобы прошить лампу своим кодом:
Подключитесь к точке доступа Wi-Fi устройства – “2Smart Lamp”.
Введите в адресную строку браузера ip-адрес 192.168.4.1 для входа в веб-интерфейс устройства. Используйте логин и пароль “admin/admin” (спасибо, что не “qwerty”, да).
Перейдите на вкладку System веб-интерфейса лампы:


Загрузите файл прошивки, дождитесь обновления (около минуты) и убедитесь, что процесс успешно завершился.

Пока на этом все. Если вам интересно, как идут наши дела с продажами устройства — пишите в комментариях. Мы напишем об этом отдельный пост, если тема вызовет интерес. Возможно, наш опыт будет полезен тем, кто решит организовать небольшой бизнес по созданию и продаже IoT устройств. А если захотите создать у нас свое устройство – заходите в гости.

24 комментария

avatar
Честно говоря, у меня отношение к IoT примерно следующее. :)



Насчет «бóльших заработков» на закупке деталей в Китае – очень рекомендую статейку "Стоит ли закупать компоненты в Китае". :D
Палёные ESP32 неоднократно попадались… Как и прочие, популярные среди ардуинщиков платы/детальки.

По мне лучше переплатить, и приобрести оригинал у западного магазина, который дорожит репутацией. В крайнем случае у нашего магазине, кто импортирует из Запада… Чем оказаться с распроданной партией устройств, которые начали глючить/гореть у 100 человек одновременно. :)

Но в целом по статейке – да, свои устройства действительно можно создавать, и распродавать. Хоть даже на OLX выложить. :)

Главное, держаться ниже какого-то предела по масштабам(летать под радаром), т.к. в Украине практически нереально легализовать «настоящее» производство электроники, чтобы было прямо всё «по-белому» и можно было ставить штамп «Made in Ukraine».
Так из-за несметного количества регуляций по материалам, излучениям, пожарной безопасности, и т.д. – на всё нужны сертификаты тестирования в лабораториях, обойдуться которые сильно дороже прибыли которую маленький бизнес сможет извлечь с продажи устройства.
avatar
Отношение к IoT может быть разным, однако это реальность которая уже с нами.
Все больше устройств «умнеет», учиться выходить в интернет и обмениваться данными.
Часто это сильно упрощает жизнь, но несет с собой новый спектр рисков. С новыми технологиями всегда так и никуда от этого не деться.

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

Кстати про OLX, спасибо за наводку:)
avatar
>> Главное, держаться ниже какого-то предела по масштабам

В чем проблема масштабов вот конкретно с этими лампами? Клепайте и продавайте на той же розетке. Куча всего с алиэкспресс продается, никаких сертификаторв там нет и не будет.
avatar
ESP32 6,38 USD? Почему не взять сам МК с обвязкой, выйдет вдвое дешевле и прогнозируемеее по качеству.
avatar
Конечно, можно взять MCU ESP32-solo серии, без девборда, действительно выйдет дешевле.
Мы использовали комплектующие, которые были в быстром доступе.
avatar
>> Наша команда разрабатывает облачную IoT платформу
Что за команда, что за платформа?
avatar
Мы разрабатываем облачную платформу для создания и управления «умными» устройствами.
Проект описанный в статье, как раз управляется через нашу платформу и мобильное приложения.
Подробности найдете по ссылке: 2smart.com/
avatar
Кто мы? Разрабатываете в свободное от работы время или живете за счет доходов от этой платформы?
avatar
Мы — имеется в виду команда нашего стартапа, сейчас это 22 человека.
Параллельно разрабатываем, поддерживаем и монетизируем несколько проектов, плюс небольшие частные инвестиции, на это и живем. Платформа — наш основой продукт, который активней всего развиваем.
Комментарий отредактирован 2022-01-31 13:11:19 пользователем 2Smart
avatar
22 человека на самопрокорме? Это серьезный бизнес. Неужели на 2smart.com покупают подписку?
avatar
Помимо предоставления платформы как сервиса по подписочной модели, мы предоставляем услуги IoT-инженерии, консалтинг и разработку для бизнеса.
С нашими кейсами и ценами также можете ознакомиться на сайте:)
avatar
IoT-инженерия — это что такое? Впихивание макетных плат на ESP32 в распредкоробку?
Комментарий отредактирован 2022-01-31 14:07:42 пользователем cg_shura
avatar
Под IoT-инженерией подразумевается проектирование и производство контроллеров для различного оборудования, а также разработка прошивки для них.

К примеру контролер умной теплицы, который реализует полную автоматизацию промышленной теплицы. Он обеспечивает контроль за температурой воздуха, влажностью, содержанием CO2 и другими параметрами, на их основе запускает автоматизированные сценарии вроде полива и проветривания. Также обеспечивает передачу уведомлений в мобильное приложение о заданных событиях и в целом позволяет удаленно управлять теплицей через приложение.

Другой пример — контроллеры для СКУД системы, управляющие электромагнитными, электромеханическими замками и автоматикой с сухим контактом. Он поддерживает локальное хранение достаточного объемного вайтлиста пользовательских идентификаторов и работу с мобильным приложением.

Собственно, как уже писали выше, подробно изучить предоставляемые услуги, а также ознакомиться с решениями, которые мы внедряем при разработке вы можете у нас на сайте:
2smart.com/ru/business
Комментарий отредактирован 2022-01-31 16:41:24 пользователем 2Smart
avatar
«К примеру контролер умной теплицы»

Так есть на это ПЛК и море прочих контроллеров. Какой резон у Вас заказывать? Если бы Вы привели конкретный пример и стоимость — это еще как-то можно говорить.

«Другой пример — контроллеры для СКУД системы»

Тоже, кто в здравом уме будет заказывать разработку, а не купит готовую СКУД?

«ознакомиться с решениями, которые мы внедряем при разработке вы можете у нас на сайте: 2smart.com/ru/business»

А где там подробности? Увидел только набор шаблонных рекламных слоганов, информации ноль.
Комментарий отредактирован 2022-01-31 17:51:09 пользователем cg_shura
avatar
Вы можете использовать и ПЛК, никаких проблем, но система на таких контроллерах куда сложнее в развертывании и настройке. Еще необходима отдельная панель для вывода изображения, управления и программировния, или спаренная с контроллером, но это дороже. Более того, она не предоставляет возможности удаленного контроля и мониторинга без специальных доработок. Наш контроллер из коробки предлагает и удаленное управление, и удаленный мониторинг, и современное мобильное приложение, и современный веб-интерфейс. Наш контроллер вы устанавливаете в теплице, подключаете датчики, настраивайте из удобного интерфейса в браузере и радуетесь жизни. Ни один ПЛК не даст вам такого функционала.

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

Подробности по реализациям вы можете найти на сайте, в разделе «Кейсы» есть кнопки «Скачать PDF». По ним вы найдете детализированную информацию о реализованных проектах.
Комментарий отредактирован 2022-01-31 18:50:06 пользователем 2Smart
avatar
Почитал, про тепловые насосы решение вполне примлемое для производителя. Хотя плата контролера теплового насоса вызывает опасение за работу этого самого теплового насоса )

А про теплицы где?

«Вы можете использовать и ПЛК, никаких проблем, но система на таких контроллерах куда сложнее в развертывании и настройке. Еще необходима отдельная панель для вывода изображения, или спаренная с контроллером, но это дороже. „

Неужели разработка целого контроллера дешевле?

“Наш контроллер из коробки»

Из коробки означает тиражируемую систему, имеющую всю документацию и подробные руководства пользователя. У вас судя по всему этого нет, значит это поделка под конкретного заказчика.
Комментарий отредактирован 2022-01-31 18:55:45 пользователем cg_shura
avatar
Мы бы сказали что решение не просто приемлемое, а отличное!
Решение работает, заказчик и его клиенты довольны, все поставленные требования закрыты. Как вы по фотографиям определили, что плата вызывает опасения — загадка:)

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

А никто и не говорит что дешевле. Мы говорим что функционал, простота развертывания и эксплуатации будут на голову выше чем у реализации на ПЛК. Цена — не единственное конкурентное преимущество:)

«Из коробки» в данном случае подразумевается следующее: установил и все работает без дополнительных модулей и сложных настроек, с привлечением кучи специалистов.
avatar
«Как вы по фотографиям определили, что плата вызывает опасения — загадка:)»

Блок питания странный, какая-то сборка перевернутая. Использование ESP32 в варианте для ардуинщиков, линейник с «радиатором» вместо step down.

Оно и не удивительно, поделка от какого-то радиолюбителя — www.voltlog.com/tag/diy-esp32-arduino-valve-actuator/

Зато исходники на github и ESP32, как сейчас модно.
Комментарий отредактирован 2022-01-31 19:47:30 пользователем cg_shura
avatar
«Как вы по фотографиям определили, что плата вызывает опасения — загадка:)»

Еще порадовали симисторы в SO8-подобном корпусе, греться это все будет неслабо.
avatar
Гадание ̶н̶а̶ ̶к̶о̶ф̶е̶й̶н̶о̶й̶ ̶г̶у̶щ̶е̶ по фотографиям это конечно профессионализм недоступного нам уровня, тут нечем парировать. Разве что несколькими десятками успешно работающих установок, но это ни к чему. В конце концов вам не интересны подробности реализации, просто хотите пообщаться:)
А если нужна помощь с разработкой IoT решения — оставляйте заявку на сайте, с удовольствием проконсультируем, решим вашу задачу, предоставим необходимую документацию, сделаем все в лучшем виде:)
avatar
«Гадание ̶н̶а̶ ̶к̶о̶ф̶е̶й̶н̶о̶й̶ ̶г̶у̶щ̶е̶ по фотографиям»
По какой гуще? Там плата крупным планом, что вам еще надо для анализа? И кстати у чела вышла уже RevC, а у вас на фото RevA, проблемная, судя по блогу разработчика )

«А если нужна помощь с разработкой IoT решения — оставляйте заявку»
А если надо не «IoT-решение» или не на ESP32, потянете?
Комментарий отредактирован 2022-01-31 21:08:48 пользователем cg_shura
avatar
«Решение работает»

А что там в качестве нагрузки у этих 10 симисторов?
avatar
«Решение работает»

Это плохой, негодный принцип системного проектирования. Надо исходить из изначально заложенных основ, а не тыкать в то что «решение работает». Проверка уровня «решение работает» возможна на тиражах в тысячи и времени в года и в итоге дорого обходится.

Реально страшно что сейчас уже становится нормой пихать в пром. оборудования вот такие вот решения. Ардуинщики задали моду на быстрые и дешевые поделки, о последствиях никто не думает.
Комментарий отредактирован 2022-01-31 21:33:14 пользователем cg_shura
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.