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

Комментарии

bort707

★★★★★★✩
21 Сен 2020
3,046
909
Думаю информера с эффектами и переходами еще нет ни у кого
съездите в турцию, посмотрите на их вывески на матричных панелях :) Каких только эффектов и переходов там нет. Тексты бегущие и пульсирующие, расширяющиеся, вращающиеся и тд...Я как человек в теме :) рассматривал все это с большим интересом :) Причем уверен, что это не местное творчество, а готовые китайские контроллеры за 5-10 баксов.

матрица 64 на 128, 1/32 скан., я его собирал. Единственный минус скорость бегущей строки очень маленькая. И автор сказал что увеличить невозможно.
автор выдумывает :) Ничего такого особенного в матрице 128х64 нет, люди собирают в разы большие экраны из этих матриц и все там двигается нормально - @vortigont не даст соврать, он хаб матрицы знает
 
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
так, я там поправил багу из-за которой могли быть падения при включении лампы. У меня стабильно воспроизводилось на эффекте огонь2018. Сейчас вроде норм.
часовая зона не выбираеться
да, я там тоже заметил проблему, это в свете большой переделки с мкутт. Утрясу в ближайшее время

готовые китайские контроллеры за 5-10 баксов
ну насчет 5-10 я сильно сомневаюсь. 5-10 это вот есп32 и самоделки ) А контроллеры под панели, которые можно нормально рулить + софт под них стоят сильно дороже. Хотя я давно в ту сторону не смотрел, может уже что и вышло массовое. Но КМК на рекламе денег грех не срубить :)

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

dina

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

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

vortigont

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

постулируется 24битный цвет, но если собрать дисплей из десятка панелей - из-за расхода памяти и ограничений алгоритма глубина цвета будет автоматически понижена чуть ли не до моих 4бит
дело там не в памяти, вернее не столько в памяти. Алгоритм BCM накладывает математическое требование на количесво прокачиваемых по шине данных, что в свою очередь выливается в "чем глубже цвет, тем меньше скорость обновления панели", т.к. частота тактирования шины ограниченна самой панелью. Даже при неограниченной памяти частота обновления будет падать с ростом динны каскада и чистый 24х битный цвет уже на 64х128 будет очень сильно мерцать. Бороться с этим можно 2мя способами - загрублять алгорим BCM теряя в динамическом диапазоне (то что реализованно в либе фаптастика) или снижать разрядность цветов, тем самым снижая нагрузку на BCM.
Вообще для информера где в основном текст выводится даже 256 цветов вполне хватит. Но вообще это отдельная тема для обсуждения.
 

digex

✩✩✩✩✩✩✩
16 Окт 2023
7
0
Последний билд.

1. Кнопка не работает
C++:
#define ESP_USE_BUTTON
#ifdef ESP_USE_BUTTON
#define BTN_PIN                  (4)
#define PULL_MODE                (LOW_PULL)

2. MQTT не сохраняются настройки.



Многие эффекты фризятся на 1 кадре. Например 6. Метель

@digex, если потрудитесь описать принцип работы HA, то я учту это в структуре контроля через MQTT.



Принцип работы, лучше оф мануала, вряд ли получится обьяснить -

Mqtt discovery , чтобы не копаться в конфигах, чем больше возможностей передать в json, тем интереснее можно создавать карточки.

Mqtt light - управление освещением.

Снимок экрана 2023-10-21 191254.png

В esphome это уже реализовано https://github.com/esphome/esphome/tree/dev/esphome/components/mqtt
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
тиснул правки с несохранением настроек и еще кое что по-мелочи. Если еще что найдете по интервейсу - пишите. Тут сейчас много что тормошится в фреймворке, возможно всякое. Желательно еще обновить сркипты на ФС, исправлены проблемы с найстройками времени.

Кнопка не работает
а что у вас за кнопка? В логах что-то есть?

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

digex

✩✩✩✩✩✩✩
16 Окт 2023
7
0
что у вас за кнопка? В логах что-то есть?
Кнопка сенсорная. Пробовал менять пины, потом заменил на механическую с изменением подтяжки. Никакого эффекта, и в логах тоже.

Если можете с этим помочь - дайте знать
Чем смогу - помогу конечно
 

vortigont

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Блин почистил кэш браузера телефона, помогло.Как то забываеться все. Как стареть не охота.
По последнему обновлению. Интерфейс. Язык не выбираеться (только англ) , часовая зона не работает ,System setup не работает. Настройка лед дисплея ,лимит тока выбираеться ,не сохраняеться (всегда 2000 ма) Остальное вроде все сохраняет. Кнопка механическая работает, всю морзянку отбивает. Матрица 16х16 ,какие эффекты успел поглядеть ,вроде все в норме. Теперь у меня 2 макетки для тестов ,с полным обвесом 16х16 и 32х64. Буду сразу на 2 глядеть.🧐
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Язык не выбираеться (только англ) , часовая зона не работает ,System setup не работает. Настройка лед дисплея ,лимит тока выбираеться ,не сохраняеться (всегда 2000 ма)
  • язык да, что-то не работает - гляну
  • часовая зона у меня работает норм
  • System setup и ток посмотрю

@digex,
- кнопка вон dina говорит работает, проверьте не активирован ли у вас в конфиге энкодер, если правильно помню они взаимоисключающие
- по мкутт я тогда как доделаю желаемое, дерну вас поработать над шаблонами к ХА и потестировать. Автодискавер для него я накидаю, но дальше данные нужно будет вытаскивать из джейсонов
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Часовую зону ,самый первый раз получилось выставить. Потом после перезагрузки ,все назад слетело и больше ,нажимая на кнопку выбрать не дает ,выкидывает в основное меню.
Дополняю. На последней прошивке ,часовой пояс ,один раз дает выставить ,после перезагрузки слетает ,выставить не даёт. Хаб 75 чекрыжик очищать лампу при смене эффектов ,после его акктивации и переключением на следующий эффект панель не горит. Нужна деакктивация и перезагрузка. При выкл и вкл лампы ,без снятия питания ,то же панель не горит ,нужна перезагрузка. Те же манипуляции на вс 2812 16х16 ,проблем не вызывают. Это из того ,что пока нашел. Долго рыл, понять не мог ,почему хаб 75 тухнет.
С энкодером она вообще не собираеться. У меня кнопка на 5 и 33 пине работает.
 
Изменено:
  • Лойс +1
Реакции: vortigont

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
Попробовал будильник - рассвет) Не работает. Ни будильник, ни рассвет. Может как-то по особому включать надо? Есть инструкшн какой?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
залил пачку мелких правок, для чистоты проверки нужно перезалить ФС и сбросить системный конфиг, т.к. там обновился файл с таймзонами

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

@dina спасибо за кропотливые тесты!

будильник-рассвет я х.з., он был завязан на события и как он настраивается я понятия не имею, документации нет. Я выкинул связанные с ним режимы тут и там, поэтому сейчас он не работает. Когда-нибудь я его перепишу на что-то более вменяемое. Пока можно начать собирать ТЗ к нему, т.к. я не оч представляю зачем народ им пользуется и как он должен работать. В каждой прошивке какие-то разные схемы реализованны.
Как по мне, то будильник в лампе странная штука, вы с лампами спите рядом что-ли? Если нет, то как ее выключать когда она орать начнет?
 
  • Лойс +1
Реакции: dina

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
Как по мне, то будильник в лампе странная штука, вы с лампами спите рядом что-ли? Если нет, то как ее выключать когда она орать начнет?
Ну часы то в лампе есть. Зачем рассвет? - Для того, чтобы просыпаться комфортнее до включения звука от того, что стало светло. Так реально вставать легче. У меня старый телефон на андроид сейчас почти так будит. А будильник, хотябы обычный - прям очень надо. А выключается будильник прикосновением к кнопке сенсорной. И орать он сразу не начнёт - сделать программно или в самой мелодии постепенное нарастание громкости.
У меня лампа как ночные часы работет ( светит синенькими циферками ). А ещё постоянно включен эффект с драже под микрофон на маленькой яркости. Когда ночью храплю - жена смотрит на цветные пятнышки))))
 
  • Лойс +1
  • Ахах! +1
Реакции: dina и vortigont

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
будильник-рассвет я х.з.
Рассвет надо ,хорошая фишка ,можно же без звука пользовать.Вон неопалимую купину туда с нарастающей яркостью ,заглядение будет. Мах 7219 приехали,готов для тестов.
Кнопка закоментирована ,энкодер раскоментирован.
 

Вложения

  • 14.2 KB Просмотры: 1
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
лады, как сформирую общую архитектуру системы сообщений, тогда сделаю рассвет-будилку нормально. У проекта вырисовывается довольно функциональный АПИ.

@dina, закомментируйте в юзерконфиге строку #define ENC_GBRI_CLICK, оно уже не актуально, не знаю как затерялось. Я потом уберу из кода ошмётки. Под макс-модули пока нету ничего )
Вы хаб панель не глядели с последними измениями перестала гаснуть намертво после выключения, нет?

Народ, вы можете потихоньку аккуратно заполнять свои хотелки в Issues проекта - упорядочивание оно только на пользу пойдёт.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,#define ENC_GBRI_CLICK помогло.Не было времени ,попробую сегодня перешить ,проверить.Хаб 75. Вообщем все тоже самое. Систем сетуп не работает ,часовая зона не работает. Добавились заметные тормоза в общий интерфейс ,при манипуляциях. С очисткой при смене эффектов то же самое. Единственное изменение при выкл и вкл ,стартует на первом кадре эффекта и статичная картинка. Ну и артефакты добавились в эффекты которые работали ,артефакты одинаковые. Шил с полным стиранием. Я на гите не увидел ,Ваших последних изменений ,там они 4 дневной давности.

@vortigont,Вообщем в итерфейсе ,все заработало , кроме языка ,тормозов нет. Очистка эффектов ,панель темная. Вкл.Выкл. Статичная картинка ,наверно первый кадр. И эти артефакты ,если правильно понял ,появляються ,после вкл не рабочего эффекта и перезагрузки. Так же некоторые эффекты которые работали ,поломались. Матрица 16х16 вроде ,все работает. Энкодер ,что есть то работает.
 

Вложения

Изменено:

vortigont

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Номера рабочих эффектов ,я в исуе писал. Флажек "очистка эффекта" в настройках выключен.Выбран эффект купина. Включается чекрыжек "включить" в вебморде.Эффект крутиться. Выключается чекрыжек "выключить" в вебморде. Включаеться, Эффект купина висит на 1 кадре (статичная картинка) .Перезагружаю по питанию. Эффект купина снова ,работает. Флажек "очистка эффекта" в настройках включен , картинки нет. Выключаю флажек очистка эффекта ,перезагружаю по питанию ,эффект работает. Как то так. Слепой ,безногого на себе несет и вместе они идут ))) Именилось при вкл и выкл поведение ,теперь статичная картинка (до этого темно было) ,рабочие эффекты некоторые поломались. И артефакты добавились ,иногда ,связи не нашел. P S
Про 1 кадр. Чекрыжек очистка эффекта откл. Вкл.чекрыжек включить. Эффект купина работает. Переключаем на эффект матрица ,матрица работает. Выкл. чекрыжек выключить. Вкл. чекрыжек включить ,статичная картинка последнего эффекта (матрица) ,переключаем на эффект купина (статичная картинка матрицы). Панель 100% рабочая. артефакты на лампе. Появились после последнего обновления.
 
Изменено:

vortigont

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

dina

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

Брякомякс

★✩✩✩✩✩✩
14 Янв 2023
95
20
Что-то я запутался…а на этот проект есть рекомендации по плате? А то я нашел на гите только ссылку на архив на ЯД, где плата под обычный Wemos Mini 8266, а актуальные версии они ж под esp32