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

Комментарии

bort707

★★★★★★✩
21 Сен 2020
3,046
909
Так вот у неё на 1 микросхему меньше 74нс245 ,чем у другой нормальной. Вот таки дела.
скорее всего проблема решится конвертером уровня 3.3 -> 5в

А вообще не расстраивайтесь, вам еще повезло. Этих панелей десятки видов и многие вообще не работают с этим кодом, хотя выглядят точно так же.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@bort707, А не подскажите ,конвертер на все 13 пинов нужен ? Хаба 75.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Фух... залил толстую пачку изменений - переработал схему формирования АПИ, теперь WebSocket/MQTT/HTTP работают унифицированно. Формат данных везде используется одинаковый. Теперь осталось подчистить остатки старого наследия и привести в порядок идентификаторы элементов интейфейса. Ну и конечно задокументировать это всё... :eek:
Для интересующихся - черновик описания АПИ на WiKi.
Баги пока не смотрел. Хотя вроде как "настройки"-"другие" теперь сохраняются нормально.
Кто любитель MQTT - можно тестировать.

P.S. т.к. поменялось АПИ, нужно перезалить файлы на ФС, со старыми жсками работать нормально не будет.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Залил новое. Настройки,другие и плеер ,при перезагрузке не сохраняеться.Часовой пояс ,там пусто ,не выбрать. Прикол ,че то потыкал , на тм 1637 время ,не правильное ,на эффекте часы правильное ))). Ну и при вращении энкодера ,регулировка яркости ,шкала стоит 0-20 ,а энкодер накручивает 0-255. На 16х16 все крутиться ,на хаб 75 эффекты ,также морозяться. Зачем пины на хаб 75 изменили ,какой то смысл? Сейчас воюю с вайфаем. Есп 32 ,сигнал намного слабее при отдалении от роутера. Где есп 8266 работает ,без проблем ,есп 32 не работает. Причем из макетки вытаскиваешь модуль есп 32 ,у него у голого вроде вроде нормальная дальность получаеться. Вот например у меня другой проект на есп 32 хаб 75 ,почти месяц нормально ,работал в другой комнате сигнала вифи хватало ,вчера дальность упала. Я не знаю то ли модули такие ,толи все остальное в кучу. Есп 8266 намного без проблемней ,у меня один проект на нем с 17 года молотит. Буду изучать и делать мост. То ли роутер еще добавить или вот такое забацать https://github.com/martin-ger/esp_wifi_repeater. Я понял этим железкам много не надо, что посоветуете. Подключение без проблем будет? И еще конвертеры уровня заказыывать или подождать настроек в вэб морде? Сегодня опять отдалил модули есп 32 ,блин работают. Вроде у нас тут глушилок нет.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@dina, пардоньте... как обычно что-то локальное забыл вылить. Поправил пару мелочей, нужно перезалить js'ку. Выбор часового пояса должен появиться. Настройки тоже сохраняет (надеюсь).

Энкодер живет своей жизнью потому что его так создали. В него гвоздями забиты свои переменные. Оч надеюсь что я это переделаю когда-нибудь на шину событий.

Пины на хаб случайно поменял - свои прописывал, попало в комит.

По поводу WiFi вы про конфигурацию с панелью говорите или вообще? Я как-то давно еще когда возился с ними обратил внимание что включенный ДМА на панель начинает забивать WiFi, даже где-то отписывал по этому поводу. Может это радиопомехи, может еще что-то аппаратное. Может частоту и2с надо покрутить. Это тоже одна из заморочек с которой надо будет ковыряться.

Конверторы уровня в любом случае будут полезны если вы с ними шильдик сделаете, но имейте ввиду что нужен нормальный буфер типа вышеупомянутой микрухи. Дешманские конверторы на полевых транзисторах не будут работать на таких частотах.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont,Да именно с хаб 75 ,вифи живет своей жизнью. Конвертер на такой микре хочу заказать TXS0108E . Сделал мост на есп 8266 ,через него подключил другой проект. Так прикол ,есп 32 подключился ,данные с интернета получает все нормально (курс валют ,прогноз погоды итд) ,только я в вэб морду зайти не могу , настройки сделать ,нет ип адреса.

Вообщем время нормально. Настройки тм 1637 не сохраняються(яркость). Восстанавливать состояние при включении ,не работает. Случайный эффект в Демо не работает. У плеера не сохраняеться ,Кол-во файлов в папке MP3 ,пока не настроишь, плеер не вкл. Остальное у плеера сохраняеться. Сегодня отдалил от вифи ,не работает ,вчера в том же месте работало. Я затрахался. Еще на 16х16, выкл питание ,вкл ,на темной матрице слабенький засвет красного цвета ,от эффекта на котором выкл. Кажеться нашел кто мне по вифи серет. Мышка беспроводная ,буду наблюдать.
 
Изменено:
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Сделал настроку hub75 с параметрами. Но пока только через апи или через конфиг файл (не тот hub75.h что был, а через джейсон на флеше). Описание в WiKi. Рисовать все эти элементы вебморды и тестировать мутороно, а у хаб75 их оч много. Поэтому пока так. @dina, можете тестировать свои панели.

Восстанавливать состояние при включении ,не работает.
Надеюсь теперь уже точно работает. По крайней мере включение и номер эффекта после перезагрузки у меня восстанавливает.

У плеера не сохраняеться ,Кол-во файлов в папке MP3 ,пока не настроишь, плеер не вкл.
я не оч понимаю что это означает если честно и зачем оно нужно. Если у вас есть есть идеи о том что это и как это должно работать - изложите. Занесу в список дел. Или надо убрать нафиг эти "количества файлов".

Еще на 16х16, выкл питание ,вкл ,на темной матрице слабенький засвет красного цвета
У меня вроде такого вообще не наблюдается. Это на всех эффектах так? Может матрица такая?

Остальное занесите в ишуез, или потом гляну если не забуду. Я уеду до сл недели, поэтому пока исправлений не будет. На вопросы если что постараюсь отвечать.
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
я не оч понимаю что это означает
Это были отдельные мп3 файлы ,чтобы слушать как обычную музыку или ставить на будильник ,уже не помню. По моему так. Понятно ,что это лишнее. Но пока настройку не сделаешь плеер не вкл у меня. У меня там 6 файлов лежат. Буду изучать ,что это апи ,джейсон.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Но пока настройку не сделаешь плеер не вкл у меня
1) а что должно быть в настройке-то, какое значение?
2) И где этот пункт настройки "Кол-во файлов в папке MP3 " в гуи?
3) "не включается" это что? Чекрыжик не переключается или не играт звук из плеера?
4) Если звук то какой? Звук эффекта или звук эти самых других "6 файлов"?

Я же говорю - я понятия не имею как это задумывалось изначально, поэтому проще выкинуть и реализовать занового в соответсвии с требуемой логикой.

P.S. @dina - Как завести несколько разных конфигурационных файлов user_config.h для сборки проекта
 
Изменено:

vortigont

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

dina

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

Вложения

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Не знаю почему перезагрузка у вас, это не тот файл, вы почитайте пожалуйста внимательно то что написано - юзер-конфиг это файл для платформио. Для настройки панели вам нужен джейсон файл отсюда https://github.com/vortigont/FireLamp_JeeUI/wiki/Настройка-LED-дисплея#конфигурационный-файл

Проверьте параметры, выставьие dtype в 1 и кладите в data
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, Мне как его назвать, после того как пины и 1 поставлю? Я блокноте правлю.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Парметры настройки ленты и ХАБ75 хранятся в контроллере в файле display.json в корневом каталоге. Файл можно скачать/залить в контроллер через ftp или скачать по ссылке http://myesp/display.json
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@vortigont, я не знаю и не понимаю как это сделать.меня носом тыкать надо. я на уровне обезьяны ,которая нажимает ,правильные кнопки.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Да что вы никак 2х2 не сложите тонуну , откройте блокнот создайте текстовый файл, ск опируйте блок с фигурными скобками со страницы в вики выше по ссылке. Исправьте там номера пинов на свои нужные, сохраните файл с именем display.json положите в каталог data проекта, залейте фс в контроллер как там вы обычно жто делаете, не видео же мне вам снимать как в блокноте работать в самом деле
 

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
@dina, Может все дело в том что плеер это не лучшее наследство от KDN. Я тоже не мог понять их логику , есть же проекты где все четко и логично и не каких лишних кнопок типа сброс в настрорйках плеера. Может потом наш уважаемый руководитель проекта сделает свое логичное и понятное для всех. А так может копаться в чьих т о задумках и понять что они хотели может время на ветер.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Так и должно быть, я же говорю что в гуе не нарисовал ничего. Почему перегружактся смотрите логи, ковыряйте, перкключитесь на рабочий эффект перед включением. У меня тетрис работал, остальное посмотреть не успел.
Про мп3 плеер посмотрю что это за поле на следующей неделе. Готов выслушать внятную желаемую логику работы про папки иапки пр., остальное повыкидываю нафиг
 
  • Лойс +1
Реакции: Andron-65

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Перезагружаеться ,на любом эффекте. Лог перезагрузки из эффекта часы. Откатился на пред. прошивку ,новые панели приехали. По тестам панелей. Лучшая картинка ,я бы сказал идеальная на панелях Р2.5 и Р3. Чипы у них все одинаковые, 245 чипы по 3шт. 2 место Р4 чипы 245 3шт ,есть незначительные артефакты. И последнее место Р4 чипы 245 2шт, причем драйвера разные и артефакты разные. Артефакты у них очень заметные. Жду преобразователи уровня ,соберу ещё одну макетку. Еще заметил на другом проекте (видать хуже оптимизация) ,там вифи заметно слабее ,чем у нас. Эти самые плохие панели Р4 двух чиповые ,ещё сильнее давят вифи ,без того слабый. Пока такие изыскания. Теперь по плееру ,моё видение. 1 чекрыжек ,озвучка эффекта. 2 чекрыжек ,выбор звукового файла на будильник (например папка мп3). 3 чекрыжек ,кукушка (ежечасный сигнал) ,причем на кукушке сделать выбор озвучки ,либо свой звуковой файл ,либо файл озвучивания времени голосом. 4 Ну и сделать ночной режим (настраиваемый). Чекрыжек для голоса и тишины ,голос доброе утро и спокойной ночи. Отдельные дискотеки из мп3 файлов ,я считаю лишнее. Предлагайте дальше сами.У меня все.
 

Вложения

Изменено:
  • Лойс +1
Реакции: vortigont

Andron-65

★✩✩✩✩✩✩
18 Май 2020
71
18
@dina,согласен . Слушать дискотеку на лампе или информере все равно что забивать гвозди утюгом. хотя и утюгом можно забить , но молотком привычнее. Да и слушать музон в таком качестве на такой динамик тоже не айс. Доброе утро и спокойной ночи это обозначение включения и выключения ночного режима. Тоже хорошо было бы. Ну еще хорошо как у Игоря Шилова вместо озвучки голосом времени бой курантов или старинных часов . Тоже прикольно. Хотя у него и озвучка времени голосом тоже есть.
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
Подскажите пожалуйста: прошил esp 32, появилась точка доступа Firelamp. Подключился, но не могу войти на web страницу адрес 192.164.4.1 не срабатывает, перевернул всю прошивку не помню в каком файле указаны настройки точки доступа или режим сети (прописать свой логин и пароль).
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@Alex7272, Почисти кэш браузера. Должно автоматом заходить,набирать не надо.
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
Знающие подскажите пожалуйста почему на прошивке FireLamp_JeeUI-3.3.0 не удается подключиться к сети. Логин и пароль 100% ввел правильно. Нажимаю подключиться и ничего не происходит. Точка доступа не исчезает и в настройках роутера нового устройства нетScreenshot_20231118-190851.png