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

Комментарии

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@Alex7272, Подождем, ведущего проект.В прошивке,частые изм ,наверно что то нарушилось.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@Alex7272,У Вас же прошивка встала ,то не критично думаю.
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
К сожалению при попытке подключится к точке доступа Screenshot_20231119-201829.png

Я уже два вечера пытаюсь впихнуть "невпихуемое" . Пока удалось запустить и присоединить к сети только одну сборку,
но она очень стараяСнимок экрана 2023-11-19 203204.png
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@dina, то же самое: не удалось открыть веб страницу .
Почему убрали возможность ввода параметра сети сразу в прошивку. Прошил, запустил и уже в сети.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Здесь настроек не было в этом проекте. Я не видел. Тут за подключением к ви фи ,трудно отследить ,надо есп стирать. А это мало кто делает. Прошил новую ,она по старым данным подключена уже. Автор ,как появиться ,поправит.
 

vortigont

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

К сожалению при попытке подключится к точке доступа Посмотреть вложение 45890
А вас домен apple.com совсем не смутил? Вообще должна открываться страница подключения к "неизвестной сети", в андроиде так работает. Если не открывается, введите руками http://192.168.4.1/
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@vortigont,вот сделал по новой, по указанному адресу конечно пытался войтиСнимок экрана 2023-11-19 233011.png
 

Вложения

  • 24 KB Просмотры: 4

dina

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

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Лог перезагрузки из эффекта часы
у вас в логе в самом начале Can't open file: /display.json, значит вы либо файл не так назвали, либо не туда положили, либо не залили ФС с этим файлом. Он должен быть в каталоге data рядом с index.html.gz
То что без конфига контроллер падает, это наверное плохо. Попробую это прикрыть что бы ничего не делал если настроек дисплея нет актуальных. Но логи читать полезно :)

К плееру и панелям еще вернемся тогда.

@Alex7272, судя по логу вы прошили не то что должно собраться из текущей мастер-ветки. Поэтому еще раз проверяйте что вы там собирайте и шьёте. Вот у dina лог от актуальной мастер ветки, там всё сходится.

по указанному адресу конечно пытался войти
иии.... дальше что? По логу видно что вы таки вошли, что значит "пытался"? В общем, товарищи, давайте как-то пососредоточеннее к делу подходить, мне в угадайки так сложно играть. У меня ваших рук и глаз нет :)
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@dina, Я так и делал, спасибо за беспокойство, ушел в параллельную ветку. Там вроде успешно прошился.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@Alex7272,Скрин Ваш выше поглядите в Вс коде ,у Вас в файле прошивки нет слова master.
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@dina, Хлопотно с этой программой, arduino ide проще. Перекачал проект по Вашим скринам, ничего не поменялось Снимок экрана 2023-11-20 195909.png
 

dina

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

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@dina, Да уже не буду. Зашил другую прошивку, завтра буду паять. Web морда запустилась. Спасибо за помощь.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@Alex7272,Как все здесь обкатаем ,возвращайся ;). Пины из вэб морды менять можно будет. Ни чего не надо будет перепаивать ,для этого проекта.
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
Да со мной много "не накатаете". Я специалист только по готовой и очень подробной инструкции. Просто нашел проект который осилил, (подробные инструкции и неплохой дизайн web)
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
этот файл в прошивке ,как бы не применяеться
это конфиг файл, это не часть прошивки. Он применяется при запуске контроллера. Если правильно залит, то он должен быть доступен из браузера по урлу http://lamp/display.json. Если недоступен, значи вы его не залили вместе с образом ФС.

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Да вверх ногами тетрис. Щас буду пробывать ,по новой залить.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, кстати на мелкой панели (64х32 ваша 2.5 которая) очень помогает если выставить "clkphase": false, все глюки и рваные края у строк исчезают.