Jump to content

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


 Share

Мы занимаемся разработкой (а на данном этапе – скорее развитием уже готовой) облачной IoT платформы. Для того чтобы тестировать ее механики и вообще смотреть на свой продукт глазами клиента, мы с самого начала параллельно занимались простыми проектами “умных” устройств, которые подключали к своей же платформе. Тренировались мы на таких кошках, как розетки с Wi-Fi реле или контроллеры для гирлянд. Поначалу ничего особенного. Но в процессе работы появлялись и такие проекты, которые быстро начали перерастать в нечто более интересное. Об одном из таких кейсов мы и расскажем ниже.

image13.jpg.5bda1cba10bf2c94680574778e782c62.jpg

Как был придуман огненный светильник – с чего все началось

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

image3.jpg.5153ff19743a11687a832232d21c320d.jpg
 

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

image9.jpg.9a4fbdc43ec7d6ace2c6ce98207ae9ad.jpg

 

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

Сделать лучше можно даже гениальную идею

Разумеется, в первую очередь мы просто открыли Google, чтобы посмотреть, как используют светодиодные матрицы другие разработчики. Из первых строчек выдачи мы узнали о лампе Гайвера и ее многочисленных вариациях от последователей этого гуру самодельных устройств.

Лампа Гайвера – проект с действительно классной и перспективной идеей. Можно постоянно придумывать и добавлять новые режимы работы, бесконечно совершенствовать дизайн корпуса, подключать новые способы удаленного управления. И самое главное – результат смотрится по-настоящему круто!

Много раздумывать не стали – перешли к работе над своим вариантом лампы. Сразу отметили, что оригинальный проект построен на базе микроконтроллера ESP8266. Решили, что уже в первой итерации оснастим светильник более современным ESP32, на основе которого делали все свои предыдущие устройства.

Собирать корпус из элементов сантехники и готовых плафонов тоже не стали. В офисе стоит собственный 3D принтер, для начала достаточно было взять готовый проект корпуса на Thingiverse, благо там даже можно выбрать из кучи вариантов дизайна.

image19.jpg.7cdb66e8e65557c0386bb0dc0fe2f465.jpg

Собственно, первая версия прототипа лампы в нашем исполнении была просто репликой готовых решений. Единственное изменение схемотехники – переход на ESP32. Корпус лампы напечатали по скачанному проекту как есть, матрицу и вовсе прикрепили пластиковыми хомутами – кажется, нет в нашем офисе более универсального инструмента. Разве что изолента.

image6.jpg.0842c30254aff828d001d473f158356b.jpg
 

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

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

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

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

Стало очевидно, что результат наших внутренних экспериментов обладает вполне неплохим коммерческим потенциалом. Тем более, что мы можем улучшить готовую идею за счет преимуществ своей IoT платформы, ради тестирования которой все и начиналось. Например, мы можем предложить современное приложение для смартфона, управление с помощью дополнительных способов (голосом в Siri и Google Assistant, звонком с телефона, из бота в телеге), шеринг другим пользователям. Короче говоря, есть что предложить в качестве готового устройства, с которым не стыдно выйти на рынок.

Что решили доработать

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

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

image8.jpg.a47f2d3b0fc4d44b4edb342cdc199518.jpg

С точки зрения железа и упаковки, кажется, ничего не забыли, а вот софтовая часть точно будет дорабатываться. Однозначно будем дописывать новые режимы, вполне могут обнаружиться какие-то баги прошивки… Здесь будет полезен встроенный функционал 2Smart Cloud по обновлению прошивки по воздуху. Новые версии прошивки будут заливаться на сервер, а подключенные устройства сами подхватят обновление по Wi-Fi.

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

Времени до новогодних праздников оставалось немного, поэтому в конце прошлого года мы параллельно занимались сразу несколькими процессами:

  • Покупали комплектующие в местных онлайн-магазинах (доставка с AliExpress заняла бы слишком много времени, хотя покупать детали там выгоднее).
    image18.jpg.0868924827e3e31bfc26fbab9623fdcf.jpg
  • Искали подрядчиков, которые могли бы быстро изготовить печатные платы. Опять же, есть отличные сервисы вроде JTCPCB, но времени ждать доставку плат оттуда у нас не было. При поиске подрядчиков на месте все просто – ищем их в интернете, обзваниваем, сравниваем цены и сроки.
    380672707_image10(1).png.a123e2dbaab5de8597c5fce34d1ddefc.png
  • По максимуму загрузили 3D принтер печатью корпусов.
    image20.jpg.50cd0064dc7e8756f5c6b238c0491b6f.jpg
  • Заказали партию крафтовых деревянных коробок со своим лого.
    image7.jpg.a0c5c5aa5b5eea9fa8f7c7eaf28ca7f6.jpg
  • Написали инструкцию, нарисовали вкладыши и заказали в типографии их печать.
    image21.jpg.5bac12241ffe09f024d261501cb9386f.jpg

В итоге каждая лампа обошлась нам примерно в $39 (1 050 грн). При расчете себестоимости стоит помнить о нескольких нюансах:

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

Вот таблица с полным раскладом в долларах:

image2.thumb.png.804d48b26532d399a3f81badcce21472.png

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

Как собрать такой же светильник самостоятельно

Если вы на этом моменте подумали, что мы пытаемся продать вам свои светильники – вовсе нет. Нам интересно было поделиться своим опытом, а продажа подобных устройств – это скорее эксперименты, которые позволяют нам понять на своем опыте полный путь, который проходят вендоры платформы. Экспериментами мы будем заниматься за пределами этого форума, а читателям поста готовы предоставить все, что нужно, чтобы собрать такую же лампу самостоятельно. Скажем по секрету – мы даже не против, если вы начнете продавать собранные лампы.

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

Для тех, кто решит добавить свой эффект, небольшая инструкция. Вот что нужно сделать:

1. Создать свое ответвление (fork) проекта.

image1.png.eba3e063f0d074a64f849e90f754e8ab.png

2. Клонировать проект уже из своего аккаунта на гитхабе. Используйте команду git clone, вставив скопированную ссылку.

image14.png.cb16f57066ac9bc513c8b84f9ee74b0e.png

image4.png.b11c0501d969edf74433e730fa7e2f49.png

3. После того, как проект был клонирован, создать ветку и внести в нее изменения:

  • в lib/lenta/lenta.h добавить метод эффекта:
    image16.png.22ff9e9d14c501773114e96b964a6d97.png
  • в LedStripStates добавить его название:
    image5.png.d41fce49e5e5b8a0381d25a3af6789ff.png
  • в modes_ к названию эффекта привязать название для отображения в мобильном приложении:
    image11.png.7c83c494d4ced45e8eda3f1184613d3e.png
  • в lib/lenta/lenta.cpp добавить тело метода, где описать всю логику эффекта. Если нужно, добавить вспомогательные методы.
    Важно! Не забудьте, что свечение диодов – также задача режима, для которой нужно использовать команду LEDS.show();.
    image22.png.d7f3d6c632a3861a32b161cd619479d4.png
  • в HandleCurrentState добавить режим в switch: 
    image17.png.b5b831067bc53bceb075cf1f6a6c1c1f.png

4. Собрать прошивку с помощью команды pio run (при этом нужно находиться в папке Firmware).

Файл с готовой прошивкой будет находиться в папке проекта -> Firmware/.pio/build/esp32dev/firmware.bin (если, конечно, при сборке не было ошибок ;) )

Для прошивки лампы своим кодом нужно:

  1. Подключиться к точке доступа Wi-Fi лампы с названием “2Smart Lamp”.
  2. Ввести в адресную строку браузера 192.168.4.1 – для перехода к веб-интерфейсу устройства. Логин и пароль – “admin/admin” (можете не благодарить, что не “qwerty”).
  3. Перейти на вкладку System в веб-интерфейсе:
    image15.png.4eef9026e4e953270dd72232df149a8a.png
  4. Загрузить файл прошивки, дождаться обновления (занимает примерно минуту) и убедиться, что процесс успешно завершен.

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

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

Edited by 2Smart Cloud

 Share

8 Comments


Recommended Comments

А зачем нужен шеринг другим пользователям? В чём смысл?

Link to comment

почему то очень похоже на схему Alex Gyver'а, но за то что делаете респект+

Link to comment

А что за "современное мобильное приложение" и где его брать?

Link to comment

Мне кажется что эти люди просто с*****ли проект Алекса Гайвера (Youtube канал AlexGyver) 

Link to comment

Ну, вообще то, автор и не скрывает, что их команда при разработке вдохновлялась  (назовём это так) проектами, опубликованными в открытых источниках, в т.ч. и у Гайвера. Добавили немного своих идей и реализовали в мелкосерийном производстве.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...