ESP, IoT WiFi лампа-будильник. Обсуждение прошивки от GUNNER47

ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 
Изменено:

Комментарии

mechanic

★★★★✩✩✩
Команда форума
31 Июл 2018
403
204
ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 
Изменено:

GAngel

✩✩✩✩✩✩✩
10 Фев 2020
19
1
Кстати, эффект "не стыдная Матрица" работает как-то странно, у меня часть хвоста почему темно-желтым отдаёт, а так все супер в этом эффекте! У всех так или опять я начудил?)
 

Kentavr

✩✩✩✩✩✩✩
3 Мар 2020
8
0
Хабаровск
@Shaitan,
Удалось собрать под себя приложение.
А сложно собрать «под себя» приложение, чтобы вставить кнопулю вывода текущего времени «on_demand» одним нажатием из приложения, а не натеребонькиванием шести раз по кнопке?

И еще, если напрягает инвертность регулировки скорости, замените в effectTicker.ino
if (ONflag && (millis() - effTimer >= ((currentMode < 5 || currentMode > 15) ? 256-modes[currentMode].Speed : 50)))
Это можно сделать даже без изменений .apk, только прошивки? А то ползунки действительно странные.[/USER][/QUOTE]
 

Сотнег

★★★★★★★
15 Янв 2020
4,246
1,466
Кстати, эффект "не стыдная Матрица" работает как-то странно, у меня часть хвоста почему темно-желтым отдаёт, а так все супер в этом эффекте! У всех так или опять я начудил?)
Обновил код в старом посте:
https://community.alexgyver.ru/threads/wifi-lampa-budilnik-obsuzhdenie-proekta.1411/post-27482
 

Сотнег

★★★★★★★
15 Янв 2020
4,246
1,466
>>if (ONflag && (millis() - effTimer >= ((currentMode < 5 || currentMode > 15) ? 256-modes[currentMode].Speed : 50)))
Это можно сделать даже без изменений .apk, только прошивки? А то ползунки действительно странные.
Можно, но лучше
if (ONflag && (millis() - effTimer >= ((currentMode < 7 || currentMode > 15) ? 256-modes[currentMode].Speed : 50)))

Правда, приложение от @Koteyka не сможет работать.
В нём скорости только до 100.
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,246
1,466
Народ, как вам такой вариант отправки списка эффектов из лампы в приложение?
C-like:
    else if (!strncmp_P(inputBuffer, PSTR("LIST"), 4))
    {
      memcpy(buff, &inputBuffer[4], strlen(inputBuffer));   // взять подстроку, состоящую последних символов строки inputBuffer, начиная с символа 5
      int i = atoi(buff);
      if (i == 0) // если пришёл запрос на список эффектов с индексом 0, отправляем пакет с количеством эффектов в лампе
        OutString = String(MODE_AMOUNT) + "\n";
      else        // иначе отправляем строчку типа "Огонь;1,80;1;100\n"
                  // Имя эффекта; MIN скорости; MAX скорости; MIN масштаба; MAX масштаба;
                  // выводить ли градиент (0 - нет, 1 - да).
        OutString = Mode_Registr[i-1] + "\n"; // ещё в начале для проверок хочется добавить порядковый номер String(i) + ";" +
      OutString.toCharArray(replyPacket, MAX_UDP_BUFFER_SIZE);
      Udp.write(replyPacket);
    }
из нужных параметров можно добавить:
используется ли регулировка скорости (0 - нет заблокировать настройку, 1 - да);
используется ли регулировка масштаба (0 - нет заблокировать настройку, 1 - да)
 
Изменено:

GAngel

✩✩✩✩✩✩✩
10 Фев 2020
19
1
@Сотнег, Попытался заменить код, выдало столько ошибок, жду вашего скетча, вставте ОБЯЗАТЕЛЬНО этот эффект Матрицы, он мега залипательный ))) Да и по возможности старый пейнтбол добавте тоже)
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,246
1,466
@GAngel, В смысле, вы не справились с заменой старого кода на новый,
или у меня где-то косяк? Я из работающего кода скопировал.
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@Сотнег,

EepromManager.h
...
* 90-92 3 режим №24: яркость, скорость, масштаб (по одному байту)
* 93-95 3 режим №25: яркость, скорость, масштаб (по одному байту)
*
* 111-141 31 настройки режима избранных эффектов (вкл/выкл - 1 байт; интервал - 2 байта; разброс - 2 байта; инициализировать вкл/выкл - 1 байт; вкл/выкл каждого эффекта - 25 (MODE_AMOUNT) байт; вкл/выкл не хранится в EEPROM)
*
* 195 1 признак "кнопка разблокирована"
...
*
* Не используются адреса:
* 96-110 15 резерв, можно добавить ещё 5 эффектов
* 142-194 53 если добавить ещё 5 эффектов, начальный адрес неиспользуемой памяти сдвинется с 142 на 147

Добавив 5 эффектов я занял место с 96 по 110
далее идет
#define EEPROM_FAVORITES_START_ADDRESS (111U) // начальный адрес в EEPROM памяти для записи настроек режима избранных эффектов

Если сместить EEPROM_FAVORITES_START_ADDRESS , можно добавить еще 11.
если переработать режим FAVORITES с байтового на битовый режим, то можно будет запихнуть еще около десятка
 
  • Лойс +1
Реакции: Сотнег

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@Сотнег,

Увы, приложение от @Koteyka при увеличении количества эффектов в лампе у меня вообще не запустилось.
 

Сотнег

★★★★★★★
15 Янв 2020
4,246
1,466
@Shaitan, я предупреждал только про разворот бегунка скорости.
Что оно не поддерживается.

Увеличение количества эффектов уж тем более.
 

GAngel

✩✩✩✩✩✩✩
10 Фев 2020
19
1
@Сотнег, Я конечно, я не просто вставлял, я экспериментировал ))) много чего менял целыми блоками и в нескольких скетчах)
 

B0NkErS

✩✩✩✩✩✩✩
5 Мар 2020
1
0
Всем доброго времени суток! Подскажите плиз. В программировании я профан, с института помню мало. Первый мной собранный подобный проект. Прошивку использовал от gunner47. Когда предварительно собрал схему, для теста подгрузил код, все работало хорошо, и с кнопки, и с приложения (iOS). Стал разбираться как подключать к wifi, почему не работают Часы и будильник-несколько раз перепрошивал после изменения переменных. Проблемы следующие:, не сносятся данные о роутере, в режиме точки доступа плохо подключается к телефону, а если и подключается,, то может самопроизвольно отключиться или плохо переключаются режимы и их параметры. как можно это вылечить?
 

Gogy

★✩✩✩✩✩✩
14 Апр 2019
80
14
@B0NkErS, Почитайте раздел "ПОЧЕМУ НЕ РАБОТАЕТ?" на главной странице проекта и в частности...

… Если ESP8266/ESP32/NodeMCU/Wemos D1/ESP-based устройство не прошивается, не подключается к точке доступа, самопроизвольно перезагружается, то скачиваем ESP Download Tool, запускаем для ESP8266, выбираем порт и очищаем чип микроконтроллера нажатием на кнопку Erase

+ удалите из сохраненных сетей все лампы в смарте и переподключитесь.

+ заливайте прошивку в режим "All Flash Contents"
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, Не спеши пока со строчками. )) Уже месяца 2 продумываю этот интерфейс, но пока застрял на стадии управления кнопкой, и как раз эффекттикера. А от него будет уже зависеть конфигурация передача информации для прорисовки эффекта.

Или...
Строка конфигурации, по максимуму должна содержать:
- Имя эффекта /строковое/ (обязательно на английском! - нужно для универсальности прошивки. Или на любом другом языке по запросу приложения)
- диапазон регулировки яркости /2 байта/ - в идеале от 0...255, или по ответу с прошивки (допускается реверс)
- диапазон регулировки скорости /2 байта/ - в идеале от 0...255, или по ответу с прошивки (допускается реверс)
- диапазон регулировки масштаба /2 байта/ - в идеале от 0...255, или по ответу с прошивки (допускается реверс)
- тип регулятора /строковое/ - допустим "L" - линейный регулятор, "С" - колесо цвета, "G" - логарифмический.... и всякое такое

Было бы не плохо, если бы была возможность секторального деления регулятора масштаба. Например, для реализации нескольких эффектов в одном. Или для изменения цвета, как в новом огне - при крайнем положении белый, а остальное - регулировка оттенка. В таком случае строка типа регулятора будет содержать "C254|L" - 254 ступени оттенка + 1 ступень для белого цвета. или "L|L|L|L|L|L" - 6 одинаковых ступеней для разных эффектов.
Причем, параметр "имя" так же может содержать набор названий эффектов: "Огонь|Белый Огонь", "Пульс|Синусоид|Шарики|Кубики|Снегопад 3D|какаятохрень"

В этом деле нужно все продумать, чтобы потом не приходилось лишний раз дергать с просьбами разработчиков приложений внести что нибудь. И лучше все заложить на будущее, пусть даже не в полном объеме все будет сначала реализовано!
 
  • Лойс +1
Реакции: Belokota

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Если сместить EEPROM_FAVORITES_START_ADDRESS , можно добавить еще 11.
если переработать режим FAVORITES с байтового на битовый режим, то можно будет запихнуть еще около десятка
Вообще-то имело бы смысл просто изменить раскладку по "EEPROM", там вроде 4096 байт доступно, если я правильно помню))). Ошибочная архитектура привела к костыльному методу решения задачи. Если планируете переделывать, так лучше уже сразу нормально делать :)
 
  • Лойс +1
Реакции: Shaitan

Сотнег

★★★★★★★
15 Янв 2020
4,246
1,466
Вообще-то имело бы смысл просто изменить раскладку по "EEPROM", там вроде 4096 байт доступно, если я правильно помню))). Ошибочная архитектура привела к костыльному методу решения задачи. Если планируете переделывать, так лучше уже сразу нормально делать :)
Те, кто разбираются в EEPROM и всяком таком за переделку не взялись.

Я вот, кстати, так и не смог в PROGMEM отправить массив с названиями эффектов
("ошибка компиляции для платы D1 блабла...").

Кто-нибудь может исправить разметку EEPROM, чтобы на добавление эффектов осталось по-максимуму?
Нужен только файл EepromManager.h готовый, который будет установлен в прошивку gunner47 v.1.5 вместо старого от v1.4.
@kDn , @Shaitan , @Palpalych ?
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@Palpalych,@kDn, я смотрел, что там в eeprom

сначала я подумал запихать список эффектов в битовый массив для экономии места,

затем по документации прочитал, что размер eeprom до 4096, то есть места достаточно

даже если просто перенести список эффектов после 200-й

#define EEPROM_MODES_START_ADDRESS (201U) // начальный адрес в EEPROM памяти для записи настроек эффектов (яркость, скорость, масштаб)

общее количество будет

#define EEPROM_TOTAL_BYTES_USED (EEPROM_MODES_START_ADDRESS+MODE_AMOUNT*3+1) // общий размер используемой EEPROM памяти (сумма всех хранимых настроек + 1 байт)

далее перенести
#define EEPROM_FAVORITES_START_ADDRESS (21U) // начальный адрес в EEPROM памяти для записи настроек режима избранных эффектов

тогда эффектов может быть много. Не уверен, что больше сотни нам понадобится

И еще. Не надо сегментировать один эффект на несколько. Мы тогда уменьшаем разнообразие при запуске "избранное".
Наоборот, если во всех эффектах использовать modes[currentMode], тогда можно один эффект вешать на разные строчки.
Например я хочу красный, оранжевый и фиолетовый огонь,
case 33:fireRoutine(true);break;
case 34:fireRoutine(true);break;
case 35:fireRoutine(true);break;
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@Сотнег, я сегодня не смогу протестировать.
а теоретически исправить 3 параметра

#define EEPROM_MODES_START_ADDRESS (201U)
#define EEPROM_FAVORITES_START_ADDRESS (21U)
#define EEPROM_TOTAL_BYTES_USED (EEPROM_MODES_START_ADDRESS+MODE_AMOUNT*3+1)
хотя возможно придется писать
#define EEPROM_TOTAL_BYTES_USED (502U) //для 100 эффектов
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Shaitan, там нужно порядок навести в переменных, а список запихнуть в конец, чтобы легко можно было расширять
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
Вааааув! Я к вам с небольшим отчетом... Решился! Мои опыты завели меня к поломке фундаментальных основ прошивки Gunner47 :cry:, но зато на основе воссоздается нечто особенное. Так как я в некотором смысле слова программный похуферционист :LOL: то стремлюсь к идеалу воспетому самим Алексом Гайвером:
C++:
/*
  Скетч к проекту "Многофункциональный RGB светильник"
  Страница проекта (схемы, описания): ....

... и я решил, что если делать Многофункциональный, то нужно расчистить Авгеевы Конюшни код и привести все в порядок!
Первое чем занялся - это Бегущий Текст полнофункциональный OSD. Зачатки библиотеки уже написаны. Грубо говоря - текст с динамическими эффектами.
Второе - это интеллектуальный вывод картинки на экран. и это не 50Гц, а гораздо круче (может даже обыватель не заметит, но для меня это круто)
Третье - кнопка. Делаю ее легкоподстраевуемую под пользовательские задачи. Возможно даже появится что-то нечто конфигурации.
Четвертое - хочу систематизировать эффекты так, чтобы их можно было подключать как кубики в детском конструкторе.
Пятое - графика! Делаю библиотеку простых графических примитивов (Ыыыыы.... :censored: только не нужно говорить, что уже уйма таких библиотек написана - моя особенная :love:, правда пока прописано в ней рисование точки и прямоугольника :LOL:, но это только начало) На нее хочу перевести все эффекты в последствии - будет бомба! :geek:

Вооот... как только чуть чуть причешу, выпущу релиз.