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

Комментарии

malec

★★★★✩✩✩
5 Фев 2019
680
257
@kostyamat, ЗДОРОВЬЯ! С уважением, Костя, мне бы хотелось узнать и опробовать всю ЛАБУДУ что вы придумали))) Я же " БЕТТА ТЕСТЕР" с Вашего позволения. 🤫😉 Но вот блин не всё понимаю по Вашему... ( украинский, английский, испанский наконец. ) не знаю...А плюшки я люблю)))🤪 Всё обновляется через буилдер, только новый? и Visual Studio Code. обновы как были , авто???

например плеер обработаных в фомат от @stepko gif-ок,
Это ещё что??? Готов для "русскоязычников" Гуглом по переводить. но как всегда с вашими правками... по возможности... 🙄😉
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
631
Всё обновляется через буилдер, только новый? и Visual Studio Code. обновы как были , авто???
Да, тут ничего не менялось.

@Константин 271, ну да. Типа так https://youtube.com/shorts/eHiltpxpcEc?feature=share

*** сразу говорю: Тут поддержки не будет. Ответы можно получить на гитхаб.
Так же не будет поддержки русского, в прочем как и матерных посланий в прошивке. Вы вольны делать перевод сами, и подкладывать его в прошивку. Но предупреждаю - при изменении нами языковых файлов, актуальность русского перевода поддерживайте сами.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
537
Saint-Petersburg, Russia
У EmbUI есть форк. Я поддерживаю и развиваю его независимо от исходного проекта в котором когда-то принимал очень активное участие.
В свой форк я ушел еще задолго до широко известных событий и, судя по всему, правильно сделал.
На форуме бываю не часто, но если есть интерес в EmbUI - пишите в личку, может вернусь на форум при наличии свободного времени и интереса.
Старый репозиторий с кодом лампы тоже остался, Он очень давно не синхронизировался с исходным репом, но, по крайней мере, из него не был выпилен задним числом код остальных участников. Насколько он сейчас работоспособен не могу сказать.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Закину и я свои пять копеек: - " EmbUI, FireLamp_JeeUI ".
Собирать можно из этих репозиторий, зависимости поправлены. Форки актуальны на 20.02.22, русский язык присутствует.
На форуме бываю тоже крайне редко, не обессудьте.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
537
Saint-Petersburg, Russia
Закину и я свои пять копеек: - " EmbUI, FireLamp_JeeUI ".
Собирать можно из этих репозиторий, зависимости поправлены. Форки актуальны на 20.02.22, русский язык присутствует.
Глянул мельком - энв по-умолчанию esp8266dev не собирается, оч много ошибок, есп32 тоже. Похоже фреймворк и лампа не совпадают, с версионностью у кдн были вечные проблемы. Надо править и код лампы и фреймворк. Я подрихтовал местами сборку, но не тестировал, лампы у меня нет. @andy040670 Если хотите закину ПР.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Похоже фреймворк и лампа не совпадают
Совпадают.
Глянул мельком - энв по-умолчанию esp8266dev не собирается, оч много ошибок, есп32 тоже.
Вроде собиралось нормально, может на стороне что то изменилось... fastled на пример, проверить пока не могу, но у меня ещё валяются есп8266, есп32 успешно прошитые с этих репо. Да и @Константин 271, вроде тоже успешно шился.
P/s
Глянул мельком.
Изменилась библиотека ArduinoJson, надо править как минимум в фреимворке ui.cpp.
@vortigont, по возможности и наличии свободного времени и если не сложно, возьмите борозды в свои руки, так как меня опять не будет на форуме пол года, да и знания C++ у меня очень относительное))
 
Изменено:

dimazn1

✩✩✩✩✩✩✩
6 Окт 2020
16
5
Всем привет! Может кто подскажет, как лампу на данной прошивке соединить с home assistant? Может есть какая то интеграция или что-то еще
Спасибо
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
537
Saint-Petersburg, Russia
@andy040670, ветка dev собралась, вы бы слили её в мастер что ли. Не сразу ведь догадаешься.
А оригинальный клон репозитория у вас не остался что бы слить корректно изменения? Я бы может втянул в свой реп и поковырялся на досуге, но у меня нет ни лампы ни матрицы для отладки. Так чисто вслепую погонять, былое вспомнить если сообщество не возмется.
 
  • Лойс +1
Реакции: Al12313

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
ветка dev собралась
Да, поправил репы.
Собираются:
env:
[env:esp8266]

[env:esp8266dev]

[env:esp8266@160]

[env:esp8266@160dev]
Собирается, но без ОТА, иначе не влезет в флэш:
env:
[env:esp32]
Ветка мастер не рабочая, собирайте только DEV.
А оригинальный клон репозитория у вас не остался что бы слить корректно изменения?
Framework, лампы нет.
но у меня нет ни лампы ни матрицы для отладки.
Аналогично)))
 
Изменено:
  • Лойс +1
Реакции: vortigont и Al12313

vortigont

★★★★★★✩
24 Апр 2020
1,022
537
Saint-Petersburg, Russia
Да, поправил репы. Собирается, но без ОТА, иначе не влезет в флэш:
у меня около 800к получилось, должно лезть даже с ОТА с разделами 1+1+2, стандарт для 4мб плат.

env:
[env:esp32]
Ветка мастер не рабочая, собирайте только DEV.
блин, так а чем отличаются мастер от дева-то и в лампе и в фреймворке? Без истории вообще непонятно что является продолжением чего. А если 8266 собирать из дева это что за код будет? Старше чем под есп32 или младше?
Вообще грустное впечатление, код как был 1.5 года назад плохо читаемый так в целом всё и осталось. Дальше вести это под исходным фреймворком мне смысла нет, я ушел в другом направлении. Адаптировать под свой это куча мутной и неинтересной работы, тем паче без стенда для тестов.
Ладно, мож втащю изменения в свой реп да что-то потыкаю на досуге. Приморозить зависимости по версиям и репозиториям дабы иметь валидную сборку, а там видно будет восстребованность этого проекта. В одно лицо лампами мне не оч интересно играться, я этот период уже прошел.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Если сейчас компилить и шить - будет прошито с багами? Я не заметил. Шил недавно.
Кто его знает, у меня нет лампы и даже платы под рукой, комп сейчас и то не мой)))
Когда доберусь до дома..., может попробую прошить, но матрицы всё равно нет.
Пробуйте.
блин, так а чем отличаются мастер от дева-то и в лампе и в фреймворке?
Сейчас только фреймворке.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
104
тоже успешно шился.
да, неск. недель назад, сейчас проверил - компилится, как и ранее, с кучей жёлтых срок в логе, про fastled все вроде. Ради интереса попробовал скомпилить для esp32 - понаставил кучищщу софта на 2Гб и в конце красным ошибка, не успешно. В общем, на 8266 наверное, будет, на 32 - нет. Наводить во всём этом порядок - наверное, может только автор. Но в версии с русским языком - сами понимаете...
 

vortigont

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

что нужно что собрать есп32 версию:
дев/не дев кода самой лампы, дев/не дев фреймворка? чем оно отличается?


Ради интереса попробовал скомпилить для esp32
я проверял esp32 энв из мастер ветки кода лампы, валится на ошибках с литтлфс, но это легко поправить. Надо только прояснить у Энди с какой версией стоит возиться.

есп32 контроллеры у меня есть (без матрицы), завести не проблема. В общем-то я от 8266 уже давно ушел. По-моему давно пора похоронить стюардессу.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
104
я проверял esp32 энв из мастер ветки кода лампы, валится на ошибках с литтлфс
ага.
есп32 контроллеры у меня есть (без матрицы), завести не проблема.
мне - едут, хотел полюбопытствовать, поэкспериментировать, и для софтверной части как раз взять эту прошивку, ибо на мою прикидку их всего-то 2, с esp32 - эта и от vvip.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
кучей жёлтых срок в логе, про fastled все вроде.
Это нормально, просто предупреждения.
Ради интереса попробовал скомпилить для esp32 - понаставил кучищщу софта на 2Гб и в конце красным ошибка, не успешно.
Есп32 собирается нормально без ота, вот только не понятно зачем столько софта на 2Гб.
давайте еще раз
что нужно что собрать 8266 версию:
дев/не дев кода самой лампы, дев/не дев фреймворка? чем оно отличается?

что нужно что собрать есп32 версию:
дев/не дев кода самой лампы, дев/не дев фреймворка? чем оно отличается?
Мастер не рабочий, он уже был такой на тот момент.
Мастер и дев лампы на данный момент идентичны. (ночью слил в мастер, как вы советовали), было куча конфликтов, пришлось делать радикально, могут быть баги.
Мастер и дев фреймворка разные, какие env'ы используют тот или иной фреймворк можно посмотреть в platformio.ini, если честно мне пока не охота сейчас всё это выяснять.
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
631
Хз, шо у вас там происходит. У оригинала все ок, как с esp8266, так и с esp32. ;)

Он очень давно не синхронизировался с исходным репом, но, по крайней мере, из него не был выпилен задним числом код остальных участников.
Странное утвердженне. Кто чего выпиливал-то?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
537
Saint-Petersburg, Russia
Есп32 собирается нормально без ота, вот только не понятно зачем столько софта на 2Гб.
для ота надо отдельно таблицу разделов прописать, уменьшить место под литлфс, тогда влезет.

Мастер и дев фреймворка разные, какие env'ы используют тот или иной фреймворк можно посмотреть в platformio.ini, если честно мне пока не охота сейчас всё это выяснять.
я понял, да в общем это не суть, собирается и ладно, погляжу на досуге под настроение.

Странное утвердженне. Кто чего выпиливал-то?
в гит это называется "переписывание истории", Костя. Когда задним числом отменяются, скрываются или схлопываются отдельные комиты чтобы история изменений выглядела так как-будто некоторых комитов вообще никогда не было и нельзя было вернуть рабочий каталог на какой-то определенный момент в прошлом. Так же это делает невозможным нормальную синхронизацию связанных репозиториев если был спрятан общий предок. Это применяется для наведения порядка в приватных репах и ветках но очень сильно порицается и часто считается категорически недопустимым в публичных репозиториях, особенно в мастер ветках.
Кто и зачем "переписывает историю" в исходном репе мне абсолютно не интересно, но вариантов совсем не много :)
 
  • Лойс +1
Реакции: slack

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
104
Кто и зачем "переписывает историю" в исходном репе мне абсолютно не интересно, но вариантов совсем не много
Да всем всё понятно. В канун Рождества, как говорится, не будем)

вот только не понятно зачем столько софта на 2Гб.
я просто выбрал в билдере пункт 4 - собрать прошивку для esp32, просто ради теста. И он начал что-то качать. По свободному месту на С я увидел разницу. Потом что-то ставилось, а потом уже попытка сборки прошивки пошла. И не дошла.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
537
Saint-Petersburg, Russia
поправил сборку под есп32 взяв за базу версию из репа andy - planb
у кого есть матрица, можете глянуть живое оно вообще или нет.