Инструкция по установке прошивки (ее можно скачать отсюда , это последняя стабильная версия), но самая актуальная версия, которая разрабатывается в данный момент, находится тут: develop-ветка
Также можно прошить заранее подготовленную прошивку и ФС отсюда, здесь самая новая версия от 14.12.2020
Создание конфигурации:
Файл user_config.h.default переименовываете в user_config.h и редактируете.
Обратите внимание, то что для кнопки и плеера существует также возможность менять пины после перепрошивки, сделано это для тех, кто хочет залить бинарник, а затем настроить эти пины под себя:

Порядок создания пользовательской конфигурации описан здесь: user_config.h , пример такого файла можно посмотреть тут .
После подключения к лампе в режиме точки доступа она доступна по в браузере по адресу http://192.168.4.1 , если же после этого ее переподключить к роутеру, то узнать ее адрес можно по 5 нажатий на кнопку - вывод IP, если кнопки нет - то при перезапуске лампы она однократно напишет IP. Также ее можно найти в сетевом окружении компьютера:

После обнаружения - доступен переход по адресу http://firelamp/ (работает нестабильно). Либо можно c помощью утилиты Service Browser найти сервис http и IP лампы, либо просто поглядеть IP который выдал роутер, если он имеет возможность показать этот адрес.
Основные возможности прошивки:
История:
По состоянию на сегодня прошивка находится в стабильной стадии (есть релизная версия в мастер и текущая в девелоп бренчах). Прошивка активно развивается и над ней работают несколько разработчиков.
Вариант печатного корпуса для лампы можете посмотреть тут.
----------------------------------------
Можно ли копировать, менять что-то по своему усмотрению? Да, естественно - лицензия GPLv3. Разрешено все, что оговаривается лицензией. Но учтите, что согласно лицензии вы обязуетесь предоставлять исходный код проектов основанных на данном, даже в случае коммерческого использования. Либо сразу (предпочтительно), либо по первому требованию любого из обратившихся. Если вас не устраивают идеи и соглашения свободного кода - выбирайте другой проект и не используйте этот. И еще раз - моя позиция другими словами.
Несколько скриншотов интерфейса прошивки (показаны три темы - классическая, светлая, темная):



Также можно прошить заранее подготовленную прошивку и ФС отсюда, здесь самая новая версия от 14.12.2020
Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но за время разработки фреймворк был существенно переработан, поменял название и фактически лампа уже работает на фреймворке EmbUI, который позволяет строить WebUI интерфейсы для любых проектов, считайте его готовым движком создания интерфейсов под ESP8266/ESP32, может использоваться кем угодно под свои задачи, полностью открыт и разработка продолжается. На уровне фреймворка есть:
1. Асинхронный вебсервер, с поддержкой до 5 одновременных клиентов и синхронизацией между ними.
2. Поддержка http-get запросов
3. Поддержка mqtt
4. SSDP, mDNS, полностью автоматический WiFi c восстановлением после сбоев
5. Предустановленный и преднастроенный базовый интерфейс
6. Фреймворк достаточно экономно расходует память и можно отключить некоторые потребляющие память части, типа SSDP
7. Поддержка локализации
8. Инструкция и примеры использования
В общем будут вопросы по фреймворку и его использованию - задавайте в теме. Лампа не единственный проект который может использовать фреймворк, на данный момент на нем же у меня в тестовом варианте собрана веб-камера для esp32, но пока еще не довел до ума и не выделил в отдельный проект.
Далее более подробно по установке:
Учтите, что PIO и VS Code развиваются и инструкция может быть немного не актуальна и не соответствовать текущим версиям ПО. При возникновении вопросов/проблем - задавайте их в теме.
1. Устанавливаем Visual Studio Code в зависимости от вашей операционной системы 32 или 64 битную версию.
2. Устанавливаем Git он тоже понадобится, так как Visual Studio Code на пару с PlatformIO будут ругаться что его им очень не хватает.
3. Перезагружаем компьютер.
4. Установить PlatformIO для этого запустить Visual Studio Code и в меню View выбрать пункт Extensions - либо воспользоваться сочетанием клавиш (Ctrl+Shift+X)
5. Выбрать PlatformIO IDE и нажать Install
6. Перезапустить Visual Studio Code у вас сразу откроется вкладка PIO Home, работаем в ней.
7. В вкладке Открыть проект - Open Project - заходим в папку с проектом и нажимаем Open "FireLamp_JeeUI-master"
![]()
8. Слева открываем Platformio.ini и делаем необходимые настройки, раскомментировать нужный board, это плата на которой вы собираете лампу, и закомментируйте ненужную.
9. Тут же нужно добавить настройки Com порта на котором у вас ваша плата, это делается командой upload_port = COM8 (где COM8 номер вашего порта COM2, COM3 и т.д.)
10. Останется настроить саму прошивку под себя это делается в include - config.h там все подробно откомментировано.
11. Первоначально вам необходимо будет записать файлы в ФС контроллера, иначе веб-интерфейс не будет доступен!Делается это так меню Terminal - Run Task.. (Ctrl+Alt+T) - PlatformIO - PlatformIO: Upload File System Image, если вы не забыли указать нужный Com порт и подключили плату все должно быть успешно.
Так вот там по умолчанию нет этого пункта.
Нужно нажать Кнопку PlatformIO, потом выбрать конфигурацию, которую собираешь и только потом Upload Filesystem Image. И только после такого она появляется в Run Task. Правильный скриншот прилагаю.![]()
12. Можно собирать и заливать прошивку в лампу. Делается это нажатием на PlatformIO Upload.
![]()
P.S. Если вы забудете выполнить 11 пункт то не сможете подключится к лампе, при подключении к ней она будет перезагружаться.
Способы обновления прошивки:
OTA - обновляется сама прошивка и есть возможность обновить File System Image как это описано выше, можно работать с лампой так как и по физическому подключению к COM порту без разбора и подключения проводом.
Для обновления прошивки по OTA нужно сделать изменения в файле PlatformIO.ini
1. Закомментировать по аналогии с другими строками и соблюдением пробелов, ваш COM порт.
2. Раскомментировать следующие строки, обратите внимание пробелы очень важны, если не соблюсти их будет выдаваться ошибка при запуске прошивки и она так и не начнется.
В строке с IP адресом, указать ваш адрес лампы.
C++:upload_protocol = espota upload_port = 192.168.1.36 upload_flags = --auth=12345 -p 3232
![]()
Перед началом обновления, не забудьте перевести лампу в режим обновления PIO-ОТА, для http обновления (читать ниже) это делать не обязательно. Также убедитесь, что обновление прошивки через PIO разрешено дефайном в user_config.h
* внимание, для питона важны отступы (пробелы), так что внимательно выравнивайте на одном уровне
HTTP - обновление через web интерфейс, можно обновить как прошивку, так и ФС:
IP адрес лампы\update указываем файл firmware.bin или то же самое через WebUI
Нужно будет выбрать файл и нажать Upload, на кнопке Обновление появятся проценты прогресса.
Здесь на картинке под 1 показан вариант ОТА через PIO, под 2 - вариант через http для WebUI.
Для формирования файла firmware.bin нужно в PlatformIO запустить сборку прошивки без заливки. Для формирования ФС - соответственно соберите ФС и загрузите файл ФС пользуясь теми же кнопками, как при заливке прошивки.
![]()
После непродолжительной сборки прошивки, терминал выдаст ответ:
= [SUCCESS] =
файл будет находится в папке со скачанной прошивкой .pio\build\esp8266dev\
Я прошиваю после стирания:
![]()
Быстрый старт.
Что потребуется:
Visual Studio Code - скачиваем и устанавливаем, желательно перелогиниться или перезагрузиться, чтобы точно применились настройки путей.
Под VS Code устанавливается PlatformIO, дальше вся работа там. Если кому приятнее работать в ArduinoIDE - адаптируйте самостоятельно, у меня терпения не хватает ждать пока там все соберется, так что мне проще в PlatformIO все делать.
Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но он уже включен в проект, так что дополнительно качать не нужно.
В общем у вас после открытия проекта должно выглядеть как-то так:

Контроллер ESP8266/ESP32 выбирается в файле platformio.ini.
ВНИМАНИЕ: Первоначально вам необходимо будет записать файлы в ФС контроллера, иначе веб-интерфейс не будет доступен!
Делается это так: PlatformIO->Run Task...->Upload File System Image

После этого можно собирать проект и записывать его в контроллер. Сами файлы для загрузки в ФС находятся в \FireLamp_JeeUI\data там же у меня находятся и файлы конфигурации config.json и eff_config.json . Вы также можете поместить свои предварительно созданные конфигурации, если это необходимо. Также к файловой системе можно получить доступ, если при компиляции проекта была раскомментирована настройка:
//#define USE_FTP // доступ к SPIFFS по FTP, логин/пароль: esp8266
После чего вы можете подключиться фтп-клиентом и скачать/записать то, что вам нужно.
---------------------

Что потребуется:
Visual Studio Code - скачиваем и устанавливаем, желательно перелогиниться или перезагрузиться, чтобы точно применились настройки путей.
Под VS Code устанавливается PlatformIO, дальше вся работа там. Если кому приятнее работать в ArduinoIDE - адаптируйте самостоятельно, у меня терпения не хватает ждать пока там все соберется, так что мне проще в PlatformIO все делать.
Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но он уже включен в проект, так что дополнительно качать не нужно.
В общем у вас после открытия проекта должно выглядеть как-то так:

Контроллер ESP8266/ESP32 выбирается в файле platformio.ini.
ВНИМАНИЕ: Первоначально вам необходимо будет записать файлы в ФС контроллера, иначе веб-интерфейс не будет доступен!
Делается это так: PlatformIO->Run Task...->Upload File System Image

После этого можно собирать проект и записывать его в контроллер. Сами файлы для загрузки в ФС находятся в \FireLamp_JeeUI\data там же у меня находятся и файлы конфигурации config.json и eff_config.json . Вы также можете поместить свои предварительно созданные конфигурации, если это необходимо. Также к файловой системе можно получить доступ, если при компиляции проекта была раскомментирована настройка:
//#define USE_FTP // доступ к SPIFFS по FTP, логин/пароль: esp8266
После чего вы можете подключиться фтп-клиентом и скачать/записать то, что вам нужно.
---------------------
Кнопки по сборке проекта, включению вывода сообщений отладчика, очистке проекта от объектных файлов, остановке задач и т.д. находятся внизу, слева:Я бы ещё в инструкции дописал, как собирать проект и записывать его в контроллер, сам искал долго эти кнопки.

Создание конфигурации:
Файл user_config.h.default переименовываете в user_config.h и редактируете.
Обратите внимание, то что для кнопки и плеера существует также возможность менять пины после перепрошивки, сделано это для тех, кто хочет залить бинарник, а затем настроить эти пины под себя:

Порядок создания пользовательской конфигурации описан здесь: user_config.h , пример такого файла можно посмотреть тут .
По кнопке:
* Из выключенного состояния
- 1 касание - включить на последнем эффекте
- 2 касания - включить в режиме ДЕМО
- долгое удержание - включить в режиме "белая лампа" на минимальную яркость (ночник)
- касание, удержание - включить в режиме "белая лампа" на максимальную яркость
* Во включенном состоянии
- 1 касание - выключить лампу
- 2 касания - следующий эффект
- 3 касания - предыдущий эффект
- 4 касания + 4 касания - запуск сервиса ОТА
- 5 касаний - вывод IP на лампу
- 6 касаний - вывод текущего времени бегущей строкой
- удержание - регулировка яркости
- 1 касание, удержание - регулировка "скорости" эффекта
- 2 касания, удержание - регулировка "масштаба" эффекта
Это дефолтное состояние для кнопки, но абсолютно любую настройку можно поменять, к примеру вот переход к 253 эффекту по 7 нажатиям во включенном состоянии:

В общем если что-то нужно или наоборот не нужно - настраивайте под себя.
* Из выключенного состояния
- 1 касание - включить на последнем эффекте
- 2 касания - включить в режиме ДЕМО
- долгое удержание - включить в режиме "белая лампа" на минимальную яркость (ночник)
- касание, удержание - включить в режиме "белая лампа" на максимальную яркость
* Во включенном состоянии
- 1 касание - выключить лампу
- 2 касания - следующий эффект
- 3 касания - предыдущий эффект
- 4 касания + 4 касания - запуск сервиса ОТА
- 5 касаний - вывод IP на лампу
- 6 касаний - вывод текущего времени бегущей строкой
- удержание - регулировка яркости
- 1 касание, удержание - регулировка "скорости" эффекта
- 2 касания, удержание - регулировка "масштаба" эффекта
Это дефолтное состояние для кнопки, но абсолютно любую настройку можно поменять, к примеру вот переход к 253 эффекту по 7 нажатиям во включенном состоянии:

В общем если что-то нужно или наоборот не нужно - настраивайте под себя.
По 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,1] - неблокирующий вывод мигалки поверх эффекта (выдача предупреждений), первое число - цвет, второе - полный период, третье - полупериод мигания, четвертое - тип уведомления (0 - цвет, 1-2 - цвет и счетчик, 3 - счетчик)
- /cmd?alarm=true - форсировать включение будильника
- /cmd?dynCtrlX , к примеру cmd?dynCtrl5=123 - получить/установить значение дин. контрола
- /cmd?reboot - перезагрузить лампу
- /cmd?OTA - запустить сервер обновления OTA через PIO
- /cmd?draw=[цвет,X,Y]
- /cmd?matrix - отдает размеры [X,Y]
- /cmd?fillmatrix=цвет - заливка цветом
так же команды можно объединять в цепочки в одной посылке, т.е. допустим включить лампу, установить яркость, перейти к эффекту
аналогичные команды работают и для MQTT, если чего-то не хватает или что-то не получается - спрашивайте в теме
Дополнительные служебные комманды:
- /heap - показать свободное место на куче
- /echo - показать эхо-ответ (json для формирования интерфейса)
- /config - показать текущий конфиг (json основных настроек)
- /scan - показать доступные WiFi-сети
- /config.json - скачать активный конфиг лампы
- /events_config.json - скачать активный конфиг событий
- /update - форма http-обновления прошивки
- /edit - вызов редактора конфигов (esp8266/esp8266 - логин/пассворд)
команды можно посылать на лампу через браузер или 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,1] - неблокирующий вывод мигалки поверх эффекта (выдача предупреждений), первое число - цвет, второе - полный период, третье - полупериод мигания, четвертое - тип уведомления (0 - цвет, 1-2 - цвет и счетчик, 3 - счетчик)
- /cmd?alarm=true - форсировать включение будильника
- /cmd?dynCtrlX , к примеру cmd?dynCtrl5=123 - получить/установить значение дин. контрола
- /cmd?reboot - перезагрузить лампу
- /cmd?OTA - запустить сервер обновления OTA через PIO
- /cmd?draw=[цвет,X,Y]
- /cmd?matrix - отдает размеры [X,Y]
- /cmd?fillmatrix=цвет - заливка цветом
так же команды можно объединять в цепочки в одной посылке, т.е. допустим включить лампу, установить яркость, перейти к эффекту
аналогичные команды работают и для MQTT, если чего-то не хватает или что-то не получается - спрашивайте в теме
Дополнительные служебные комманды:
- /heap - показать свободное место на куче
- /echo - показать эхо-ответ (json для формирования интерфейса)
- /config - показать текущий конфиг (json основных настроек)
- /scan - показать доступные WiFi-сети
- /config.json - скачать активный конфиг лампы
- /events_config.json - скачать активный конфиг событий
- /update - форма http-обновления прошивки
- /edit - вызов редактора конфигов (esp8266/esp8266 - логин/пассворд)
После подключения к лампе в режиме точки доступа она доступна по в браузере по адресу http://192.168.4.1 , если же после этого ее переподключить к роутеру, то узнать ее адрес можно по 5 нажатий на кнопку - вывод IP, если кнопки нет - то при перезапуске лампы она однократно напишет IP. Также ее можно найти в сетевом окружении компьютера:

После обнаружения - доступен переход по адресу http://firelamp/ (работает нестабильно). Либо можно c помощью утилиты Service Browser найти сервис http и IP лампы, либо просто поглядеть IP который выдал роутер, если он имеет возможность показать этот адрес.
Основные возможности прошивки:
- Повторяет все возможности других прошивок по управлению эффектами и предоставляет массу других возможностей
- Управление по MQTT , подробную инструкцию по установке и настройке можете почитать тут или посмотреть видео установки брокера
- Отправка текстовых сообщений на лампу, в том числе специальных %IP, %TM, %EN
- Настройка и вывод времени, само время синхронизуется по ntp или может задаваться вручную
- Периодический вывод времени и/или новогоднего отсчета, лампа может использоваться как гирлянда на окно, корректный вывод текста с отзеркаливанием в случае если лампа "смотрит" во двор.
- OTA в двух вариантах, при обновлении файловой системы, чтобы не терять настройки можете их сохранить и поместить в папку /data
- Гибкое и настраиваемое управление кнопкой, индикаторы управления
- Каждый эффект может иметь дополнительные динамические контролы, кроме трех стандартных. При необходимости любой контрол может быть скрыт
- Подключение микрофона MAX9814 элементарное: +3.3В с ESP на Vdd микрофона, землю (GND) на землю, сигнальный (Out) микрофона на пин А0. На этом все
- Возможно менять состояние произвольного пина/пинов (HIGH/LOW/TOGGLE) по событию. Строка настройки вида: [{'pin':1,'act':'H'}], допустимые варианты 'H'==HIGH, 'L'==LOW, 'T'==TOGGLE, также можно записать список, к примеру: [{'pin':1,'act':'H'},{'pin':2,'act':'L'},{'pin':3,'act':'T'}] - 1 установит в HIGH, 2 в LOW, 3 - переключит. Если для кого-то подобное управление слишком сложно, то есть возможность активировать AUX-пин, с прямым управлением им через http/mqtt или UI.
- Есть возможность ставить множественные будильники и прочие автоматизации
- Добавлен микрофон (MAX9814) и цветомузыка на основе амплитуды/частоты. Добавлен эффект "Частотный анализатор", множество эффектов имеют зависимость от звука, которую при необходимости можно отключить, как выборочно, так и для всех эффектов сразу
- Поддержка http-команд , те же команды работают и для mqtt
- Пользовательский интерфейс всегда актуален и синхронизирован с прошивкой, т.к. является частью прошивки
- Если будет написано приложение под андроид/иос/... то оно тоже будет синхронизировано, т.к. интерфейс конструируется динамически
- DF Player Mini - озвучивание эффектов, MP3-плеер, озвучивание времени, при проблемах с плеером обязательно поглядите сюда, подключение плеера - изучите это сообщение. Архив со звуковыми файлами можете взять, к примеру - тут, внимание изменена структура каталога файлов времени - последняя версия тут.
- При потере связи с роутером прошивка автоматически создаст точку доступа, при восстановлении связи - переподключится, никаких проблем с переключением режимов нет, никаких задержек при недоступности серверов времени - тоже нет, лампа полностью доступна и управляется одинаковым образом как в STA режиме, так и в AP. IP лампы можно поглядеть как по нажатию кнопки, так и в сетевом окружении компьютера, либо через просмотр сервисов (поддерживается Bonjour-сервисы)
- Прошивка гибко конфигурируется, можно отключать неиспользуемый функционал (кнопку, плеер, цветомузыку и т.д.)
- Рисовалка (пока через http/mqtt, но будет и через UI)
- По интеграции в Home Assistant можете поглядеть тут, самая новая и актуальная версия живет здесь.
История:
- старт с нуля
- перенесены изменения с прошлого проекта
- перенесен весь функционал
- поддежка мосфетов для автоматизаций
- перенесены эффекты со старых проектов и добавлены новые, общее количество подсчитать сложно, т.к. есть эффекты являющиеся генераторами эффектов, также можно создать копии, ориентировочное количество - 100 штук, впрочем все эти эффекты можно либо скрыть, либо удалить, либо наоборот создать доп. копии, кроме того есть возможность создать конфигурации, с разным поведением и переключать их по необходимости
- микрофон и цветомузыка
- возможность локализации (на данный момент есть - русский, украинский, английский, испанский)
- вывод звука (DF Player Mini) - озвучивание времени, эффектов, MP3-плеер, будильник
- часы реального времени
- приложение
По состоянию на сегодня прошивка находится в стабильной стадии (есть релизная версия в мастер и текущая в девелоп бренчах). Прошивка активно развивается и над ней работают несколько разработчиков.
Вариант печатного корпуса для лампы можете посмотреть тут.
----------------------------------------
Можно ли копировать, менять что-то по своему усмотрению? Да, естественно - лицензия GPLv3. Разрешено все, что оговаривается лицензией. Но учтите, что согласно лицензии вы обязуетесь предоставлять исходный код проектов основанных на данном, даже в случае коммерческого использования. Либо сразу (предпочтительно), либо по первому требованию любого из обратившихся. Если вас не устраивают идеи и соглашения свободного кода - выбирайте другой проект и не используйте этот. И еще раз - моя позиция другими словами.
Несколько скриншотов интерфейса прошивки (показаны три темы - классическая, светлая, темная):



Последнее редактирование: