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

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

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

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




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

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

ESP8266 vs ESP32

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

Как собрать проект
Для 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 - прошивка Фс
pio run -e esp8266 -t upload - прошивка
pio run -e esp8266 -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 esp8266 -t upload - собрать и записать версию esp8266, будет собрана облегченная прошивка без вывода отладочных сообщений через serial интерфейс Рекомендуется для повседневного использования, если нет нужды отлаживать работу лампы
  • pio run -e esp32debug -t upload - собрать и записать версию esp32 с отладкой, будет собрана прошивка под esp32 c выводом отладочных сообщений через serial интерфейс
  • pio run -e esp8266dev -t upload - собрать и прошить отладочную версию под esp8266
  • pio deviсe monitor - запустить serial-монитор для просмотра сообщений, выдаваемых контроллером


Для работы лампы нужно сформировать и залить в контроллер образ файловой системы. Выполняется это командой аналогично записи прошивки, но с параметром -t uploadfs, к примеру
  • pio run -t uploadfs - записать в контроллер образ ФС под платформу esp32
  • pio run -e esp8266 -t uploadfs - записать в контроллер образ ФС под платформу esp8266

После первой прошивки дальнейшие обновления можно заливать в контроллер по воздуху. Для этого нужно зайти браузером на контроллер по URL вида http://embui-xxxx/update, где xxxx это ID контроллера, нажать на кномку 'Firmware', выбрать файл с прошивкой и загрузить его в контроллер. Файл с прошивкой Platformio кладет в подпапки проекта:


  • .pio/build/esp8266/firmware.bin - версия под esp8266
  • .pio/build/esp32/firmware.bin - версия под esp32

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

О том как настроить обновление по воздуху (OTA) для своей лампы см страницу проекта на Гитхабе.

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

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

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

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

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


По кнопке:

  • Из выключенного состояния
    • 1 касание - включить на последнем эффекте
    • 2 касания - включить в режиме ДЕМО
    • долгое удержание - включить в режиме "белая лампа" на минимальную яркость (ночник)
    • касание, удержание - включить в режиме "белая лампа" на максимальную яркость
  • Во включенном состоянии
    • 1 касание - выключить лампу
    • 2 касания - следующий эффект
    • 3 касания - предыдущий эффект
    • 5 касаний - вывод IP на лампу
    • 6 касаний - вывод текущего времени бегущей строкой
    • удержание - регулировка яркости
    • 1 касание, удержание - регулировка "скорости" эффекта
    • 2 касания, удержание - регулировка "масштаба" эффекта

Это дефолтное состояние для кнопки, но абсолютно любую настройку можно поменять

HTTP/MQTT команды

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

Комментарии

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
@kostyamat, а ранее вами многократно упомянутый билдер для создания бинарников - тоже покромсан, или жив-здоров? Не нахожу его
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
@Константин 271, зачем же портить хорошую вещь. Наоборот, билдер доработан, поправлен переведен на украинский. Все как и положено. Но опять же, в нем есть английский если что.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
@kostyamat, ясно, спасибо от души)

Мне вот интересно стало - а зачем вообще билдер, можно просто бинарники выложить было одного вида, и всё. Со всеми настройками из constant.h или чего там у вас, включая ампераж БП, длину ленты или размер матрицы - в веб морду. Как это сделано в WLED. Было бы так просто! Никаких платформио/визуало/гито/шмито. Залил универсальные бинарники и сам всё себе настроил.
 

Сотнег

★★★★★★★
15 Янв 2020
4,122
1,439
@Константин 271,
это в классической лампе можно было бинарники выложить под стандартные размеры матрицы, схему сборки (снизу-вверх) и 2 ампера тока.

А с микрофонами, энкодерами и MP3 такой зоопарк, что никак.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
340
109
53

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
В этом доработка?
Не только, обновлено кое-что, полноценная поддержка esp32 сделана.

А с микрофонами, энкодерами и MP3 такой зоопарк, что никак.
Датчиком температури, вентилятором охлаждения матрицы, виходом на внешнее aux реле, плеером конвертированных GIF-анимаций, трансляциями Jinx и Solmate, и еще по мелочи. :) И все это под пять видов контроллеров.
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
340
109
53
Не только, обновлено кое-что, полноценная поддержка esp32 сделана.
Так проблем то и не было...
Хотя может быть..., я строил свои билдеры на каждую плату отдельно, по этому может и не заметил.
Не люблю комбайны.
 

Andron-65

★✩✩✩✩✩✩
18 Май 2020
68
18
@kostyamat,Очень приятно что такие спецы снова в русскоязычном сегменте . В связи с этим вопрос . на EMBUI озвучка эффекта трек проигрывается один раз и дальше молчание плеер ....24SS
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
340
109
53
Очень приятно что такие спецы снова в русскоязычном сегменте . В связи с этим вопрос . на EMBUI озвучка эффекта трек проигрывается один раз и дальше молчание плеер ....24SS
EMBUI А где там русский, мп3 файлы как были на русском так и остались, правда была у некоторых затея перевести на мове, (надеюсь меня не закидают помидорами из не залежной) не получилось, яндекс tts... В стране Украина сервис уже давно не доступен (сами заблочилии за долго до событий), а там множество голосов, я использую "премиум Алёна", да, подписке это платно, 1руб примерно за 2 недели если менее 100 запросов в день ( с учётом что голос получаем wav на сервере преобразуем его в мп3 и кешируем), но это другой проект, (умный дом*), сгабить голоса нет проблем было бы желание.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
@andy040670, то есть вы уверенны, что tts есть только у Яндекс? О...

*** Озвучку мовою не делали потому как лень обыкновенная. Мне не надо, я плеером не пользуюсь, kDn интереснее в коде копаться, Стёпе ефекти кодить, остальние либо не юзают плеер, либо им сейчас сильно не до озвучек.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
@kostyamat, а в нём можно указывать размер матрицы, лимит тока? Или это есть в вебморде? То, что русского нет в билдере - не важно, это ж правое поле? В левом то же самое на английском.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
@Сотнег, не совсем понимаю работу билдера. Он анализирует текущий скетч, что ли? И потом генерит бинарники - для тех, кто не хочет делать это в платформио?
 

andy040670

★★★✩✩✩✩
13 Ноя 2019
340
109
53
По идее, размер и мощность должны в билдере выбираться.
Нет, только в user config. Изменить мощность потом можно в вебморде.
Он анализирует текущий скетч, что ли? И потом генерит бинарники - для тех, кто не хочет делать это в платформио?
Он анализирует user config, на основе его собирает прошивку.
 

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
@kostyamat, подскажите, в вашей прошивке огонь и прочее - озвучивается как? Отдельными папками на эти эффекты, или файлы прописываются? Как выбираются звуки на эффекты? Это из веб морды?
 

malec

★★★★✩✩✩
5 Фев 2019
680
257
Здоровья Всем народ!!! Не было меня год и о разработке всё пропало😲. Но я много чего сохранил на компе. Последняя версия 2 .05.21. И буилдер там на двух языках... старый от 30.04.21
Что произошло, здесь??? Почему КДН ушёл???
Я писал первую инструкцию(с юморком) к буилдеру от Костямата...
 
Изменено:

Divin

★★★✩✩✩✩
30 Янв 2021
412
184
@malec, Все изменилось после 24.02.2022 - так сложилось, что практически все разработчики всех версий ламп, в том числе и этой, из Украины - а там сейчас *****. Вот они и ушли к всеобщему сожалению, но я их прекрасно понимаю. Поэтому - нет вобле!
 

malec

★★★★✩✩✩
5 Фев 2019
680
257
@Divin, Но ведь кДн с Питера🤔 , Вортигонт то-же... Костямат, Степко и Вова Люминджер с Украины🙄, но они не разрабы, хоть и очень много внесли в тот проект... А темы про EmbUI вообще пропали...🤨
Инфа старая , кДн он -же Дмитрий Корниенко с Украины😲. На Гит хабе всё ещё поддержка есть...
 
Изменено: