IoT, ESP WiFi лампа-будильник. Прошивка FireLamp_JeeUI (GPL)

WiFi лампа-будильник. Прошивка FireLamp_JeeUI (GPL)
Инструкция по установке прошивки (ее можно скачать отсюда):
Также можно прошить
заранее подготовленную прошивку и ФС отсюда

Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но он уже включен в проект, так что дополнительно качать не нужно.

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 порт и подключили плату все должно быть успешно.
1600444586890.png
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 интерфейс, не стирает параметры, можно обновить только прошивку, обновление File System Image только из приложения или OTA

IP адрес лампы\update указываем файл firmware.bin
Нужно будет выбрать файл и нажать Update внизу в статусе браузера появятся проценты прогресса.

Для формирования файла firmware.bin нужно в PlatformIO запустить сборку прошивки без заливки.
1588144337363.png



После непродолжительной сборки прошивки, терминал выдаст ответ:
= [SUCCESS] =
файл будет находится в папке со скачанной прошивкой .pio\build\esp8266dev\
Я прошиваю после стирания:
Быстрый старт.

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

Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но он уже включен в проект, так что дополнительно качать не нужно.
Внимание! : фреймворк существенно переработан, т.к. в исходном состоянии он к использованию малопригоден, к сожалению. Актуальная версия всегда в проекте, в форке обновляю реже.

В общем у вас после открытия проекта должно выглядеть как-то так:
1583172758919.png

Контроллер ESP8266/ESP32 выбирается в файле platformio.ini.
ВНИМАНИЕ: Первоначально вам необходимо будет записать файлы в ФС контроллера, иначе веб-интерфейс не будет доступен!
Делается это так: PlatformIO->Run Task...->Upload File System Image
1583173209762.png
После этого можно собирать проект и записывать его в контроллер. Сами файлы для загрузки в ФС находятся в \FireLamp_JeeUI\data там же у меня находятся и файлы конфигурации config.json и eff_config.json . Вы также можете поместить свои предварительно созданные конфигурации, если это необходимо. Также к файловой системе можно получить доступ, если при компиляции проекта была раскомментирована настройка:
//#define USE_FTP // доступ к SPIFFS по FTP, логин/пароль: esp8266
После чего вы можете подключиться фтп-клиентом и скачать/записать то, что вам нужно.

---------------------
Я бы ещё в инструкции дописал, как собирать проект и записывать его в контроллер, сам искал долго эти кнопки.
Кнопки по сборке проекта, включению вывода сообщений отладчика, очистке проекта от объектных файлов, остановке задач и т.д. находятся внизу, слева:
1583602065364.png

Порядок создания пользовательской конфигурации описан здесь: user_config.h , пример такого файла можно посмотреть тут .

По кнопке:
* Из выключенного состояния
- 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?demo - режим ДЕМО
- /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?reboot - перезагрузить лампу
- /cmd?OTA - запустить сервер обновления OTA через PIO

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

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

Основные возможности прошивки:
  • Повторяет все возможности других прошивок по управлению эффектами
  • Включение, выключение, выбор эффекта, смена яркости/скорости/масштаба
  • DEMO-режим
  • Управление по MQTT , подробную инструкцию по установке и настройке можете почитать тут или посмотреть видео установки брокера
  • Отправка текстовых сообщений на лампу, в том числе специальных %IP, %TM
  • Настройка и вывод времени, само время синхронизуется по http/ntp или может задаваться вручную
  • Периодический вывод времени и/или новогоднего отсчета
  • OTA в двух вариантах, при обновлении файловой системы, чтобы не терять настройки можете их сохранить и поместить в папку /data .
  • Управление кнопкой, индикаторы управления
  • Добавить дополнительный ползунок можно так : [{'R':'127'}], делается это однократно и на текущий момент работает для дыма и мерцания
  • Подключение микрофона 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 - переключит.

Доп. возможности прошивки:
  • Есть возможность ставить множественные будильники и прочие автоматизации
  • Добавлен микрофон (MAX9814) и цветомузыка на основе амплитуды/частоты. Добавлен эффект "Частотный анализатор"
  • Поддержка http-команд
  • Пользовательский интерфейс всегда актуален и синхронизирован с прошивкой, т.к. является частью прошивки
  • Если будет написано приложение под андроид/иос/... то оно тоже будет синхронизировано, т.к. интерфейс конструируется динамически
  • DF Player Mini - озвучивание эффектов, MP3-плеер, озвучивание времени, при проблемах с плеером обязательно поглядите сюда, подключение плеера - изучите это сообщение. Архив со звуковыми файлами можете взять, к примеру - тут.

По поводу настройки WiFi - фреймворк позволяет переключать режим AP<->STA по удержанию кнопки "Flash" NodeMsu в течение 5 секунд. Если ее удерживать в течение 10 секунд, то произойдет сброс настроек. Если лампа не может подключиться к роутеру, то будет поднята AP c пустым паролем, а дальше после перехода по адресу http://192.168.4.1 вы сможете сконфирурировать WiFi, либо же можно дополнительно прописать креденшеналы в функции
parameters() файла interface.cpp . Если лампа подключилась к роутеру, то управлять ею можно по тому IP, что она получила от роутера.

История:
  • старт с нуля
  • перенесены изменения с прошлого проекта
  • перенесены эффекты со старых проектов и добавлены новые, общий список - более 70 штук
  • перенесен весь функционал
  • поддежка мосфетов для автоматизаций
  • микрофон и цветомузыка
  • возможность локализации
  • вывод звука (DF Player Mini)
В планах:
  • часы реального времени
  • приложение

По состоянию на сегодня прошивка находится в стабильной стадии (есть релизная версия в мастер и текущая в девелоп бренчах). Но я еще планирую реализовать дополнительный функционал. Интерфейс по большей мере вырисовался, выглядеть должно примерно так:

Вариант печатного корпуса для лампы можете посмотреть тут.


----------------------------------------

Можно ли копировать, менять что-то по своему усмотрению? Да, естественно - лицензия GPLv3. Разрешено все, что оговаривается лицензией. Но учтите, что согласно лицензии вы обязуетесь предоставлять исходный код проектов основанных на данном, даже в случае коммерческого использования. Либо сразу (предпочтительно), либо по первому требованию любого из обратившихся. Если вас не устраивают идеи и соглашения свободного кода - выбирайте другой проект и не используйте этот.
 
Последнее редактирование:

Комментарии

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
Инструкция по установке прошивки (ее можно скачать отсюда):
Также можно прошить
заранее подготовленную прошивку и ФС отсюда

Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но он уже включен в проект, так что дополнительно качать не нужно.

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 порт и подключили плату все должно быть успешно.
1600444586890.png
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 интерфейс, не стирает параметры, можно обновить только прошивку, обновление File System Image только из приложения или OTA

IP адрес лампы\update указываем файл firmware.bin
Нужно будет выбрать файл и нажать Update внизу в статусе браузера появятся проценты прогресса.

Для формирования файла firmware.bin нужно в PlatformIO запустить сборку прошивки без заливки.
1588144337363.png



После непродолжительной сборки прошивки, терминал выдаст ответ:
= [SUCCESS] =
файл будет находится в папке со скачанной прошивкой .pio\build\esp8266dev\
Я прошиваю после стирания:
Быстрый старт.

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

Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но он уже включен в проект, так что дополнительно качать не нужно.
Внимание! : фреймворк существенно переработан, т.к. в исходном состоянии он к использованию малопригоден, к сожалению. Актуальная версия всегда в проекте, в форке обновляю реже.

В общем у вас после открытия проекта должно выглядеть как-то так:
1583172758919.png

Контроллер ESP8266/ESP32 выбирается в файле platformio.ini.
ВНИМАНИЕ: Первоначально вам необходимо будет записать файлы в ФС контроллера, иначе веб-интерфейс не будет доступен!
Делается это так: PlatformIO->Run Task...->Upload File System Image
1583173209762.png
После этого можно собирать проект и записывать его в контроллер. Сами файлы для загрузки в ФС находятся в \FireLamp_JeeUI\data там же у меня находятся и файлы конфигурации config.json и eff_config.json . Вы также можете поместить свои предварительно созданные конфигурации, если это необходимо. Также к файловой системе можно получить доступ, если при компиляции проекта была раскомментирована настройка:
//#define USE_FTP // доступ к SPIFFS по FTP, логин/пароль: esp8266
После чего вы можете подключиться фтп-клиентом и скачать/записать то, что вам нужно.

---------------------
Я бы ещё в инструкции дописал, как собирать проект и записывать его в контроллер, сам искал долго эти кнопки.
Кнопки по сборке проекта, включению вывода сообщений отладчика, очистке проекта от объектных файлов, остановке задач и т.д. находятся внизу, слева:
1583602065364.png

Порядок создания пользовательской конфигурации описан здесь: user_config.h , пример такого файла можно посмотреть тут .

По кнопке:
* Из выключенного состояния
- 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?demo - режим ДЕМО
- /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?reboot - перезагрузить лампу
- /cmd?OTA - запустить сервер обновления OTA через PIO

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

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

Основные возможности прошивки:
  • Повторяет все возможности других прошивок по управлению эффектами
  • Включение, выключение, выбор эффекта, смена яркости/скорости/масштаба
  • DEMO-режим
  • Управление по MQTT , подробную инструкцию по установке и настройке можете почитать тут или посмотреть видео установки брокера
  • Отправка текстовых сообщений на лампу, в том числе специальных %IP, %TM
  • Настройка и вывод времени, само время синхронизуется по http/ntp или может задаваться вручную
  • Периодический вывод времени и/или новогоднего отсчета
  • OTA в двух вариантах, при обновлении файловой системы, чтобы не терять настройки можете их сохранить и поместить в папку /data .
  • Управление кнопкой, индикаторы управления
  • Добавить дополнительный ползунок можно так : [{'R':'127'}], делается это однократно и на текущий момент работает для дыма и мерцания
  • Подключение микрофона 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 - переключит.

Доп. возможности прошивки:
  • Есть возможность ставить множественные будильники и прочие автоматизации
  • Добавлен микрофон (MAX9814) и цветомузыка на основе амплитуды/частоты. Добавлен эффект "Частотный анализатор"
  • Поддержка http-команд
  • Пользовательский интерфейс всегда актуален и синхронизирован с прошивкой, т.к. является частью прошивки
  • Если будет написано приложение под андроид/иос/... то оно тоже будет синхронизировано, т.к. интерфейс конструируется динамически
  • DF Player Mini - озвучивание эффектов, MP3-плеер, озвучивание времени, при проблемах с плеером обязательно поглядите сюда, подключение плеера - изучите это сообщение. Архив со звуковыми файлами можете взять, к примеру - тут.

По поводу настройки WiFi - фреймворк позволяет переключать режим AP<->STA по удержанию кнопки "Flash" NodeMsu в течение 5 секунд. Если ее удерживать в течение 10 секунд, то произойдет сброс настроек. Если лампа не может подключиться к роутеру, то будет поднята AP c пустым паролем, а дальше после перехода по адресу http://192.168.4.1 вы сможете сконфирурировать WiFi, либо же можно дополнительно прописать креденшеналы в функции
parameters() файла interface.cpp . Если лампа подключилась к роутеру, то управлять ею можно по тому IP, что она получила от роутера.

История:
  • старт с нуля
  • перенесены изменения с прошлого проекта
  • перенесены эффекты со старых проектов и добавлены новые, общий список - более 70 штук
  • перенесен весь функционал
  • поддежка мосфетов для автоматизаций
  • микрофон и цветомузыка
  • возможность локализации
  • вывод звука (DF Player Mini)
В планах:
  • часы реального времени
  • приложение

По состоянию на сегодня прошивка находится в стабильной стадии (есть релизная версия в мастер и текущая в девелоп бренчах). Но я еще планирую реализовать дополнительный функционал. Интерфейс по большей мере вырисовался, выглядеть должно примерно так:

Вариант печатного корпуса для лампы можете посмотреть тут.


----------------------------------------

Можно ли копировать, менять что-то по своему усмотрению? Да, естественно - лицензия GPLv3. Разрешено все, что оговаривается лицензией. Но учтите, что согласно лицензии вы обязуетесь предоставлять исходный код проектов основанных на данном, даже в случае коммерческого использования. Либо сразу (предпочтительно), либо по первому требованию любого из обратившихся. Если вас не устраивают идеи и соглашения свободного кода - выбирайте другой проект и не используйте этот.
 

Вложения

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

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
JSON распарсить по объектам, свойствам думаю не будет сложно.
Глобальную яркость on/off то же бы вывести.
Вы бы в шапку что-ли заглянули... Я же сказал - включение/выключение есть. Все команды http также отображены на mqtt. У вас что-то не работает?
Если да - то подробнее описывайте что конкретно. Установка глобальной яркости также должна без проблем отрабатывать, поскольку она часть конфига.

-----------------------
Семья собралась спать, так что на сегодня все. Продолжу завтра.
 

stepko

★★✩✩✩✩✩
26 Июн 2020
494
79
Если есть желание - могу ревертнуть все что вы там сделали.
Реверт, я завтра переправлю,все добре зроблю. Взагалі думав, що можна з Пул реквестів закидувати іменно ті файли, які потрібні
Я думаю ліпше роздувати палітри, тому, що вони так по назві не схожі(Stepko"s - мій авторський, поставте нову і все), я не думаю, що з Осінньою палітрою підійдуть чорні кольори

Если у вас нет возможности оттестировать код и вы рассчитываете, что его кто-то доведет до ума
Та зроблений нормально, оперативи жере мало
 
Последнее редактирование:

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
Реверт, я завтра переправлю,все добре зроблю.
Ревертнул все изменения.

Я думаю ліпше роздувати палітри, тому, що вони так по назві не схожі(Stepko"s - мій авторський, поставте нову і все), я не думаю, що з Осінньою палітрою підійдуть чорні кольори
Я с палитрами уже наигрался, мне не хочется снова туда лезть, тем более, что я сейчас занят с mqtt, поэтому путь единственный - готовьте пул-реквест с изменениями и дайте мне знать, когда будет готов. То же касается эффекта. Если вам хочется его добавить - то изучайте код, глядите предыдущие коммиты, там где добавлялись эффекты и делайте по аналогии, далее пул-реквест и будет этот эффект.
 

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
@andy040670, вам нужно смотреть в шапке список http-команд, управление через конфиг не работает, оно было для версии в мастер. Т.е. для вашего случая нужно посылать: A220A616FB61/embui/set/on - включение, A220A616FB61/embui/set/off - выключение,

A220A616FB61/embui/get/on - напишет состояние в топик A220A616FB61/embui/pub/on

В общем поглядите картинку ниже.
* Обновите версию из гита, т.к. пофиксил некоторые баги и доработал получение данных по /get/...


1603016644818.png

--------------------
Для любого get - передаваемое значение может быть 1, 0, чтоугодно, пусто - т.е. передаваемое значение просто игнорируется
Для set - могут быть команды где параметр не обязателен, типа on/off/demo - там может быть любой, но для команд вида speed, scale, bright - что передаете, то и записывается, переданное же значение тут же дублируется в /pub
 
  • Лойс +1
Реакции: Alex PAP и andy040670

vortigont

★★★★✩✩✩
24 Апр 2020
394
231
Saint-Petersburg, Russia
Я вас попрошу запустить либу на ESP32, поскольку я на все разорваться на могу и буду MQTT допиливать в ближней перспективе :).
да я не против ) полез переносить timeProcessor, для тестов решил сделать пустой проектик с базовым интерфейсом из наших настроек WiFi/время для лампы и наступил в какой-то АД с текстовыми константами. Это недоделанные локализации что-ли...
Блин, как это расшифровать обратно-то чтобы понять что в этом меню?
// формирование интерфейса настроек WiFi/MQTT:
// формирование интерфейса настроек WiFi/MQTT
void block_settings_wifi(Interface *interf, JsonObject *data){
    if (!interf) return;
    interf->json_section_main(FPSTR(TCONST_003D), FPSTR(TINTF_028));
    // форма настроек Wi-Fi
    interf->json_section_hidden(FPSTR(TCONST_003E), FPSTR(TINTF_029));
    interf->spacer(FPSTR(TINTF_02A));
    interf->text(FPSTR(TCONST_003F), FPSTR(TINTF_02B));
    interf->text(FPSTR(TCONST_0040), WiFi.SSID(), FPSTR(TINTF_02C), false);
    interf->password(FPSTR(TCONST_0041), FPSTR(TINTF_02D));
    interf->button_submit(FPSTR(TCONST_003E), FPSTR(TINTF_02E), FPSTR(TCONST_0008));
    interf->json_section_end();
    interf->json_section_hidden(FPSTR(TCONST_0042), FPSTR(TINTF_02F));
    interf->text(FPSTR(TCONST_003F), FPSTR(TINTF_02B));
    interf->spacer(FPSTR(TINTF_031));
    interf->comment(FPSTR(TINTF_032));
    interf->checkbox(FPSTR(TCONST_0043), FPSTR(TINTF_033));
    interf->password(FPSTR(TCONST_0044), FPSTR(TINTF_034));
    interf->button_submit(FPSTR(TCONST_0042), FPSTR(TINTF_008), FPSTR(TCONST_0008));
    interf->json_section_end();
    // форма настроек MQTT
    interf->json_section_hidden(FPSTR(TCONST_0045), FPSTR(TINTF_035));
    interf->text(FPSTR(TCONST_0046), FPSTR(TINTF_036));
    interf->number(FPSTR(TCONST_0047), FPSTR(TINTF_037));
    interf->text(FPSTR(TCONST_0048), FPSTR(TINTF_038));
    interf->text(FPSTR(TCONST_0049), FPSTR(TINTF_02D));
    interf->text(FPSTR(TCONST_007B), FPSTR(TINTF_08C));
    interf->number(FPSTR(TCONST_004A), FPSTR(TINTF_039));
    interf->button_submit(FPSTR(TCONST_0045), FPSTR(TINTF_03A), FPSTR(TCONST_0008));
    interf->json_section_end();
    interf->spacer();
    interf->button(FPSTR(TCONST_0004), FPSTR(TINTF_00B));
    interf->json_section_end();
}

чёрт, убейте меня нежно... попробую доделать локализацию что-ли, но в таком виде это использовать нереально.
 
  • Лойс +1
Реакции: Pavelts и kostyamat

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
@vortigont, тестовый проектик есть в папке /examples

Если же просто цель добавить вкладки методом копипаста, в него, то ИМХО проще взять коммит до локализации и скопировать оттуда.
* На счет доделать локализацию - то прошу не в ущерб памяти или процессорному времени. :)

---------------------
@andy040670
Сделал возможность получения/установки значений для динамических контролов, как пример:
2EF4323C728E/embui/set/dynCtrl7 => true - включение микрофона для 1 эффекта (белая лампа), там переключатель
 
Последнее редактирование:
  • Лойс +1
Реакции: vatero и andy040670

andy040670

★✩✩✩✩✩✩
13 Ноя 2019
72
12
Ура заработало, но после того как удалил, пересоздал проект, полностью очистил флэш и прошился по шнурку, до этого шился по воздуху, теперь будем посмотреть))
 

menooooo

★✩✩✩✩✩✩
4 Мар 2019
94
12
У меня одно не работает функция "#define CURRENT_LIMIT" ограничение стоит на 1.8А
 

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
У меня одно не работает функция "#define CURRENT_LIMIT" ограничение стоит на 1.8А
Сейчас это ограничение используется только в случае начальной инициализации конфига, а дальше используется значение из конфигурации. Его можно при желании поменять через /edit, либо включив системное меню в Настройки-Другие (Показывать системное меню) и затем нажать F5 в браузере, чтобы меню появилось.
 

Sakol2006

✩✩✩✩✩✩✩
6 Сен 2020
26
7
Привет всем! Подскажите, собрал схему питания матрицы через Mosfet и подкинул к D1, все работает, включает-выключает, но когда выключено некоторые светодиоды еле еле подсвечиваются красным... Что не так сделал...?
 

menooooo

★✩✩✩✩✩✩
4 Мар 2019
94
12
@Sakol2006, У тебя проблема с минусом.
Попробуй запитать ESP по другому, и смотри, чтобы минус с ESP он не был на матрице, а был до mosfeta
 
Последнее редактирование:

Sakol2006

✩✩✩✩✩✩✩
6 Сен 2020
26
7
@Sakol2006, У тебя проблема с минусом.
Попробуй запитать ESP по другому, и смотри, чтобы минус с ESP он не был на матрице, а был до mosfeta
Так и получается, что минус приходит от БП, идёт на: мосфет, есп и минус конденсатора на 470нф, а с мосфета минус на матрицу.
Подсвечивается немного и все., Не знаю что и делать...вот единственное по схеме, где от d1 идёт на схеме резистор на 200ом, я поставил на 260ом стоит..может быть из за этого? Ещё заметил, что если выключать лампу, когда эффект не яркий , или слабая яркость, тогда не остаются подсвеченные красным диоды.. эффект такой получается, что часть эффекта не убирается и немного пытается подсветиться..
Может что то в программе?
 
Последнее редактирование:

Serge55

★✩✩✩✩✩✩
9 Мар 2020
86
44
Так и получается, что минус приходит от БП, идёт на: мосфет, есп и минус конденсатора на 470нф, а с мосфета минус на матрицу.
Подсвечивается немного и все., Не знаю что и делать...вот единственное по схеме, где от d1 идёт на схеме резистор на 200ом, я поставил на 260ом стоит..может быть из за этого? Ещё заметил, что если выключать лампу, когда эффект не яркий , или слабая яркость, тогда не остаются подсвеченные красным диоды.. эффект такой получается, что часть эффекта не убирается и немного пытается подсветиться..
Может что то в программе?
А если на время выключить из схемы мосфет, и попробовать в этом варианте выключить, выключится ли лампа? Мосфет стоит для того что бы потушенная матрица не потребляла ток. Если питать лампу от сети то в этом мосфете нет особой надобности.
 
Последнее редактирование:
  • Лойс +1
Реакции: stepko

Sakol2006

✩✩✩✩✩✩✩
6 Сен 2020
26
7
А если на время выключить из схемы мосфет, и попробовать в этом варианте выключить, выключится ли лампа? Мосфет стоит для того что бы потушенная матрица не потребляла ток. Если питать лампу от сети то в этом мосфете нет особой надобности.
Да, выключается правильно.. сегодня сделал через мосфет именно для того, что бы матрица не потребляла ток в выключенном состоянии ..
 

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
Еще чуть доработал http-команды:

Теперь команды вида http://IP/cmd?scale или http://IP/cmd?on будут возвращать статус или значение данных параметров, а если нужно поменять, то тогда вызов будет вида http://IP/cmd?scale=123 или http://IP/cmd?on=1, т.е. я решил что правильно дать возможности как установки, так и проверки. Также возможны цепочки команд, к примеру - http://IP/cmd?on=1&msg=Проверка&bright == включить лампу и вывести на нее "Проверка", а в качестве результата запроса получить значение яркости.
 
  • Лойс +1
Реакции: Pavelts и vortigont

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
Да, выключается правильно.. сегодня сделал через мосфет именно для того, что бы матрица не потребляла ток в выключенном состоянии ..
А мосфет у вас точно в ключевом режиме работает? Потому как нужны мосфеты переключающиеся от TTL-уровней, а это не так уж много вариантов. Либо же нужно ставить биполярный транзистор и открывать/закрывать с помощью него. У вас же (я так предполагаю) транзистор находится в промежуточном состоянии.
 

Vados2020

★★✩✩✩✩✩
30 Янв 2020
191
68
Эффект "Огненная лампа" . Не корректно работает ползунок "Палитра" Четко отрабатывает только до значения 10 , а дальше повторяет последний который был до 10. Например: если было значение 5 и передвинуть на любое значение от 11 до 22 то палитра такая как и на 5. Ну и так весь диапазон до 10.
 
  • Лойс +1
Реакции: kDn

andy040670

★✩✩✩✩✩✩
13 Ноя 2019
72
12
Как то давно мерил на есп логическую еденицу и ноль, так вот 0=0.5-06v, может стоит сменить мосфет или сделать подтяжку на минус по серьёзней? Транзистор находится в полуоткрытом состоянии.
 
  • Лойс +1
Реакции: Serge55

kDn

★★★★★★★
18 Ноя 2019
2,127
1,202
Эффект "Огненная лампа" . Не корректно работает ползунок "Палитра" Четко отрабатывает только до значения 10 , а дальше повторяет последний который был до 10. Например: если было значение 5 и передвинуть на любое значение от 11 до 22 то палитра такая как и на 5. Ну и так весь диапазон до 10.
Там используется 10 палитр, спасибо, поправил.
 

stepko

★★✩✩✩✩✩
26 Июн 2020
494
79
@kDn , палітри всі роздув
Acid->Stepkos->Autumn->Violet
дві перших з colorLoop
Пул реквест мені не підсилу(говорив раніше причини)
C++:
static const TProgmemRGBPalette16 AcidColors_p FL_PROGMEM = {0xffff00, 0xd2dc28, 0xd2c83c, 0x711323, 0x6c000c, 0x5a0c00, 0x6d373a, 0xaa5a62, 0x605d36,  0x313164, 0x483a67, 0x3a2465, 0x4b1665, 0x4b0069, 0x31004c, 0x200046};
static const TProgmemRGBPalette16 StepkosColors_p FL_PROGMEM = {0x0000ff, 0x0f00f0, 0x1e00e1, 0x2d00d2, 0x3c00c3, 0x4b00b4, 0x5a00a5, 0x690096, 0x780087, 0x870078, 0x9600cd, 0xa50050, 0xb40041, 0xc30032, 0xd20023, 0xe10014};
static const TProgmemRGBPalette16 AutumnColors_p FL_PROGMEM = {0xbc2300, 0xc84416, 0xdc642c, 0xe69664, 0xfbb979, 0xca503d, 0x882c1c, 0x9a3631, 0xa9624e, 0xcc9762, 0xdcc0b5, 0xc1a29f, 0x826468, 0x4a3334, 0x231a1a, 0x161113};
static const TProgmemRGBPalette16 VioletColors_p FL_PROGMEM = {0x4b00ff, 0x4700ef, 0x4300df, 0x3f00cf, 0x3b00bf, 0x3700af, 0x33009f, 0x2f008f, 0x2b007f, 0x27006f, 0x23005f, 0x1f004f, 0x1b003f, 0x17002f, 0x13001f, 0x000000};
static const TProgmemRGBPalette16 EveningColors_p FL_PROGMEM = {0x1e0443, 0x6d0081, 0x8200ac, 0x8200ac, 0x8200ac, 0x8200ac, 0x8200ac, 0x8200ac, 0x7900a1, 0x820055, 0xc80000, 0xe57b00, 0xff9d5a, 0xc58b32, 0xd8d400, 0xffff00};
static const TProgmemRGBPalette16 WoodColors_p FL_PROGMEM = {0xcdb1a5, 0x7a4000, 0xcdb1a5, 0x7a4000, 0xcdb1a5, 0x7a4000, 0xcdb1a5, 0x7a4000, 0xcdb1a5, 0x7a4000, 0xcdb1a5, 0x7a4000, 0xcdb1a5, 0x7a4000, 0xcdb1a5, 0x7a4000};
Снимок.PNG1603130160387.png
Є пул на ардуїновську прошивку, нормально все
 
Последнее редактирование:

Pavelts

★★✩✩✩✩✩
4 Апр 2020
314
78
Сейчас это ограничение используется только в случае начальной инициализации конфига, а дальше используется значение из конфигурации. Его можно при желании поменять через /edit, либо включив системное меню в Настройки-Другие (Показывать системное меню) и затем нажать F5 в браузере, чтобы меню появилось.
Странно, а у меня нет этого (системное меню)
 

Aaallleeexxx74

✩✩✩✩✩✩✩
4 Окт 2020
25
4
Добрый день! подключил мосфет по схеме:
отключение матрицы.jpg
Лампа не работает. На d1 есть напряжение 3.23в когда включена и 0в когда выключена. На матрице же менее 2в в любом состоянии. Может кто подскажет в чем может быть проблема?