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
 
Изменено:

Комментарии

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
Искал где настраиваются будильники, оказывается у меня нет одного пункта меню. Снимок экрана 2023-11-23 001904.pngСнимок экрана 2023-11-23 001919.png
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@dina, это Ваш скрин слева, я думал что у меня опять что-то не так. Получается в этой прошивке нет будильников, и как обстоит дело с MQTT?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, уфф... ну и накидали вы... )))

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

На плеер надо звук зациклить ,а не однократное проигрывание (у кдн так было привык)
закиньте в проблемы, дойдут руки, посмотрю, всего не упомню

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

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

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

на есп32 ,Вы запускали 256х64 панель ,какую тогда можно запустить на камне S3 N16R8
я запускал сборку из 4х панелей 64х64, работало сносно. S3 чипов тогда еще не было, поэтому не сталкивался. Лучше про это почитать в тикетах и в дискуссиях самой библиотеки, у меня вообще только один тип панелей был и то давно.


Получается в этой прошивке нет будильников, и как обстоит дело с MQTT?
будильников нет, старая реализация была убрана, новую я еще не сделал. Вообще тут много чего пока нет, проект экспериментальный.
MQTT есть, смотрите вики
 
  • Лойс +1
Реакции: VitalikV

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,По плееру ,были предыдущие ревизии ,где он нормально подхватывался. Хочу потом новый звук эффектов сделать ,без музыки ,чисто всякие природные звуки ,да подлинее файлы.
 
Изменено:

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
По плееру ,были предыдущие ревизии ,где он нормально подхватывался. Хочу потом новый звук эффектов сделать ,без музыки ,чисто всякие природные звуки ,да подлинее файлы.
Да раньше был вполне рабочий вариант. Работал без нареканий.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
не понял что у вас случилось, 5 раз перегрузил контроллер - плеер исправно подключается, статус отображается как "connected"
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Статус конектед ,а звук не включаеться ,пока чекрыжек плеера не передернишь или эффект не переключишь. Там же если звук выводит красный светодиод горит. И ещё при долгом простое плеера без звука (статус конектед) ,при переключении эффекта звук не идет ,чекрыжек плеера передернишь ,эффект переключишь звук идет. Как то так.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
ну так бы и сказали что подключается, но не начинает играть при тех-то и тех-то условиях. А то "автоматом не подхватываеться" поди пойми что там должно подхватиться. Лады, поищу где там что. Вообще сопрягать эту периферию меня уже задолбало... Ща домурыжу подгрузку ресурсов во фреймворке и займусь шиной сообщений.
 
  • Лойс +1
Реакции: Andron-65 и dina

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Сильно там не напрягайтесь , не торопитесь ,ошибок меньше будет))). Меня то же утомляет ,после каждой обновы ,все покругу перебирать))). У нас зима пришла сегодня ,так что зимними вечерами ,усидчивость получше ))).
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@andy040670, Когда хаб панелью обзаведетесь и подключитесь ,в этот веселый процесс?
 

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
ESP, IoT - WiFi лампа - будильник. Обсуждение прошивки FieryLedLamp от alvikskor (перевод MishanyaTS) | AlexGyver Community в этом проекте плеер работает исправно. Будильник тоже. Все просто и логично. Причем плееры работают как оригинал так идругие аналогичные. В прошивке от KDN у меня плеер тоже воспроизводил озвучку эффекта однократно. Писал об этом сразработчикам сказали что плеер нужно другой ставить. Хотя этот же плеер работает и в проекте информера от Игоря и в проекте лампы проект по ссылке выше.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
@andy040670, Когда хаб панелью обзаведетесь и подключитесь ,в этот веселый процесс?
Не-а, панель меня совсем не привлекает, в качестве инфо-панели у меня трудиться Nextion HMI - 7'' + ESP32.
Для меня проект интересен именно как декоративный светильник с функцией будильника.
На данный момент мне нужна новая 16Х16 матрица, старая сдохла, и есп32, так как проект полностью переехал на этот контроллер, а у меня есть только россыпь 8266 и голый ESP32 WROVER I-B, но это слишком жирно для лампы, да и время не хватает. Чуть разгребусь, закажу чего не хватает и подключусь)))

IMG_2.jpg
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
доделал я загрузку объектов на фронтенд, теперь рисовать контролы будет сильно проще и кода требуется меньше. С прошивкой нужно обновить ресурсы на файловой системе.
  • добавил полную настройку hub75 из веб-морды
  • починил падающие эффекты отсюда.
  • подрихтовал "сны", что бы более равномерно бегали по ширине и добавил дополнительный контрол, регирулирующий высоту языков пламени. На панели этот эффект выглядит оч красиво кстати (y)

остальные косячки с эффектами на пол панели оставил на потом.

@dina по поводу падения там есть 2 причины и обе вылезают из thread-safety. Т.к. эффект крутится в отдельном потоке, то текущая схема работы контролов и переключения работает некорректно в некоторых случаях. Кидайте проблемные места, там посмотрим. ЧТо-то можно поправить в коде самих эффектов, что-то подкрутить, но вообще методы управления надо менять целиком и вводить события через шину. Пока раздумываю чем дальше заняться, позакрывать особо больные баги или таки заняться шиной сообщений и потом уже плясать вокруг неё

@andy040670, а что это за экран у вас, можете подробнее рассказать?
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Красота! Выбор хаб пинов работает. Где бы по русски почитать про Глубина цвета, бит, мин частота обновления, Hz ,затенение LAT. Все дефолтное оставил ,глючные матрицы ,все прекрасно! Завтра с утра буду логи ловить.
 
  • Лойс +1
Реакции: vortigont

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
Потихоньку двигаюсь.
Пришли универсальные платы (под модули до 40 ног). Они не совсем под информер, но под это дело тоже сгодятся. Сделаны максимально конфигурируемыми. Плюс сегодня получил матрицу 64*64 с алика. Это разрешение подойдёт?

Пока залил WLED, просто проверить матрицу.

IMG_20231124_093326970.jpg IMG_20231124_161532726.jpg
IMG_20231124_161447171.jpg IMG_20231124_162748962.jpg
 
  • Лойс +1
Реакции: Дрон и vortigont

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
доделал я загрузку объектов на фронтенд, теперь рисовать контролы будет сильно проще и кода требуется меньше. С прошивкой нужно обновить ресурсы на файловой системе.
Интерфейс я использую свой, но раз так, будем посмотреть...)))
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Пока раздумываю чем дальше заняться, позакрывать особо больные баги или таки заняться шиной сообщений и потом уже плясать вокруг неё
Делайте как тестировать удобней ,меньше прыгать ,с пятое на десятое.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
@andy040670, а что это за экран у вас, можете подробнее рассказать?
Ну я же написал Nextion hmi, есть разные разрешения дисплея и цена... (у меня 2 по 7дюмов, стоят в двух комнатах , на кухне LCD 2004.), но цена по отношению 2017, когда брал, сейчас просто пипец. Но очень занятная штуковина)))
Работает strial-(COM порту)
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Где бы по русски почитать про...
по-русски это проблемно... Так-то только в документации в репе самой либы. Еще можно вот в этой теме почитать/спросить.

получил матрицу 64*64 с алика. Это разрешение подойдёт?
ну попробуйте, в общем подойдет конечно, а там как повезёт с панелью.

Интерфейс я использую свой, но раз так, будем посмотреть...)))
можно работать через апи, со стороны вебморды ничего не поменялось. Просто я добавил возможность загружать структуру объектов страницы один раз из предварительно сформированного джейсона, а с контроллера отправлять только значения элементов. С одной стороны это сильно сокращает количество кода для контроллера, с другой придется сильно чаще обновлять ресурсные файлы на ФС. Будем искать компромис.

я же написал Nextion hmi
Я слышал про них краем уха (тут например), но очень сумбурно и скомкано всё. Я так понимаю это не графический экран как таковой, а что-то вроде конструктора виджетов?
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Я слышал про них краем уха (тут например), но очень сумбурно и скомкано всё. Я так понимаю это не графический экран как таковой, а что-то вроде конструктора виджетов?
Совершенно верно, что и привлекательно, использовать его в связке с контроллерами AVR, STM, ESP, и т.д, всё что может слать данные в сериал-(COM), повторюсь, он имеет свой графический движок, надо, создать графику и поля, потом выводить в эти поля данные. Но это кратко. Здесь подробней, а тут интересней.
 
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, О, а я только вот закинул изменение с этими падениями. Добавил мьютекс на использование экземпляра эффекта. Думаю, это решит основные проблемы в падениями во время переключения эффектов.
Если найдете что какие-то эффекты падают во время дергания контролов (особенно масштаб/шкала), дайте знать номер эффекта и желательно стек-трейс. Это надо будет править уже в коде самого эффекта.

Блин, а на панели некторые эффекты прям реально красивые по сравнению с крупной матрицей ) мне даже нравится. Оставил куртиться на столе :))
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,После изменений,эффект переключаешь,он переключаеться ,а контролы от предыдущего эффекта остаються. Страницу в браузере обновишь ,контролы от этого эффекта становяться. ФС не обновлял.