ESP, IoT WiFi лампа/гирлянда/информер ws2812/HUB75 - Обсуждение прошивки FireLamp_EmbUI

FireLamp_EmbUI - деполитизированный форк проекта "огненной" лампы (исходный проект FireLamp_EmbUI)

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

Проект эволюционировал от "лампы" в гибридную прошивку для адресных лент / HUB75 RGB панелей.

Эволюцию проекта и смежные вопросы (архив) в теме универсальный информер/часы/лампа/гирлянда

Примеры работы проекта:



Внимание!
Актуальное описание и документацию можно найти на странице проекта в GitHub, шапка обновляется редко.
Вопросы сообществу можно задать в группе телеграм - LampDevs
Документация доступна в WiKi проекта,.

Концепт
Исходный проект был значительно переписан и реструктурирован. В разработке основное внимание уделяется структуре кода, декомпозиции и объектоориентированности даже в ущерб функциональнсти и "фичам". Основная идея развития - вся конфигурация и управление периферией должна быть максимально доступна во время работы кода без необходимости пересборки всего проекта. Параметры в конфигурационных файлах и опции сборки сводятся к минимуму, упраздняются и заменяются настройками через WebUI.

ESP8266 vs ESP32

Разработка ведется только под контроллеры семейства esp32. ESP8266 морально устарел, было принято решение не тратить время на поддержку совместимости и уделить больше времени и ресурсов актуальной платформе. Последний стабильно работающий на контроллерах 8266 выпуск проекта - версия v3.1.1, используйте на свое усмотрение, корректная сборка с обновлёнными библиотеками не гарантируется.

Бинарные сборки
Самый простой способ залить прошивку это воспользоваться веб-прошивальщиком из браузера. Прошивка работает из Chrome, Opera, MS Edge. Перейдите на страницу ESPWebFlasher и следуйте описаным инструкциям.
Проект можно прошить в чистую плату используя готовые сборки со страницы выпусков. Бинарные образы подготавливаются и прикрепеляются к выпускам начиная с v3.6.0. В списке Assets можно нати архивы factory_images_XX.zip и firmware_images_v3.6.0.zip. Factory - полный образ прошивки готовый для заливки в чистую плату, содержит в себе полный набор компонентов включая образ файловой системы с веб-ресурсами. Firmware - образы для обновления предыдущей версии прошивки, пригодные для заливки по воздуху через WebUI (OTA).


Как собрать проект
Для Windows понадобится установить git, python, platformio, проще всего это сделать с помощью скрипта. Подробнее можно прочесть в WiKi

Легкий способ:
для пользователей Windows OS можно использовать builder скрипт. Билдер был изначально написан @kostyamat (за что ему спасибо), адаптирован под форк текущей комадой (@andy040670).
Запускаете билдер и последовательно проходите шаги установки питона, гит, платформио, клонирование репозитория и сборку требуемого варианта прошивки.

Правильный способ:
Проект собирается с помощью Platformio
Для сборки проекта понадобится следующее:
Установить IDE Visual Studio Code, и, в качестве плагина к ней, установить Platformio. О том как это сделать можно найти массу роликов на youtube, например этот.

Желательно еще установить Git, обновлять проект будет значительно проще

Как скачать/обновлять проект

Актуальный срез проекта всегда можно скачать в виде zip-архива по ссылке, рекоммендуется скачивать последний выпуск со страницы релизов. Для желающих принять участие в тестировании можно поддерживать клон репозитория и подтягивать свежие обновления перед каждой новой сборкой. Открываем Git-bash, клонируем репозиторий в тукущую папку командой git clone --depth 1 --no-single-branch https://github.com/vortigont/FireLamp_JeeUI.git В дальнейшем для того чтобы обновить репозиторий достаточно перейти в папку проекта и выполнить команду 'git pull'.
Рекомендуется периодически обновлять зависимые библиотеки после обновления репозитория, обновление выполняется командой pio pkg update.

После того как вы скопировали проект (в виде zip архива или через git clone), необходимо в папке include скопировать файл user_config.h.default под новым именем user_config.h и в нем настроить сборку под свои параметры матрицы, номеров выводов и требуемых функций.

заметки по установке ПО под windows от @dina
дляпроверки того что всё ПО было установленн корректно в консоли в папке с проектом должны успешно выпоняться следующие команды:
git --version
git pull обновление репозитария
git status
pio --version
pio pkg update - обновление библиотек
pio run -e esp32 -t upload - прошивка
pio run -e esp32 -t uploadfs - прошивка Фс
git switch master - переключение на ветку мастер
git switch feat переключение на ветку feat


Сборка

  • Открываем папку проекта в VSCode
  • Что бы собрать прошивку, можно воспользоваться кнопками в нижней статусной строке:
    • PlatformIO:Build - собрать прошивку
    • PlatformIO:Upload - загрузить прошивку через USB в плату.

Platformio сам скачает необходимые библиотеки для сборки проекта.

Также можно открыть терминал с помощью клавиш Ctrl+Shit+` и воспользоваться расширенными командами для сборки проекта.

  • pio run -t upload - собрать и записать в контроллер проект по умолчанию под платформу esp32
  • pio run -e esp32debug -t upload - собрать и записать версию esp32 с отладкой, будет собрана прошивка под esp32 c выводом отладочных сообщений через serial интерфейс
  • pio deviсe monitor - запустить serial-монитор для просмотра сообщений, выдаваемых контроллером


Для работы лампы нужно сформировать и залить в контроллер образ файловой системы. Выполняется это командой аналогично записи прошивки, но с параметром -t uploadfs, к примеру
  • pio run -t uploadfs - записать в контроллер образ ФС под платформу esp32

После первой прошивки дальнейшие обновления можно заливать в контроллер по воздуху. Для этого нужно зайти браузером на контроллер по URL вида http://embui-xxxx/update, где xxxx это ID контроллера, нажать на кномку 'Firmware', выбрать файл с прошивкой и загрузить его в контроллер. Файл с прошивкой Platformio кладет в подпапки проекта:

  • .pio/build/esp32/firmware.bin - версия под esp32

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

О том как настроить обновление по воздуху (OTA) для своей лампы см страницу проекта на Гитхабе.


Озвучка для мп3 плеера
набор звуковых файлов для MP3 плеера можно скачать по ссылке из WiKi

Говорящие часы / кукушка
- настраиваема озвучка времени почасовая / пол часа / четверть часа
- тихие часы для отключения озвучки по ночам

Будильник
- 4 независимых будильника со своей мелодией у каждого
- каждый будильник может иметь один из режимов на выбор
- однократное срабатывание
- ежедневное срабатывание
- по будним дням
- по выходным дням

Управление
Лампа управляется через WEB-интерфейс или через мобильное приложение WLED-Native-Android, WLED-Native-iOS, старый WLED


Device API описан на странице в WiKi
 
Изменено:

Комментарии

Divin

★★★✩✩✩✩
30 Янв 2021
435
192
@andy040670, ну понятно , что на вкус и цвет все фломастеры разные, но если подойти к этому нетривиально и вместо стандартной пластиковой пипки использовать нечто вроде этого:
изображение_2024-01-19_191940854.png

или этого изображение_2024-01-19_192514531.png

То это наоборот добавляет шарма лампе. кстати @vortigont , возможно ли интегрировать в проект вот эту фичу: https://github.com/isotope-engineering/RGB-Encoder-Board ?
 

Вложения

Изменено:
  • Лойс +1
Реакции: Dhorohiy и vortigont

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Прикол никак. Одна лампа в демо ,на второй эффект огненная лампа всегда.
но если подойти к этому нетривиально
НУ, а почему тогда ESP, такой проект можно собрать и на AVR или STM и будет дешевле.

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

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Приятно иметь запас лощадей под капотом.
STM32 ни чуть не хуже и масштабируемая, местами и лучше, просто нет WI-FI на борту, что для вас не критично.
Но как опцию можно подключить отдельным модулем.
Но поймите, я никак не вас не нашего уважаемого разработчика не хочу никак то упрекнуть, а просто хотелось иметь сабж максимально юзабельным, в этом наше всё!!! Удобство использования, а потом дополнительные функции на любителя, такая тенденция.
 
Изменено:

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@andy040670, Мне,если честно уже не лампа интересна ,а информер на хаб панели. Так как кодил ,я последний раз в 80-х на бейсике и ассемблере ,считай в прошлой жизни.На самдельном синклере. То на данный момент ,я любитель-повторитель ,модульных конструкций :)
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
а информер на хаб панели.
Ооо, я точно не любитель таких громоздких штук)))
В качестве информера я использую более элегантный вариант Nextion, я как то здесь показывал.
А светильник, матрица свёрнутая в трубу, да с эвентами, это наше всё!!! Красиво, элегантно.
Если мне будет нужна вывеска, тогда я задумаюсь о покупке hub, но мне это пока не нужно.
А так, извините если что...
На стм ,я вот это повторил ,лет 10 назад Neil scope 3 работает
до сих пор. Даже не знаю ,что с автором. Он из Славянска
Будем надеется, что всё хорошо он жив и вернётся.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
добавил настройки таймингов для кнопки. Можно менять длительность многократных кликов и интервал длинного удержания.
У кого сенсорная кнопка, должно помочь.
 
  • Лойс +1
Реакции: Alex PAP и dina

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Переработан DFPlayer
- теперь используется другая библиотека, которую тоже пришлось переписать наполовину.
- плеер теперь умеет зацикливать трек эффекта по выбору
- добавлены интро на включение/выключение лампы. По-умолчанию она просто пиликает, но можно заменить трек на свой
- значение регулировки звука дублируется на ТМ экране
- выкинуто старое барахло типа настроек эквалайзера (смешно на этой пищалке), плеера "музыки" (тоже смешно), найстрока индивидуального файла для каждого эффекта, может еще что-то

говорящие часы и будильники будут чуть позже.
Лучше будет или хуже - посмотрим. Эти плееры настолько погано реализованы что я не понимаю чем они вообще заслужили такую популярность :mad:
 

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
@vortigont, Добрый вечер всем .Говорящие часы нужны . а кому не надо можно просто звук не включать. Надо попробовать , думаю будет интересно
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Переработан DFPlayer
- теперь используется другая библиотека, которую тоже пришлось переписать наполовину.
Теперь главное чтоб все чипы завелись, кои китайцы пихают в DFplayer, их как минимум 4. Никогда не знаешь что придёт с Али.
Раньше вроде удалось добиться универсальности.
P/s
Обновил прошивку, ctrl+f5, в итоге пустая вебстраница, фс соответственно тоже обновил/залил.
Страница http://ip/update работает.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
главное чтоб все чипы завелись, кои китайцы пихают в DFplayer, их как минимум 4. Никогда не знаешь что придёт с Али.
это маловероятно вообще, я перешерстил имеющиеся либы и заведенные тикеты, там вакханалия полная. Даже на одинаковые чипы китайцы льют разные прошивки внутренние и чипы ведут себя по-разному. Там в настройках есть переключатель на 3 специфичных протокола, это все что можно сделать. Поэтому хочу свести функционал плеера к минимому. Предсказуемо с ним работать невозможно.

Обновил прошивку, ctrl+f5, в итоге пустая вебстраница
перегенерил ресурсы, индекс оказался пустой

"Говорящие часы" я протестил, худно-бедно работает, но пока не сделал в гуе для них настройки
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Пины плеера не сохраняються ,так -1 и остаёться ,чекрыжик акктивации плеера тоже не сохр.
Функции плеера ,чекрыжики сохраняються.
Мне последние года полтора ,плееры на чипе 2024 приходили. 3200 не приходили. Вот в дебаге.
Прикол вкл чекрыжики эффект соунд и луп эффект ,плеер заиграл ,мелодии по эффектам играет. В настройках гпио ,также -1 и чекрыжек акктивации плеера отключен ,но играет.
Короче какая то своя жизнь ,у настроек плеера ,перезагрузил ,перестал играть.
 

Вложения

Изменено:

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Пины плеера не сохраняються ,так -1 и остаёться ,чекрыжик акктивации плеера тоже не сохр.
Функции плеера ,чекрыжики сохраняються.
@vortigont, ещё заметил такое:
6.png
Я удалял. результат такой же.
Ну тогда не знаю, я не пользуюсь VSC.
 
Изменено:

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
Даже не знаю что еще сделать . Поставил с нуля все на новый ноутбук. все тоже самое. Для эксперимента попробовал собрать WLED. собирается , шьется , работает. почему наш проект не собирается даже ума не приложу . Причем не собирается и на компе и на ноутбуке где вся система с нуля поставлена . VS code и платформио все с ноля

Может есть какая то возможность бинарниками прошиться. Кто то может помочь. или может кто поможет удаленно посредством ани деск прошить.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@Andron-65, вы тип платы не меняли в платформио.ини или своем профиле?
Попробуйте другую плату прописать. Этот файл это определения для пинов для какой-то отдельной платы
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Вообщем потыкал плеер. Работает ,сохраняет. Но ,чекрыжек цикл мелодии ,если один раз акктивировал ,то цикл остаёться. Хоть вкл и откл. его.
Второе ,если выкл. с кнопки или чекрыжека ,остаёться бесконечный блинк ,я так понимаю это звук интро. И вкл. тоже вместо мелодии ,бесконечный блинк. Эффект переключишь ,музыка играет ,блинк уходит.
Мп3 муте ,чекрыжик работает.Это все без снятия питания.
Ну и Анду говорил ,про крякозябры.Так плеер музыку эффектов перебирает нормально ,подправить и рабочие настройки будут. Ну и демо починить ,после перезагрузки не сохр. настройка чекрыжика.
Пока буду тестить на 16х16. На 64х32 ,я дебаг не могу снимать, видать дохрена пинов занято ,где то наверно конфликт. Разбираться не знаю как :(
 
Изменено:
  • Лойс +1
Реакции: andy040670