Search

Home > Sprut.AI - разговоры об умном доме > Огненная Wi-Fi лампа на ESP32 – как мы открыли свой маленький свечной заводик
Podcast: Sprut.AI - разговоры об умном доме
Episode:

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

Category: Technology
Duration: 00:00:00
Publish Date: 2021-12-28 16:07:00
Description:

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

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

У нас уже был Wi-Fi контроллер для адресных LED лент с несколькими режимами работы, то есть готовая “умная” гирлянда.

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

1600x_image.png?1640171167
1600x_image.png?1640171399

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

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

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

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

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

1600x_image.png?1640368420
1600x_image.png?1640368417

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

Поэтому мы выбрали подходящий вариант модели корпуса на Thingiverse и начали собирать свой прототип.

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

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

Результат порадовал, вся команда была в восторге.  Начали экспериментировать с режимами работы и смотреть, что придумали участники комьюнити оригинального проекта.

И в какой-то момент случилась та самая магия…. Хотя… стоп. Магия вне Хогвартса запрещена. Просто – случилось кое-что крутое.

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

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

В оригинале присутствует вариативность в зависимости от размеров матрицы и угла ее размещения. Мы убрали этот нюанс, ориентируясь только на матрицу 16х16.

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

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

Все это – плюсы IoT платформы, для тестирования которой все и затевалось. Мы поняли, что у устройства есть перспективы на рынке, поэтому задумались о масштабировании DIY идеи до коммерческого продукта.

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

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


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

1600x_image.png?1640368416

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

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

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

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

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

1600x_image.png?1640368420

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

1600x_image.png?1640368418

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

1600x_image.png?1640174265

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

1600x_image.png?1640174264

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

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

Но здесь нужно учесть несколько нюансов:

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

Полный расклад в долларах:

1600x_image.png?1640175360

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

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

Более того, если вы решите добавить собственные эффекты, далее мы расскажем, как это сделать.

Сделайте форк проекта и клонируйте проект уже со своего гитхаба. 

После клонирования проекта создайте ветку и внесите в нее следующие изменения.

1600x_image.png?1640175359

1. В lib/lenta/lenta.h добавьте метод эффекта.

1600x_image.png?1640175358

2. В LedStripStates добавьте название эффекта.

1600x_image.png?1640175361

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

1600x_image.png?1640175778

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

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

1600x_image.png?1640175778

5. В HandleCurrentState добавьте режим в switch.

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

Чтобы прошить лампу своим кодом:

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

o01-1.jpg

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

А если захотите создать свое устройство на нашей платформе – заходите в гости.

Total Play: 0