Наша команда разрабатывает облачную IoT платформу, и для тестирования ее механик мы регулярно создаем небольшие проекты: “умные” реле, розетки, гирлянды и т.п. Некоторые проекты получаются настолько интересными, что перерастают в полноценные продукты. Про один из таких кейсов мы и решили рассказать.
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Данный кейс – это доработка open source самоделки Алекса Гайвера. Мы не просто взяли готовое решение и наклеили логотип, но и добавили собственные фишки, превратив самоделку в полноценный коммерческий продукт. Наш вариант также полностью open source. Мы делимся всеми исходниками, кодом прошивки и 3D моделями. А также, рассказываем как доработать устройство под себя. В общем, пользуйтесь на здоровье нашим опытом!
Как появилась идея огненного светильника – предыстория
У нас уже был Wi-Fi контроллер для адресных LED лент с несколькими режимами работы – готовая “умная” гирлянда. Контроллер позволяет переключать режимы, менять яркость и задавать цвет свечения диодов. Гирлянда привязывается к мобильному приложению, и управлять ей можно откуда угодно, где есть интернет.
Один из инженеров команды принес в офис адресную LED матрицу 16×16, и мы решили подключить ее к своему контроллеру. Проблем не возникло – все базовые режимы заработали. Мы могли выбрать цвет свечения диодов, запустить режим стробоскопа или классической гирлянды.
Матрица как новое поле для экспериментов нам понравилась. Начали думать, что можно сделать действительно интересное.
Все уже придумано до нас (но мы нашли что улучшить)
Конечно, первое, что мы сделали – это погуглили на тему того, что вообще делают с подобными матрицами другие люди. В топе выдачи оказалась лампа Гайвера и множество ее вариантов от других разработчиков. Вполне интересный и перспективный продукт – масса возможных режимов работы, способов управления и вариантов дизайна корпуса. Ну а главное – выглядит это все очень круто!
Думать долго не стали – решили делать. Обратили внимание, что в оригинальном проекте используется микроконтроллер ESP8266. Сразу определили, что за базу возьмем ESP32 как более современный MCU. К тому же, именно на его основе мы делали все предыдущие устройства.
Бегать по магазинам сантехники и условным Леруа Мерлен в поисках подходящих труб и плафонов тоже не пришлось – свой 3D принтер у нас уже тогда был. Выбрали подходящий вариант модели корпуса на Thingiverse и начали собирать свой прототип.
Кстати, если своего 3D принтера у вас нет, рекомендуем сервис www.makexyz.com – помогает найти, где сделать 3D печать, по вашему местоположению.
В первом варианте лампы никаких изменений кроме перехода на ESP32 мы не вносили. Корпус также был напечатан как есть, а матрицу установили с помощью стяжек – второй по универсальности инструмент в нашей лаборатории, после изоленты.
Результат порадовал, вся команда была в восторге. Стало понятно, что идея стоит того, чтобы ее развивать. Начали экспериментировать с режимами работы, смотреть, что придумали участники комьюнити оригинального проекта. И в какой-то момент случилась та самая магия…. Хотя… стоп. Магия вне Хогвартса запрещена. Просто – случилось кое-что крутое.
Огненный режим – “фишка”, сразившая всех наповал
Экспериментируя с лампой, наш разработчик Сережа прикрутил режим Fire, позаимствованный из этого набора эффектов в комьюнити Алекса Гайвера. Логику режима сделали чуть проще – в оригинале присутствует вариативность в зависимости от размеров матрицы и угла ее размещения. Мы убрали этот нюанс, ориентируясь только на матрицу 16х16.
Когда появился огненный режим, то в комбинации с прозрачным плафоном вау-эффект оказался колоссальным. А руководитель параллельного проекта в компании загорелся настолько, что сразу заказал небольшую партию из 50 устройств – на подарки партнерам к Новому году.
Стало понятно, что у устройства есть неплохой коммерческий потенциал. Тем более, что мы можем предложить дополнительные преимущества над теми вариантами, что продаются в интернете или собираются вручную энтузиастами: мобильное приложение с нормальным дизайном, а не из начала 2010-х, дополнительные способы управления (голосовые команды, телефонные звонки, Telegram бот), общий доступ к управлению лампой. Все это – плюсы IoT платформы, для тестирования которой все и затевалось. Мы поняли, что у устройства есть перспективы на рынке, поэтому задумались о масштабировании DIY идеи до коммерческого продукта.
Какие доработки потребовались
Получив заказ на первую небольшую партию светильников, мы определили такой список доработок:
- создать компактную печатную плату и предусмотреть в корпусе место для ее скрытого размещения;
- добавить сенсорную кнопку для управления лампой – альтернатива мобильному приложению и просто дополнительное удобство;
- предусмотреть расположение кнопки Reset на плате под ̶д̶ы̶р̶к̶о̶й̶ технологическим отверстием в корпусе;
- стилизовать корпус логотипами 2Smart;
- подобрать блок питания для полной комплектности набора;
- подобрать красивый вариант упаковки;
- добавить в комплект вкладыш с инструкцией.
По части железа и упаковки вроде бы все продумали, а вот софт наверняка будем еще дорабатывать. Могут вылезти какие-то баги прошивки, точно появятся новые режимы в мобильном приложении… Здесь-то и пригодится функционал нашей платформы по доставке обновлений – достаточно будет залить файл с новой прошивкой на сервер, и все подключенные лампы обновятся по воздуху.
Производство
Поскольку время поджимало – первые 50 ламп нужно было подготовить к началу декабря – мы запустили несколько процессов параллельно:
- Заказали комплектующие в местных магазинах (времени ждать доставку с AliExpress не было, хотя там цены ниже).
- Занялись поиском подрядчиков для быстрого изготовления печатных плат и сборки устройств. Здесь все просто – гуглим, звоним, сравниваем цены. При наличии времени можно обратиться на https://jlcpcb.com/ или другой подобный сервис, но у нас сроки поджимали.
- Максимально загрузили 3D принтер для изготовления корпусов.
- Заказали крафтовые деревянные коробки со своим логотипом.
- Заказали в типографии печать вкладышей.
Себестоимость одной лампы в нашем случае – около $39 (1050 грн). Здесь нужно учесть несколько нюансов:
- комплектующие покупались в обычных интернет-магазинах Украины – при заказе на AliExpress удалось бы немного сэкономить;
- корпус распечатывался на собственном 3D принтере, в расходы внесена только небольшая амортизация оборудования и стоимость материалов – при заказе печати на стороне корпус будет стоить дороже;
- сумма учитывает изготовление коробки и печать вкладыша – дополнительные $6 в цене каждой лампы.
Вот полный расклад в долларах:
Цена готовой лампы на рынке начинается от $65, и в эту стоимость не входит подарочная крафтовая коробка. Даже ориентируясь на этот минимум, мы получим неплохую доходность, если запустим коммерческое производство таких ламп. При этом у нашего варианта устройства будут такие конкурентные преимущества, как более продвинутый микроконтроллер, обновляемая по воздуху прошивка, современное мобильное приложение.
Как собрать и настроить такую же лампу своими руками
Запуск продаж огненной лампы нашей компанией как раз в процессе. Но, рассказывая о ней, мы точно не настаиваем, чтобы вы ее покупали именно у нас, если устройство показалось интересным. Любой желающий может собрать лампу своими руками – все необходимое мы выложили в репозиторий на гитхабе: Gerber проект платы, список комплектующих, код прошивки.
Более того, если вы решите добавить собственный эффект, мы подскажем, как это сделать:
- Сделайте свое ответвление (fork) проекта.
- Клонируйте проект уже со своего гитхаба. Сделать это можно командой git clone, вставив скопированную ссылку.
- После клонирования проекта создайте ветку и внесите в нее изменения:
в 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 веб-интерфейса лампы:
4. Загрузите файл прошивки, дождитесь обновления (около минуты) и убедитесь, что процесс успешно завершился.
Пока на этом все. Если вам интересно, как идут наши дела с продажами устройства – пишите в комментариях. Мы напишем об этом отдельный пост, если тема вызовет интерес. Возможно, наш опыт будет полезен тем, кто решит организовать небольшой бизнес по созданию и продаже IoT устройств. А если захотите создать у нас свое устройство – заходите в гости.