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

Комментарии

vortigont

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

Настройки микрофона при перезагрузке не сохраняет.
если есть желание это исправить, то еще раз повторю - какие конкретно настроки не сохраняет, по пунктам, куда пойти и какой конкретно флажек или поле не сохраняется?
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Пардон,циферки калибровки например 1.4 (коэф нуля) ,там вроде пока одна настройка. Эффект 12 типа северное сияние 67 эффект.
 
Изменено:
  • Лойс +1
Реакции: vortigont

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
Настройки - микрофон - вот на этой странице не сохраняет.
Не сохраняет: Коэф. коррекции нуля ; Уровень шума, ед ; Шумодав: .
Доче очень понкравилось моргание под музыку, а он сбрасывает настройки после перезагрузки(
Я приложил снимок с настройками, где не сохраняет.

Еще не изменяет настройку в:
Настройки - Настройки ESP - Лимит по току (mA)
 

Вложения

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

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@PavelNMSK, @dina,
вот так уже лучше. Параметры микрофона менялись, но сбрасывались при загрузке. Поправил.

Настройки - Настройки ESP - Лимит по току (mA)
посмотрел - у меня сохраняется значение, после перезагрузки остается. У вас что там - какое значение в поле и что возвращается после перезагрузки?
 

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
@vortigont, там 2000. На 2100 пробовал менять, на 1900 пробовал, на 1000, на 3000. Такое ощущение, что на кнопку сохранить не реагирует.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
Такое ощущение, что на кнопку сохранить не реагирует
хм, функционально там все работает. Менял, перегружал - заначение восстанавливается.
Вы меняете значение, вас перебрасывает в общую страницу настроек, потом заходите заново в есп страницу и значение там старое?
Посмотрите что в конфиге http://lamp/config.json, там должно быть поле CLmt со значением БЕЗ кавычек. Может вам надо конфиг сбросить.
 

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
А ФТП работает? или на будущее задел? Просто там тоже ничего не сохраняет. Даже кнопка называется не сохранить, а "blue", если на неё нажать - ничего не происходит.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@PavelNMSK, у вас, походу, устаревшие библиотеки в проекте. Выполните pio pkg update или удалите папку .pio
Возможно надо будет перезалить ФС.
До кучи перенёс параметр тока в настройки матрицы, там где пин и размеры настраиваются, ищите там теперь.
FTP работает нормально.
 

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
Я может уже надоел, но:
1) Настройки - Настройки ESP - Пин кнопки выставляю ( у меня 22 ), нажимаю сохранить - никакой реакции.
2) Настройки - FTP Server - какие бы параметры не менял - по нажатию кнопки никакой реакции (скриншот страницы приложил)

Проект полностью перекачал с git, перезалил прошивку и перезалил ФС - не помогло. Clear Sys Config нажимал кнопку.
 

Вложения

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
Я пин кнопки в конфиг файле устанавливал ,для мех кнопки HIGH_PULL. В вэбморде ,изм. пина, не работало ,как сейчас не знаю.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@PavelNMSK, вы либо что-то не то качаете либо не прошиваете. Надпись "blue" на кнопке это ошибка.
Какая версия EmbUI отображается слева в колонке в вебморде? Если собираете из мастер-ветки, то должна быть 2.8.1

По поводу кнопки, вероятно Dina прав, ее надо менять в конфиг файла из-за либы гайвера, которая не позволяет настраивать пин на лету. Эту либу надо менять, до этой части я еще недобрался.
Уберу вообще эту страницу "настройки ESP" что-бы не сбивала с толку.

P.S. подробное описание проблем не надоедает а помогает, так что не стеняйтесь.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@PavelNMSK, ну хороший вопрос что у вас не так или у меня не так.
Проверьте ещё другие страницы по кнопкам - дату/время и мкутт, там тоже проблемы? зайдите в каталог .pio/libdeps/esp32/EmbUI и выполните команду git rev-parse --short HEAD

@dina, у вас какая надпись на кномке в разделе "ftp"?
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
так, нашел, мой косяк - челом бью :) Один комит я таки забыл влить именно с кнопкой от самого фтп, ща подготовлю вылью.

настройку не сохраняет при перезагрузке ,другие Brightness Scale
да, у меня тоже сбросилось, поправлю.

поправил кнопку у фтп и восстановление "Brightness Scale"
 
  • Лойс +1
Реакции: dina и VitalikV

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
FTP работает, микрофон тоже.
А работа с модулем часов реального времени и сегментным экраном уже реализованы? Можно прикручивать?
 

dina

★★✩✩✩✩✩
3 Окт 2021
359
91
49
@PavelNMSK,Модуля часов не будет ,тм 1637 работает.
 

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
@dina, плохо( Если свет отключат и включат время собьется и будильник не сработает, если к инету не подключится.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
541
Saint-Petersburg, Russia
@PavelNMSK, rtc модуль обычно используют в устройствах, которые большую часть временени проводят во сне, требуют пробуждения по расписанию или часто выключаются.
Если стоит задача получить надежный будильник, работающий независимо от времени, связи и внешнего питания, то начинать надо совсем с других вещей. И текущий проект никак на это не ориентирован.
Код, связанный с RTC в проекте остался, я его мельком глянул и он мне не понравился от слова совсем, включается он дефайном
RTC в конфиге. Поддерживать его в том виде как есть у меня желания нет, переписывать нет времени. Может когда-нибудь когда остальные более насущные и интересные задачи будут решены к этому вопросу можно будет вернуться.

А у вас часто бывает что после выключения света часами нет интернета? Или вопрос из разряда гипотетических?
 

vortigont

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

PavelNMSK

✩✩✩✩✩✩✩
12 Сен 2023
17
5
@vortigont,вопрос был гипотетический. Не работает и ладно. Я вообще про часы не думал, когда лампу начал собирать, а если есть функционал, то что бы им не воспользоваться.
 

vortigont

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

@PavelNMSK, часы на ТМ дисплее работают норм. В обозримой перспективе возможно появится поддержка MAX7219 модулей как руки дойдут