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
ну install.zip тоже пусть будет. Добавил ссылку и описание в WiKi и в шапку.
Вот подшаманил немножко, теперь можно устанавливать из любого места (установку pio привязал к %repodstdir% вместо %workdir%). посмотрите, может как то по элегантней можно сделать.
P/s
Сменил путь до питона с python %repodstdir%\get-platformio.py на "%USERPROFILE%\Python\python" %repodstdir%\get-platformio.py
так как у меня почему то перестало так работать, хотя раньше было всё нормально
P/ss
Только заметил, это опечатка: set "repodstdir=FireLamp.vortigont" вместо: set "repodstdir=FireLamp_vortigont" или так задумано, а то у меня теперь две директории)))
 

Вложения

Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
540
Saint-Petersburg, Russia
Вот подшаманил немножко, теперь можно устанавливать из любого места
добро, закинул, но не тестил. ВМку поднимать опять лень )

Только заметил, это опечатка: set "repodstdir=FireLamp.vortigont"
Блин, я уже сам запутался, давайте как вам удобнее (y)



если вкл. и откл. чекрыжик MP3 Mute ,воспроизведение зацикливаеться на играющем треке
MP3 Mute означет именно то что написанно - он глушит вывод звука посылая команду в плеер отключить ЦАП. Аналог кнопки муте на телевизоре.

По поводу того какие чекрыжики сделать "на главную" это надо хорошенько думать что именно нужно получить в комплексе.
Чекрыжик Enable DFPlayer в настройках это активация драйвера плеера, аналог того что было включением опции в конфиге сборки. Это не выключатель/включатель плеера.

Что должен делать аналогичный чекрыжик на "главной" мне пока не оч понятно, ибо есть варианты:
- отключать весь плеер нафиг (выгружать драйвер плеера из памяти)
- просто глушить все звуки нафиг, аналог выставить громкость на "0"
- отключать только озвучку текущего эффекта
- отключать озвучку эффектов, но оставлять кукухи/часы
- отключать озвучку эффектов и часы, но оставлять будильники
и т.д. и т.п.

когда станет понятно какую цель преследуем, тогда буду думать о реализации

Отловил перезагрузку в демо режиме.
спасибо, полгяжу позже, наверное где-то в эффекте бага.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
540
Saint-Petersburg, Russia
P.S. принял волевое решение и переключил проект на форк асинк сервера. Ибо у меня с мкутт сильно глючит либа на которой он работает.
В итоге может станет лучше, может нет - нужно еще отзывы от других послушать.
Посмотрим.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Блин, я уже сам запутался, давайте как вам удобнее (y)
Да пофиг, пускай остаётся как есть.
Что должен делать аналогичный чекрыжик на "главной" мне пока не оч понятно, ибо есть варианты:
  • отключать весь плеер нафиг (выгружать драйвер плеера из памяти)
  • просто глушить все звуки нафиг, аналог выставить громкость на "0"
  • отключать только озвучку текущего эффекта
  • отключать озвучку эффектов, но оставлять кукухи/часы
  • отключать озвучку эффектов и часы, но оставлять будильники
и т.д. и т.п.
Думаю, что - отключать весь плеер нафиг (выгружать драйвер плеера из памяти), самое оно. Отключать так отключать, а всякие манипуляции в настройках.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
540
Saint-Petersburg, Russia
Добавил настройку чередования цветов в RGB ленете из веб-морды.

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

Jeronimo701

✩✩✩✩✩✩✩
29 Апр 2020
3
2
Добрый день, пришли платы esp32, но не те - esp32 s2, соответственно билдер ругается на плату. скажите, кто-то на эти платы уже заливал данную прошивку или отложить их до лучших времен и заказать другие? вот такая плата: https://ozon.ru/t/dEd2Y88
 

Jeronimo701

✩✩✩✩✩✩✩
29 Апр 2020
3
2
Попробуйте этот билдер, уберите расширение .txt.
В оригинальном билдере вот такое:

Serial port COM8
Connecting...

A fatal error occurred: This chip is ESP32-S2 not ESP32. Wrong --chip argument?
*** [upload] Error 2

в том который выше:

Your choice [Ваш выбор]: ► 5
UnknownEnvNamesError: Unknown environment names 'esp32s2'. Valid names are 'esp32debug, esp32, esp32full'
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
540
Saint-Petersburg, Russia
@Jeronimo701, нормальные платы.
Вот по этой инструкции сделайте свой профиль для сборки и добавьте один параметр свой тип платы. По ссылке на озон товар не открывается, но судя по всему это WEMOS LOLIN S2 Mini. Попробуйте так

Код:
board = lolin_s2_mini
собирать надо будет не билдером а командами.
Ну или меняйте тип платы в основном файле platformio.ini, но тогда обновлять репу будет неудобно, файл будет перезаписываться
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
А, пардон. В platformio.ini секция [env: esp32s2] закомментирована)))
@vortigont, вроде делал поддержку платы, не знаю почему он отключил её.
Если не лень, можете попробовать раскоментировать блок:
Python:
;[env:esp32s2]
;extends = env:esp32
;board = ttgo-t8-esp32-s2

;; OTA Upload example
;[env:ota]
;extends = esp32
;upload_protocol = custom
;; replace url with address of your esp32 device
;upload_port = http://firelamp/update
;extra_scripts =
;    post:post_flashz.py
Уберите ";", двойные ";;" не трогайте.
Или создайте в корне файл user.ini вставьте в него:
Python:
[env:esp32s2]
extends = env:esp32
board = ttgo-t8-esp32-s2

;; OTA Upload example
[env:ota]
extends = esp32
upload_protocol = custom
;; replace url with address of your esp32 device
upload_port = http://firelamp/update
extra_scripts =
    post:post_flashz.py
А билдер, что выложил выше переименуйте в bilder_esp32s2.bat. Тогда ничего не будет перезаписываться.
 
Изменено:

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Вообщем потестировал оба плеера. Муте работает на обоих ,одинаково. Вкл. чекрыжик ,звук откл. Откл. чекрыжик ,звука нет. На откл. чекрыжике ,откл. и вкл. лампу ,без снятия питания звук появляеться. Можно мириться.
Луп эффект на 2024 работает почти на лету ,только нужно эффект какой нибудь передернуть ,чтобы применился.
Луп эффект на 3200 ,работает только через перезагрузку.
ГЛАВНЫЙ КОСЯК у обоих плееров ,если плеер играет ,а ты откл. лампу чекрыжиком или кнопкой ,плеер продалжает играть. Но это пол беды,если на играющем плеере откл. питание ,он портит звуковые файлы на карте памяти!!!
Пока карту не перезапишешь ,плеер не работает. Такой косяк за плеерами ,я давно заметил.
Поэтому ,предлагаю уйти от колдовства с плеерами. 1 Убрать муте. 2 сделать всегда цикл. 3 откл. звук выгрузкой или как там плеера.
Чекрыжики 1 откл.плеера 2 соунд эффект 3 будильник 4 кукушка. Что бы херни не было ,сделать например если соунд эффект акктивирован ,то будильник или кукуха не работали. Так же с остальным. Короче только одна задача плееру.
Ну и мелочь ,при регулировке яркости и громкости на тм дисплее двоиточие ,стало гореть. Sn:6 или br:6 ,вроде раньше не было. Или было хрен знает.Мне не мешает.
Чередование цвета ,работает.
Демо шрифты поглядел ,нравица:love:
 
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
540
Saint-Petersburg, Russia
@dina, пасибо, позже почитаю внимательно.

По поводу праздника залил тестовую ветку с наработкой по "виджетам". На их базе будут строится всякие бегущие строки, часы и прочее не связанное с эффектами.
Пока доступен один тестовый виджет часы/дата, можно залить потрогать у кого есть ХАБ75 панель или большая матрица.
Доступны несколько шрифтов, управление положением\цветом и что-то еще по-мелочи.
Опроблемах писать не надо, пока и так видно что всё сырое. Но интересные идеи и пожелания по часам готов выслушать.
Часы НЕ ОТКЛЮЧАЮТСЯ и отображаются всегда, выключатель пока еще не сделал.
нужно обновить js/ файлы на ФС.
 

dina

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

Вложения

Изменено:

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
у андрона ,такое было. поглядел, винды обновлений не было. все посносил ,переустановил. бестолку.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
540
Saint-Petersburg, Russia
@dina, ну всё сразу не делается )
закрепил выпуск 3.5.0

про плеер, думаю вы поняли какое это Г... и файлы портит и система управления у него тупая до невозможности.
с проблемами 3020 я даже возиться не буду. У меня его нет, и как я понял они уже практически исчезли из продажи.
Вообще мне было бы реально удобнее если бы вы эти проблемы по пунктам заводили как ишшу в гит. Я понимаю что влом, но следить за всем в голове и мотать сообщения в форуме реально неудобно.
На просторах алиэксрпесса водятся блютус/мп3 модули BT203 или 303, не помню. Они тоже умеют играть мп3 и работать блютус-колонкой. Не знаю почему нигде нет отзывов по ним, может они еще хуже чем эти ) Можно на них посмотреть, но это тоже надо кучу времени убить.

С энкодером много работы там, надо писать свою либу толковую, еще не брался даже. Часы немного причешу чтобы хоть не скучно было панель крутить, потом мож займусь энкодером.
 
  • Лойс +1
Реакции: dina

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
105
Они тоже умеют играть мп3 и работать блютус-колонкой. Не знаю почему нигде нет отзывов по ним, может они еще хуже чем эти )
ПО-моему, они время не могут говорить, там ещё меньше функций, ну и наверняка ещё более кривые)
 

vortigont

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

при регулировке яркости и громкости на тм дисплее двоиточие ,стало гореть. Sn:6 или br:6 ,вроде раньше не было.
так горит или не горит что, двоеточие не горит? Sn:6 это типа "Sound: 6", br:6 это "Brightness: 6"