maksimkurb / FireLamp_JeeUI

Project Fire Lamp based on EmbUI framework (GPL license)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Что это

Обсуждение и поддержка данной прошивки идет на форуме

GitHub Logo

Управление

По кнопке:

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

    • 2 касания - следующий эффект

    • 3 касания - предыдущий эффект

    • 4 касания + 4 касания - запуск сервиса ОТА

    • 5 касаний - вывод IP на лампу

    • 6 касаний - вывод текущего времени бегущей строкой

    • удержание - регулировка яркости

    • 1 касание, удержание - регулировка "скорости" эффекта

    • 2 касания, удержание - регулировка "масштаба" эффекта

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

По HTTP

команды можно посылать на лампу через браузер или curl по URL вида http://esp-xxxxxx/cmd?arg=param

  • /cmd?on /cmd?off /cmd?on=true /cmd?on=false - вкл/выкл
  • /cmd?demo - режим ДЕМО
  • /cmd?gbright /cmd?gbright=true - проверка/установка для глобальной яркости
  • /cmd?msg=Hello - вывод сообщения на лампу
  • /cmd?bright=0-255 - яркость
  • /cmd?speed=0-255 - скорость
  • /cmd?scale=0-255 - шкала
  • /cmd?effect=N - эффект номер N
  • /cmd?move_next - следующий эффект
  • /cmd?move_prev - предыдущий эффект
  • /cmd?move_rnd - случайный эффект
  • /cmd?effect - номер текущего эффекта
  • /cmd?warning /cmd?warning=[16777215,5000,500] - неблокирующий вывод мигалки поверх эффекта (выдача предупреждений)
  • /cmd?alarm=true - форсировать включение будильника
  • /cmd?dynCtrlX , к примеру cmd?dynCtrl5=123 - получить/установить значение дин. контрола
  • /cmd?reboot - перезагрузить лампу
  • /cmd?OTA - запустить сервер обновления OTA через PIO

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

Дополнительные служебные комманды:

  • /heap - показать свободное место на куче
  • /echo - показать эхо-ответ (json для формирования интерфейса)
  • /config - показать текущий конфиг (json основных настроек)
  • /scan - показать доступные WiFi-сети
  • /config.json - скачать активный конфиг лампы
  • /events_config.json - скачать активный конфиг событий
  • /update - форма http-обновления прошивки
  • /edit - вызов редактора конфигов (esp8266/esp8266 - логин/пассворд)

ESP8266 vs ESP32

Основная разработка ведется под контроллер esp8266. ESP32 полностью поддерживается на уровне движка, но имеет ограниченный функционал (в основном связанный со сторонними библиотеками).

Сборка под ESP32 выполняется отдельно. pio run -e esp32

Как собрать проект

Проект собирается с помощью Platformio

Для сборки проекта понадобится следующее:

Установить IDE Visual Studio Code, и в качестве плагина к ней установить Platformio. О том как это сделать можно найти массу роликов на youtube, например этот.

Желательно еще установить Git, обновлять проект будет значительно проще

Как скачать/обновлять проект

Актуальный срез проекта всегда можно скачать в виде zip-архива по ссылке, либо перейдя по ссылке последнего релиза, там же хранятся бинарники собранные под этот релиз Либо можно поддерживать клон репозитория и подтягивать обновления перед каждой новой сборкой Открываем Git-bash, клонируем репозиторий в тукущую папку командой 'git --depth 1 --no-single-branch https://github.com/DmytroKorniienko/FireLamp_JeeUI.git' В последующем для того чтобы обновить репозиторий достаточно перейти в папку проекта и выполнить команду 'git pull' Что бы переключиться на ветку для ESP32 выполняем команду 'git checkout esp32', переключиться обратно на master 'git checkout master'

После того как вы скопировали проект (в виде zip архива или через git clone), необходимо в папке include скопировать файл user_config.h.default под новым именем user_config.h и в нем настроить сборку под свои параметры матрицы, номеров выводов и требуемых функций.

Сборка

  • Открываем папку проекта в VSCode
  • Что бы собрать прошивку, можно воспользоваться кнопками в нижней статусной строке:
    • PlatformIO:Build - собрать прошивку
    • PlatformIO:Upload - загрузить прошивку через USB в плату.

Platformio сам скачает необходимые бибиотеки для сборки проекта.

Также можно открыть терминал с помощью клавишь Ctrl+Shit+` и воспользоваться расширенными командами для сборки проекта.

  • pio run - собрать проект по умолчанию (esp8266dev), dev версия под esp8266 c выводом отладочных сообщений через serial интерфейс.
  • pio run -e esp8266 - собрать версию esp8266, будет собрана облегченная прошивка без вывода отладочных сообщений через serial интерфейс Рекомендуется для повседневного использования, если нет нужды отлаживать работу лампы
  • pio run -e esp32dev - собрать версию esp32dev, будет собрана прошивка под esp32 c выводом отладочных сообщений через serial интерфейс
  • pio run -t upload - собрать и прошить проект по умолчанию (esp8266dev)
  • pio run -e esp8266 -t upload - собрать и прошить облегченную версию
  • pio deviсe monitor - запустить serial-монитор для просмотра сообщений, выдаваемых контроллером

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

  • .pio/build/esp8266/firmware.bin - обычная версия под esp8266
  • .pio/build/esp8266dev/firmware.bin - debug версия под esp8266
  • .pio/build/esp32dev/firmware.bin - debug версия под esp32

About

Project Fire Lamp based on EmbUI framework (GPL license)

License:GNU General Public License v3.0


Languages

Language:C++ 75.4%Language:C 19.9%Language:HTML 2.6%Language:Batchfile 0.8%Language:JavaScript 0.5%Language:Shell 0.5%Language:CSS 0.4%Language:Python 0.0%