ESP, IoT WiFi лампа/гирлянда/информер ws2812/HUB75 - Обсуждение прошивки FireLamp_EmbUI

FireLamp_EmbUI - деполитизированный форк проекта "огненной" лампы (исходный проект FireLamp_EmbUI)

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

Проект эволюционировал от "лампы" в гибридную прошивку для адресных лент / HUB75 RGB панелей.

Эволюцию проекта и смежные вопросы (архив) в теме универсальный информер/часы/лампа/гирлянда

Примеры работы проекта:



Внимание! Более актуальное описание и документацию можно найти на странице проекта в GitHub, шапка обновляется редко.
Так же рекоммендуется заглянуть в WiKi проекта, туда будет по мере возможностей собираться более подробная информация по функционалу лампы

Концепт
Исходный проект был значительно переписан и реструктурирован. В разработке основное внимание уделяется структуре кода, декомпозиции и объектоориентированности даже в ущерб функциональнсти и "фичам". Основная идея развития - вся конфигурация и управление периферией должна быть максимально доступна во время работы кода без необходимости пересборки всего проекта. Параметры в конфигурационных файлах и опции сборки сводятся к минимуму, упраздняются и заменяются настройками через WebUI.

ESP8266 vs ESP32

Разработка ведется только под контроллеры семейства esp32. ESP8266 морально устарел, было принято решение не тратить время на поддержку совместимости и уделить больше времени и ресурсов актуальной платформе. Последний стабильно работающий на контроллерах 8266 выпуск проекта - версия v3.1.1, используйте на свое усмотрение, корректная сборка с обновлёнными библиотеками не гарантируется.

Бинарные сборки
Проект можно прошить в чистую плату используя готовые сборки со страницы выпусков. Бинарные образы подготавливаются и прикрепеляются к выпускам начиная с 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) для своей лампы см страницу проекта на Гитхабе.

Для знакомства с проектом можно воспользоваться собранными бинарниками от @andy040670 из этого поста

Озвучка для мп3 плеера
набор звуковых файлов для MP3 плеера можно скачать по ссылке из WiKi

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

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

Управление
Лампа управляется через WEB-интерфейс или через мобильное приложение WLED-Native-Android, WLED-Native-iOS, старый WLED


Device API описан на странице в WiKi
 
Изменено:

Комментарии

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
Либо гирлянда, либо матрица плоская 2D
не понял в чем разница... и там и там настраивается квадратная матрица. Собрал, запустил, штука забавная, да. Половина эффектов, правда, какое-то мельтешение для эпилептиков, но, в целом, довольно навороченно. Опять же не понял чем текущая лампа лучше Ж)
Пин матрицы настраивается из рантайма из-за используемой библиотеки neopixel вместо fastled. По возможности посмотрю чего будет стоит запустить текущий код лампы на неопикселе.
 

Divin

★★★✩✩✩✩
30 Янв 2021
413
184
@vortigont, изначально вилед заточен под ленту, лампа- матрица и функционал у лампы интересней и эффекты вкусней.
 

dina

★★✩✩✩✩✩
3 Окт 2021
330
84
49
В мастере 8266 вспышек нет.Выбора гпио нет. Мп3 громкость не регулируеться ,звук эффекта тот же остаеться ,при переключении эффекта.Энкодер ,дисплей,микрофон ,упр транз. работает.Долго не гонял.
 
  • Лойс +1
Реакции: vortigont

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
про звук гляну.

тиснул в фит ветку обновки, видимых изменений нет, в основном внутрянняя работа на активностями.
Удалил из каталога под образ ФС aceeditor, т.к. места на ФС стало нехватать при большом количестве конфиг файлов. Из текущих сборок можно удалить через ФТП.
 

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
@dina, я не оч понял что должно быть на этой картинке, файлы для образа ФС есть, заливаются в контроллер по pio run -t uploadfs

собрал мастер на есп32, звук есть и регулируется. Вы когда перешиваетесь между фит веткой и мастером, не забываете перезалить ФС и почистить кеш в браузере?
 

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
по идее заливаться должно кнопкой-стрелкой в самом низу vscode в строке статуса. Попробуйте полную команду platformio -e esp32 -t uploadfs

подцепил 8266 без всякой обвязки, запустил сборку из feat ветки - у меня нормально заработала, вспышек и зависаний нет. Пин для матрицы использовал D7. Собирал минимальную версию без энкодеров и прочего, просто плата и матрица.
Кому интересно, можете потестить, может какая периферия приводит к вспышкам.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
339
108
53
8266 - feat.
28. Кометы, Парящие Огни - работает не правильно.
34. Попкорн - стартует нормально, останавливается, стоит на месте, нет движения. Движение появляется на время изменения яркости.
45. Магма - стартует нормально, останавливается, стоит на месте, нет движения. Движение появляется на время изменения яркости.
72. Лавовая лампа - стартует нормально, останавливается, стоит на месте, нет движения. Движение появляется на время изменения яркости.
34. Попкорн и 72. Лавовая лампа оттаяли, теперь нормально воспроизводятся.
13. Неопалимая купина, 15. Эффекты 3д шума, 21.шторм, 45. Магма ,46. Пикассо, 50. Вихри теперь останавливаются, 73. Космо-Гонщик идёт с паузами.
P/s
Поменял подозрительный диод с последним на матрице, вспышек не наблюдаю.
 

Andron-65

★✩✩✩✩✩✩
18 Май 2020
68
18
@vortigont, Лампа однозначно лучше по двум причинам. Она будет наша отечественная ну и эффекты под матрицу заточенные. WLED все же к ленточке больше. Приложение WLED под андроид удобно тем что в одном приложении можно управлять несколькими устройствами .KDN как то адаптировал лампу под это приложение. В принципе было удобно.
 

Вложения

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
@dina, да обновление тут непричем, у вас что-то с установкой. Попробуйте через Костин билдер поставьте питон, гит и платформио, забейте вы на вскоде. При нормльной установке у вас в консоли или терминале должна отрабатывать команда pio.

@andy040670, да я вроде ничего не делал что бы что-то поменялось.
Добавил в platformio.ini переменные с разными версиями ядра для 8266, можете поэкспериментировать если не лень. 3 ядра на выбор
Код:
[8266core]
arduino_core_3_0_0 = [email protected]
arduino_core_3_2_0 = [email protected]
arduino_core_4_1_0 = [email protected]


[env:esp8266]
platform = espressif8266
;platform = ${8266core.arduino_core_3_0_0}
@Andron-65, wled работает через webview и mDNS дискавери. Оно и сейчас работает если адрес лампы вручную добавить. Дискавери адрес посмотрю какой она ищет, мож добавлю.
 

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
Эх... ломать так ломать...

- содержимое мастера на основе старого фреймворка ушло в отдельную ветку legacy. Считаем её относительно стабильно работающей на 8266. Туда буду добавлять только какие-то критические правки или простые фишки, не требующие особых трудозатрат.
Решение о том можно ли считать то что в feat относительно рабочим для 8266 буду принимать на основе ваших отзывов. То замерзает, то мерцает - голова гругом уже.

- feat ветку влил в мастер, дальше пляшем от нее

- добавил поддержку WLED приложеньки, лампу обнаруживает, открывает веб-морду. Доступно во всех ветках. Для работы нужно дописать один файлик на ФС лампы /win.
 

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
@dina, да что ж вы так эти картинки любите то, а... там все равно ничего не видно :)

если все поставили, то откройте консоль cmd.exe в папке проекта и наберите там pio run -e esp32 -t uploadfs или что вам нужно.
Если питон и платформио встали как положенно и пути для них есть в path, то всё должно собираться и загружаться.
 

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
@dina, да вы не кипятитесь так. Проблема в вашей локальной установке ибо только недавно у вас все собиралось и работало. Я пытаюсь вам помочь, а вы вместо подробной информации кидаете мне мутные скриншоты вырванные из контекста. Вы сами то их открывали, пробовали прочитать что-нибудь? Подавать текстовую информацию в виде картинке это моветон, ибо читать это сложно, выделить и скопировать никуда невозможно, поэтому я прошу текст.
Когда сообщаете о пробелеме, всегда, повторяю, всегда, тут же пишите из какой ветки это собрано ибо отматывать наверх в сообщения и вычислять к чему это относится неээфективно и чревато ошибками.

Нашёл Фс переехала в вскоде с env Default ,на env Esp32
я не очень понимаю что это значит. В проекте уже оч давно энв по умолчанию стоит esp32, более того расположение каталожки с файлами для ФС независит от энва.

Код:
[platformio]
data_dir  = ./data
default_envs = esp32
На дисплее ,точки мерзнут.
точки я вроде починил в фит (и теперь уже и в мастер) ветке.

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

чтобы проверить что у вас все тулы установленны корректно проделайте следующее:
- запустите консоль, не костин билдер, а консоль! - кнопка "пуск" - "выполнить" - "cmd" (или как там оно на современных виндах делается)
- перейдите в каталог с репозиторием лампы
- выполните поочереди следующие команды
- git --version
- git pull
- git status
- pio --version
- pio pkg update
- pio run -e esp32 -t uploadfs

если встретите ошибки, выложите их в виде текста или сюда под спойлер или в виде файла в аттаче

тоже самое можно повторить из терминала внутри VSCode, иногда результат бывает разный.
Я лично ВСЕГДА обновляю, собираю и заливаю код только из консоли, никакими кнопками в ВСКоде я не пользуюсь ибо сам не понимаю когда и что она там собирает и заливает.
 

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
@dina, так у вас не репозиторий с проектом, а что там, просто зипник распакованый чтоли???
Вы как обновляете код и переключаетесь между разными ветками?
В описании проекта написано как склонировать и обновлять репозиторий с помощью гит. Сделайте как там написано, обновитесь и собирете свежую прошивку ибо вы, похоже, что-то старое собираете, потому у вас и точки замерзают.
 

dina

★★✩✩✩✩✩
3 Окт 2021
330
84
49

@vortigont,С Вашего гита ,каждый раз скачиваю нужную ветку ,после обновления и распакованный зипник ,запускаю в вс коде ,всегда так делал и с кдн и здесь.Так научили. Получилось через билдер собрать ,гит репозитарий в на другом диске ,системном создаёт ,а уже оттуда получилось билдером собрать. По сравнению с вскоде ,дольше все делает.Для меня легче ,скачать ,распаковать ,подсунуть. Чем с командами ,работать ,мозги уже не те ,года ,да плюс операция в феврале была ,наркоз итд. Я все равно же актуальные зипники скачиваю?
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
@dina, это способ на один раз релиз скачать, собрать.
если часто обновляетесь, то сделайте как выше написано - клон репозитория, и обновляйте/собирайте командами.
 

Andron-65

★✩✩✩✩✩✩
18 Май 2020
68
18
@vortigont, Доброго утра. Тестирую приложение ветка фит есп 32 . Приложение определяет лампу как WLED. в приложении кнопка включения у меня почему то не работает. В в старой прошивке лампа определялась под своим именем. Включение с кнопки приложения было. А так работает если . Открывает эффекты переключает , вкл и выкл из веб морды есть. Эфекты не проверял . все матрицы задействованы на лампах. Мажет будет время разберу одну посмотрю на матрице как все выглядит. Вам спасибо . думаю со временем научим приложение отображать лампу под своим именем.Screenshot_20230611-021511.jpg
 
  • Лойс +1
Реакции: shax

dina

★★✩✩✩✩✩
3 Окт 2021
330
84
49
Как скачать/обновлять проект
Для тех ,у кого Виндовс. Установить Git и Platformio .Как установить Platformio ссылка https://alexgyver.ru/platformio-замена-arduino-ide/ ( только я не понял ,платформио можно отдельно ставить или только через вскоде ,это надо прояснить и с питоном тоже). Открываем консоль Git-bash ,находиться Пуск ,программа Git , находим Git-bash ,нажимем, там в выпадающем окне вводим git clone --depth 1 --no-single-branch https://github.com/vortigont/FireLamp_JeeUI.git репозитарий сформируеться на системном диске С ,пользователь( Users) . Находим созданный репозитарий на диске С ,открываем , находим пакетный файл Builder ,нажимаем ,откроеться консоль зеленого цвета ,с командами ,дальше все манипуляции делаем там. Нажимаем m ,откроеться выпадающее окно командной строки c репозитария лампы ,созданного на диске С :Users. Где нужно выполнить команды git pull (обновление) , pio pkg update (обновление) , быстро переключаться между различными ветками проекта можно командами git switch master, git switch feat и т.п.После обновления,при переключении веток не забываем удалять папку \.pio, иначе могут быть ошибки компиляции. Можно выполнять команды по прошивке например pio run -e esp32 -t upload собрать и записать в контроллер проект под платформу esp32 и pio run -e esp32 -t uploadfs записать в контроллер образ ФС под платформу esp32 . Также манипуляции по прошивке можно производить в файле Builder , где например Build and upload - Esp32 - (9) * Собрать и прошить - Esp32 ,нужно нажать 9 и Build and upload File System - (f1) * Собрать и прошить Файловую Систему ,нужно набрать f1 ,все необходимые команды по сборке и прошивке находяться в файле Builder.Добро пожаловать в ясельную группу хакеров ))) Посмотрите у кого Виндовс ,проверьте ,если чё дополните (исправьте) ,и для нубов как я ,в шапку добавить. Ну и необходимые команды в файле.
 

Вложения

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

andy040670

★★★✩✩✩✩
13 Ноя 2019
339
108
53
После обновлении, переключении веток не забываем удалять папку \.pio, иначе будут ошибки компиляции.
 

Andron-65

★✩✩✩✩✩✩
18 Май 2020
68
18
Добрый денб всем . Друзья такая проблема все компилируется , прошивается и даже работает. Но вот такая проблема картинка ниже.Снимок экрана (96).png

Проблема 1 висит которая не дает покоя в platformio ini
 

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
Приложение определяет лампу как WLED
да я наспех прикрутил чтобы находилась просто, заглушку поставил. Формат этой xml'ки я не знаю. Надо или перехватывать трафик от апликухи или копаться в коде влед и самого приложения. Позже доделаю, будет и имя и включалка. Занесите в Issues.

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

Проблема 1 висит которая не дает покоя в platformio ini
это вообще не критично, надо убрать устаревший параметр.
 

dina

★★✩✩✩✩✩
3 Окт 2021
330
84
49
похоже что-то вы старое собираете если точки замирают
Они иногда замирают ,после сохранений или перезагрузок ,четкой тенденции ,я не отловил ,питание передернишь тикают. С питоном ,надо ситуацию прояснить ,у меня он сейчас не стоит, может вскоде что то притянуло ,там вроде С++ в расширениях поставило? Стоит прошивка мастер есп 32 залитая через консоль ,собраная типа без питона. Тут такая дилема ,для консоли нужно платформио ,оно ставиться через вскоде , вскоде ругается на осутствие гита ,ставишь гит. Если есть вскоде ,зачем консоль? В вики ,я писать не буду ,это не мой холодильник , я туда ничего не клал и открывать не буду )
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
после сохранений или перезагрузок
залипали если контроллер перезагружался на горячую, без передёргивания питания. Я проде починил это, по-крайней мере у меня перестали залипать.

под виндой всё обычно через задницу... это под линуксом ставится питон и платформио как питоновское приложение. Вскоде идет сверху как нахлобучка. А в винде вскоде ставит свой питон, своё окружение. В винду можно поставить питон и гит без вскоде, они должны прописаться в переменные окружения чтобы в консоли работы команды git и pio, куда там ставится платформио, я честно говоря не копался. Как по мне, так проще WSL2 окружение на линуксе запустить в той же винде и там работать. Но то я привыкший. В чем хороша работа в консоли - так то что ты всегда знаешь что конкретно происходит и видишь все ошибки. А не то что нажал кнопочку и оно где-то там свалилось.

А Вики открыта для всех кто готов ее напонять, для того и сделана. Документация - это половина проекта.
 

dina

★★✩✩✩✩✩
3 Окт 2021
330
84
49

@vortigont,
Про точки ,я заметил ,что 50 на 50 они то горят ,то не горят при старте ,когда на дисплее ,выводиться текущий ип адрес подключения лампы(если акктивирован). Там они гореть не должны.Вобщем с точками ,я на ночь обесточиваю лампу, при вкл лампы утром если точки горят ,вместе с выводом ип адреса ,то дальше они не мигают.Если не горят ,то работают.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
934
505
Saint-Petersburg, Russia
Походу эти дисплеи разные бывают. В либе есть специальный метод для управления точками, но, с тем дисплеем что у меня есть, он вообще не работает.
Нужны отзывы еще от кого-то, у меня сейчас при горячих перезагрузках точки при показе ИП горят, но затем начинают мигать когда переключается показ времени.