Блог 2Smart (RU)

Контроллер LED лент с мобильным приложением – как собрать в домашних условиях

Контроллер LED лент с мобильным приложением – как собрать в домашних условиях
Wi-Fi контроллер для адресных светодиодных лент на базе MCU ESP32 – одно из тех устройств, что разрабатывались нами для тестирования платформы 2Smart Cloud. Контроллер управляется из мобильного приложения, а также с помощью дополнительных способов, доступных всем пользователям: голосовыми командами, телефонным звонком, с помощью команд Telegram-бота. Вы можете собрать аналогичное устройство в домашних условиях, используя наши наработки: принципиальную схему, проект печатной платы, 3D модель корпуса, код прошивки. Рассказываем, как это сделать, а также демонстрируем, как добавить собственные эффекты в прошивку и зарегистрировать контроллер на платформе как собственный продукт.

Сборка платы контроллера


Все технические материалы по созданию контроллера, включая проект печатной платы, можно найти на гитхабе 2Smart Cloud. Прежде всего необходимо использовать Gerber проект для заказа или самостоятельного изготовления платы.

Для сборки контроллера потребуются такие комплектующие:

  • плата ESP32 DevKit – 1 шт.,
  • тактовая кнопка 5x5 smd – 1 шт.,
  • разъем micro USB – 1 шт.,
  • разъем JST 3-PIN с проводом для подключения LED ленты – 1 шт.

Собираем контроллер из комплектующих:

Комплектующие для сборки контроллера LED лент

1 - Припаиваем коннектор для ленты.

Припаивание коннектора ленты

2 - Припаиваем USB.

Припаивание USB порта

3 - Припаиваем кнопку.

Припаивание кнопки

4 - Припаиваем микроконтроллер.

Припаивание микроконтроллера

5 - Подключаем ленту для проверки.

Подключение ленты к контроллеру

Прошивка контроллера


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

  1. Использовать размещенный на гитхабе код прошивки без изменений – в таком случае вам не обязательно регистрироваться в 2Smart Cloud в качестве вендора, достаточно привязать собранное и прошитое устройство к мобильному приложению. Этот вариант похож на покупку готового контроллера в магазине – вы сможете пользоваться только теми режимами, что уже есть в прошивке или появятся в будущем, когда производитель выпустит обновление кода. Производителем, или вендором, в этом варианте выступает команда 2Smart Cloud.
  2. Взять код с гитхаба, исправить идентификатор продукта на свой и использовать контроллер как собственный продукт. В этом случае можно как угодно исправлять и модифицировать прошивку, добавлять новые режимы, настраивать интерфейс мобильного приложения на свой вкус. Вендором становитесь вы сами.

С первым вариантом все просто – нужно только прошить устройство готовым кодом и привязать его к мобильному приложению через стандартную процедуру сопряжения. Инструкция по прошивке приводится в файле readme внутри репозитория.

Что касается второго способа, когда вы сами становитесь вендором, он требует отдельных пояснений.

Создание продукта на платформе и добавление нового эффекта в код прошивки


Чтобы адаптировать готовый код прошивки под себя и добавить новые эффекты контроллера, прежде всего нужно создать новый продукт в кабинете вендора 2Smart Cloud:

1 - На вкладке “Продукты” нажмите “Создать продукт”.

Экран Продукты кабинета вендора 2Smart Cloud

2 - Выберите микроконтроллер – ESP32.

Выбор микроконтроллера

3 - Нажмите “Создать прошивку” и выберите вариант Custom.

Ссылка на инструмент создания прошивки

Выбор базы прошивки

4 - Нажмите на ссылку “Информация о подключении” и оставьте открытым окно с параметрами для подключения продукта.

Ссылка Информация о подключении

Окно с данными для подключения к платформе

5 - Скачайте с репозитория проект контроллера лент. Откройте его в терминале, и в текстовом редакторе внесите необходимые изменения.

Ниже мы продемонстрируем, как модифицировать прошивку, на примере добавления нового режима:

  • в lib/lenta/lenta.h добавьте метод эффекта, в LedStripStates добавьте название эффекта:

Добавление метода и названия эффекта

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

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

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

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

Описание логики эффекта

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

Добавление режима в switch

6 - Откройте файл Firmware/src/main.h и внесите следующие изменения:

  • скопируйте идентификатор продукта из окна “Информация о подключении” в кабинете вендора и вставьте его в поля firmwareName и productId,
  • укажите название точки доступа вашего устройства вместо того, что указано по умолчанию, в поле deviceName,
  • если вы создаете новый продукт, убедитесь, что его версия, указанная в device_version, равна 1.

Добавление данных для подключения в прошивку

7 - Загрузите прошивку на контроллер, подключив его к компьютеру с помощью usb-кабеля. Не забудьте предварительно отключить ленту! 
Используйте для загрузки прошивки команды:

pio run -t uploadfs
pio run -t upload

8 - После завершения процесса прошивки устройство активирует собственную точку доступа Wi-Fi. Подключившись к ней, вы сможете открыть веб-интерфейс контроллера и внести настройки для подключения к тестовому окружению платформы:

✔ подключитесь к точке доступа контроллера – “2Smart Led Strip” (название также можно предварительно изменить на свое в файле main.h) и введите в адресной строке браузера ссылку  http://192.168.4.1 для входа в веб-интерфейс устройства, используйте логин и пароль “admin”,
✔ на вкладке Credentials укажите собственные параметры продукта из открытого в кабинета вендора окна “Информация о подключении”:

  • в поле Login – значение “Логин пользователя”,
  • в поле Token – значение “Sandbox токен” ,
  • в поле Hostname (под спойлером Advanced) введите значение “cloud.2smart.com”,
  • в поле Broker port введите значение “11883”,
  • в поле Device ID скопируйте значение “Идентификатор Sandbox устройства”.

Добавление данных для подключения в веб-интерфейс устройства

  • после заполнения всех полей нажмите Save и перейдите на вкладку Wi-FI веб-интерфейса контроллера, нажмите Scan для поиска доступных Wi-Fi сетей:

Сканирование доступных Wi-Fi сетей в веб-интерфейсе устройства

  • выберите в списке найденных точек доступа свою и введите пароль:

Выбор Wi-Fi сети в веб-интерфейсе устройства

9 - Если все настройки внесены верно, устройство подключится к тестовому окружению 2Smart Cloud, а его статус в кабинете вендора изменится на Ready.

Успешное подключение устройства к тестовому окружению

Настройка и публикация продукта


1 - Нажмите “Создать интерфейс” и настройте внешний вид мобильного приложения. Подробнее о настройке интерфейса - в статье о создании датчика температуры или в цикле статей о создании «умного» Wi-Fi реле.

Ссылка для создания интерфейса мобильного приложения

2 - Протестируйте управление устройством из эмулятора приложения в кабинете вендора или непосредственно со смартфона – не забудьте включить в мобильном приложении Sandbox режим.

Включение Sandbox режима в мобильном приложении 2Smart Cloud

3 - После успешного тестирования устройство готово к публикации на платформе. Осталось загрузить актуальную прошивку на сервер платформы и опубликовать продукт.

Готовый файл прошивки можно найти в папке Firmware/.pio/build/esp32dev/firmware.bin (не забудьте включить отображение скрытых файлов в проводнике, чтобы найти нужную директорию).

4 - Нажмите “Загрузить прошивку” в кабинете вендора и загрузите файл в формате .bin.

5 - Загрузив прошивку, нажмите “Опубликовать”. После публикации продукта он будет доступен для привязки к мобильному приложению по стандартной процедуре, без переключения в Sandbox режим. Подключить устройство к приложению сможет любое количество пользователей.

Привязка устройства к мобильному устройству


Способ первый – без перепрошивки устройства


1 - Для привязки контроллера к мобильному приложению с помощью аккаунта обычного пользователя (без включения Sandbox режима) устройство нужно предварительно сбросить. Для этого зажмите кнопку Reset на 5 секунд, пока светодиод на плате микроконтроллера не начнет мигать с интервалом в 3 секунды.

2 - Вернитесь в мобильное приложение, выйдите из учетной записи и отключите Sandbox режим. Авторизуйтесь с любыми параметрами как обычный пользователь.

Отключение Sandbox режима в мобильном приложении 2Smart Cloud

3 - Нажмите кнопку “Добавить устройство” на экране “Устройства” – запустится процедура сопряжения.

Кнопка добавления нового устройства в интерфейсе мобильного приложения 2Smart Cloud

4 - Выберите в списке доступных для привязки к приложению устройств “Другие”. Затем нажмите “Продолжить”.

Сопряжение устройства с мобильным приложением 2Smart Cloud

Сопряжение устройства с мобильным приложением 2Smart Cloud

5 - Укажите данные вашей Wi-Fi сети, которые будут переданы устройству для подключения к интернету.

Данные Wi-Fi сети для подключения устройства

6 - Подключитесь к Wi-Fi точке доступа контроллера.

Переход к настройкам Wi-Fi мобильного устройства

Настройки Wi-Fi мобильного устройства

7 - Дождитесь завершения процедуры сопряжения.

Сопряжение устройства с мобильным приложением 2Smart Cloud

Сопряжение устройства с мобильным приложением 2Smart Cloud

8 - Теперь ваш контроллер отображается на экране “Устройства”. Вы можете управлять его функциями, в том числе с использованием дополнительных способов: голосовыми командами, телефонным звонком, с помощью Telegram-бота.

Экран Устройства мобильного приложения 2Smart Cloud

Способ второй – с перепрошивкой


1 - Очистите память микроконтроллера – в Mac OS используется команда ./2smart.sh erase_flash -d /dev/tty.SLAB_USBtoUART.

2 - Залейте прошивку на устройство – в Mac OS используйте команду ./2smart.sh write -d /dev/tty.SLAB_USBtoUART.

3 - Привяжите устройство к мобильному приложению аналогично инструкции для первого способа.

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

Тестовое устройство позволит работать над новыми режимами для светодиодной ленты. Его прошивку можно обновлять как по кабелю, так и по воздуху – через веб-интерфейс контроллера (прошивка устанавливается на странице Settings). Подключиться к веб-интерфейсу контроллера можно по его локальному IP-адресу, который приводится в мобильном приложении 2Smart Cloud.

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

Что в итоге


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

Мы также подготовили вторую статью об этом же устройстве – с описанием создания прошивки на базе ESPHome. С ее помощью вы сможете создать совместимую прошивку для контроллера, используя простой инструмент, не требующий умения программировать и использовать программы-сборщики на своем компьютере.

Используя этот пример, вы даже можете открыть небольшой бизнес, выпустив для продажи партию контроллеров LED лент!

Made on
Tilda