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

Комментарии

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
У вас на 8266 лампа?
Да.
Какие фичи включены в сборку?
Кнопка и микрофон.
да вроде тоже все работают, бегают огоньки. Как оно было - не знаю, попробую сравнить с версией из мастера.
Там не просто огоньки, а должно быть пламя, оно как бы прорывается с дикими искажениями.
в смысле что на некоторых значениях ничего не выводится? так вроде цвета меняются.
Да, на некоторых значениях всё пропадает, на некоторых выводит чистый цвет.
артефактов вроде не замечал в режиме "демо", но посмотрю еще
Это хорошо заметно если следующий эффект на тёмном фоне. А если перейти с белой лампы на нулевой эффект, то белая лампа и останется.
ну, кстати, тоже на есп32 с этим проблем я незаметил, затухает нормально. Единственное что при смене эффекта иногда видимо угасает не до конца и если следующий эффект яркий, то выглядит не очень...
Этот баг появился на последнем коммите мастера, потом вы поправили в feat (я писал в каком коммите где то выше), а потом опять всё сломалось.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
починил "шары", "змейки" и 0й эффект гасит матрицу.

Это хорошо заметно если следующий эффект на тёмном фоне
на есп32 не проявляется, тыкал-тыкал, не заметил.
В режиме демо при смене эффектов тоже проявляется или когда кнопки в гуи тыкаешь?
 
  • Лойс +1
Реакции: andy040670

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
В режиме демо при смене эффектов тоже проявляется или когда кнопки в гуи тыкаешь?
Без разницы.
Сейчас это менее заметно чем было раньше, проявляется не всегда и не так явно, но если погонять по эффектам, то можно увидеть.
На пример при переходе с первого на второй эффект и обратно.
Упс! забыл добавить:
Белая лампа:
Масштаб 255
Смещение 255

Цвета:
Скорость 255
Масштаб 255
Режим 2
 
Изменено:

vortigont

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

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

По артефактам при переключениях так и не смог их поймать. 8266 подключить к матрице тоже пока не смог, вероятно это спецефично для этой платформы. Нужно что бы еще кто-то проверил у себя.
 
  • Лойс +1
Реакции: Дрон

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Че то через VSC не хочет прошивка заливаться.ФС заливаеться. ЕСП 8266.

Вот
 

Вложения

  • 5.9 KB Просмотры: 3

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@andy040670,что скачал с первой страницы ссылку,то и шью.Я и прошлый раз качал от туда 8266 шилась.

@vortigont, Дык до этого из этой папки, без проблем всё шилось.Ни разу не ругалось на кириллицу.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina,
ну вы либо не собрали прошивку и пытаетесь ее прошить, либо собираете одно, а шить пытаетесь другое. написано же что файл не найден.
По-умолчанию собирается под esp32, что бы собрать под 8266 выберите другой профиль в VSCode, либо откройте терминал и там введите
`
pio run -e esp8266 -t upload
pio run -e esp8266 -t uploadfs
`
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
В VSC правильно выбирайте [env], проект один, а сред несколько.
 
  • Лойс +1
Реакции: dina

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@andy040670, Все спасибо получилось через env.Я вообще не специалист по VSC ,вот чето новое узнал.С первого раза не заработало ,всё подключилось и управлялось в браузере ,только лента не горела , там в конфиг файле по умолчанию на D3 ,кнопка и пин ленты. Перепрошил пин кнопки изменил ,заработало. И ещё вопрос лед индикатор ТМ1637 и энкодер ,работать будут? Очень рад ,что соундпак который мы с женой подбирали в шапке.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Теперь бы про энкодер ,тм 1637 и управление ,через транзистор ,как бы узнать работает? Я кдн лампу из принципа разобрал, все запчасти остались. Назад вернуть не долго ,только бы знать.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina,
собирайте, тестируйте - нам расскажете. Что-то может работает, что-то нет. Пока есть время я ковыряюсь потихоньку, в основном переписываю компоненты по-новой, в той или иной мере. Многое тут нужно переписывать целиком, как тот же энкодер, код очень небезопасный.
Если будете собирать лампу - не ставьте туда 8266, ставьте есп32.
Я тут погонял 8266 немного, прицепил на проводках к матрице - как-то все тухло совсем.
Как есть в проекте с устаревшим ядром и устаревшей либой фастлед иногда вылезаеют артефакты при переходах между эффектами и при смене яркости (@andy040670 о них говорил), не страшно, но неприятно.
Со старым ядром и новой либой в целом ровно, но на матрице постоянно мелькает один светодиод в одном месте. Что адски бесит.
С новым ядром и новой либой все почти идеально, артефактов нет. Почти - потомучто постоянно зависает либо изображение на матрице либо вся еспшка... Плюнул на нее нафиг короче... На есп32 все практически идеально.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Ну я в отпуске с понедельника, время есть.Есп 32 есть . Тогда ,я собираю ,лампу кдна на 8266, там все работало,прошивка осталась (1637,энкодер,мп3,упр.транзистором,микрофон). И Вашу лампу на есп32 ,с таким же обвесом, на макетке втыкалке.Можно будет 2 рядом тестировать.По большому счету я в энкодере ,2 режима использовал ,вкл выкл. и регулировку яркости. Рег. скорости ,масштаба итд. вообще не использовал.Есть у меня еще какая то есп32 s2 или с3 поищу.Когда соберу,напишу.Нашел есп 32 с3 есть.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
мп3 я подключил, кстати. Выкинул из есп32 версии работу через SoftwareSerial, теперь работает через аппаратный порт.
Кто-нибудь помнит чем должны отличаются режимы озвучки:
- "имя эффекта"
- "эффект (сброс)"
- "мп3 плеер"

У меня работает только "эффект (сброс)", меняет музыку под каждый эффект. Остальные что дают пока не понял.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,К каким пинам есп 32 подключать лучше обвес, что бы не было ограничений (тм1637, энкодер,мп 3, микрофон, упр транзистором) и как их прописывать в конфиг файле? Например у есп 8266 пин D2 подключаешь к D2 на плате. У есп 32 ,видел 13U это G13 на плате.Щас залил прошивку в есп 32 с дефолтными пинами из конфиг файла ,акктивировал нужный обвес, если пойдет буду собирать. Не ругайте нуба.
 
Изменено:

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Кто-нибудь помнит чем должны отличаются режимы озвучки:
  • "имя эффекта"
  • "эффект (сброс)"
  • "мп3 плеер"
Имя эффекта: должны быть мп3 файлы с именами эффектов в папке 02 в место дефолтных. Никто не проверял, но должно работать.
Эффект (сброс): тут вы разобрались.
Мп3 плеер:
222748.jpg
Тут всё работало.
 
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina,
для есп32 по большому счету это не так критично, она умеет переназначать пины свободно кроме некторых особых случаев.
Нумерация выводов зависит от платы, на дурацких вемосах зачем-то используют свою маркировку типа D1,D2 и пр. На прочих платах обычно нумерация совпадает с нумерацией GPIO на чипе. В конфиге лучше указывать нумерцию по gpio, просто голые цифры в соответсвие со своей платой.
Т.е. микрофон лучше подключать на выводы 34,35,36,39, цифровые ноги не важно куда. Вот здесь есть хорошая таблицы по назначению выводов есп32.
Для 8266 надо бы написать схему в конфиге, там все не так просто.

@andy040670, да уж... без пол литры не разберешься... добавлю в ридми
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Вообщем поглядел пока без энкодера ,тм1637 вообще не работает,управление через транзистор уровень не меняеться (тестером замерял) ,микрофон чето дергает (надо где нибудь про подключение и калибровку почитать) ,но не во всех эффектах с микрофоном. Надеюсь я правильно прошивку залил env esp32 fs esp32 ? Еще при акктивации микрофона ,много эффектов со значком микрофона не работают.В ладоши похлопаешь ,че то помигает.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
На 8266 микрофон работал нормально, но последние изменения уже в мастере я не пробовал, так как у меня на матрице опять отвалился светодиод, заниматься реставрацией пока нет времени, занят другими делами.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
периферией я еще не занимался, всё как есть в том состоянии из руин репозитория с которого мы это подняли с Энди.
Транзистор по идее должен работать, не вижу причин что там можно сломать вообще. А как вы проверяли? Я в вебморде не нашел нигде чекрыжика который бы им управлял.
Микрофон я тож подключил, потыркал для проформы немного, но ничего интересного не нашел. Что-то визуально зримое выдает только эффект "анализатор спектра", остальное либо визуализирует шум либо толком не реагирует. Возможно нужны какие-то настройки/адаптации для есп32, пока некогда разбираться особо, тут есть чем заняться в основном движке.
Кстати, собрал вот этот проект поглядеть, там анализатор довольно симпатичный и заработал "из коробки" с микрофоном. Рисует довольно красиво, но есть проблема с шумами при тишине.
 

dina

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

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Микрофон я тож подключил, потыркал для проформы немного, но ничего интересного не нашел. Что-то визуально зримое выдает только эффект "анализатор спектра", остальное либо визуализирует шум либо толком не реагирует.
В общем да, микрофон нужен только для двух эффектов "Анализатор спектра" и "Осциллограф", в остальных эффектах он был прикручен по принципу "чтоб было" кроме раздражения глаз, ничего полезного нет.
но есть проблема с шумами при тишине.
Как и в этой прошивке.
собрал вот этот проект поглядеть, там анализатор довольно симпатичный и заработал "из коробки"
Портировать в нашу есть возможность?