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
ну всё сразу не делается
Вообще ,без претензий )
По плееру понял ,про непонятки в исуе буду писать.
Хрен с ним с голосовым временем ,кукуху да будильник сделать. Файлов меньше будет.
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632

@vortigont,
Вы ушли на esp32. Карта sd + i2s усилитель за два бакса, + воспроизведение WAV. Нафиг лампе вообще звук, я хз.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
На обычной есп32 ,может пинов хороших не хватить ,для этого. Если захочеться полный фарш. У есп32 s3 ,должно хватать.
 

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
@vortigont,
Сегодня скачал последний FireLamp_JeeUI-master. Прошивка скомпилировалась без вопросов. Так же скомпилировал FS. Прошил по "воздуху"
Зашел в настройки. Выставил параметры матрицы. И....... Панель не запускается вообще. При попытке сменить эффект, через 3 секунды скидывает на "0" (нулевой эффект) При этом на самой матрице ни одного диода не засветилось. Так что пока у меня панель "мертвая" Ни чего в схеме не менял.
 

Вложения

vortigont

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

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
@vortigont,
Лог снять пока нет возможности. Панель от компьютера далеко. Все настройки проверены не раз. Даже не раз перекомпилирована прошивка.
Я сначала пытаюсь решить своими силами, и только потом буду писать уже.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
На будущее конфиги можно скачивать и сохранять из лампы через ftp в каталог /data тогда они будут восстанавливаться при перешивке
Это зло!!! Пока проект в стадии разработки конфиги хранить нет никакого смысла.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@wadimsuv, нашел ошибку, спасибо. Возникла когда добавил защиту от падения на пустом конфиге. Обновитесь с мастера.

@andy040670, почему зло? Скачать конфиги и залить их обратно при желании вам никто не мешает. Не обязательно, но удобно. Будет ли это работать на более новых версиях это уже как повезёт. Некторые параметры могут поменяться.
 
  • Лойс +1
Реакции: wadimsuv

dina

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

andy040670

★★★✩✩✩✩
13 Ноя 2019
353
109
54
Будет ли это работать на более новых версиях это уже как повезёт. Некторые параметры могут поменяться.
Вот и я о том, чтоб не возникало всяких непоняток. Надо использовать только свежие конфиги. Когда проект войдёт в стабильную фазу, тогда эта функция будет востребована, но не сейчас.
 

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
@vortigont,
Все запустилось. Спасибо. Единственное не совсем понял как работать с виджетами (часы)
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@wadimsuv, да просто включаете, выбираете шрифт и позицию на дисплее куда выводить часы.
Самый маленький шрифт 5х7. На маленьких матрицах все равно ничего толком видно не будет.

p.s. поправил пару багов в инициализации часов, кто еще что заметит - пишите.
 

wadimsuv

★★★✩✩✩✩
17 Ноя 2020
191
108
@vortigont,
Вроде разобрался не много с виджетом. Но на матрице 20х15 не весь помещается. Есть ли возможность сделать дополнительный шрифт с размерами поменьше? К примеру 3х3 , ну или, что было бы удобней и красивей, сделать бегущей строкой с зацикливанием по кругу?
 

Вложения

vortigont

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

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Работает на 16х16 ,на хаб панели завтра потестю. Вроде ничего не поломалось.
 
Изменено:

iamstven

✩✩✩✩✩✩✩
9 Апр 2021
9
1
Что мне делать, чтобы это исправить... может кто-нибудь мне помочь? Спасибо




c5e13687-81bf-4764-90d6-009e16548903.jpg
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
свежие плюшки:

говорящие часы / кукушка
- настраиваема озвучка времени почасовая / пол часа / четверть часа
- тихие часы для отключения озвучки по ночам

будильник
- 4 независимых будильника со своей мелодией у каждого
- каждый будильник может иметь один из режимов на выбор
- однократное срабатывание​
- ежедневное срабатывание​
- по будним дням​
- по выходным дням​
 
Изменено:

Константин 271

★★★✩✩✩✩
12 Июл 2020
950
105
Приветствую!
Все эфекты изначально включены в режим Demo, общего списка - нет, чтобы быстро все удалить, добавить нужные. Как выбрать лишь 5-7 шт из всех, кроме долгого и мучительного входа в каждый и отключения тумблера "в списке demo"?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@Константин 271,
это старая структура признаков. Перевернуть все сразу нельзя, т.к. по-умолчанию сделанно так что бы демо режим таки работал, не требуя натыкивания "любимых" эффектов поштучно. Тут кому что - кому-то проще убрать лишние, кому-то добавить.
В старой прошивке я точно не помню логику, там эти флаги в нескольких местах сохраняются.
Можете найти аналогичный файл в старой прошивке и поменять значение #define SET_ALL_EFFFLAGS 3 на '1'.

Но! Это сработает только при очистке файловой системы и удалении файлов eff/* и /*.json

Для правки существующих конфигов можете зайти на ФС контроллера по ftp и руками поправить джейсон файлы в каталоге eff/* - значение ключа "flags":3 значит что эффект доступен в списке выборки и включен в демо-режим. "flags":1 - только доступен в списке выбора. "flags":0 - вообще недоступен.
 
  • Лойс +1
Реакции: Константин 271