WiFi лампа-будильник. Обсуждение прошивки от vvip-68

WiFi лампа-будильник. Обсуждение прошивки от vvip-68
Всем добрый день. Собрал светодиодную матрицу на wemos d1r1 и на прошивке от vvip-68(за прошивку огромное ему спасибо). Матрица получилась размером 102 на 16 пикселей. Захотелось управлять гирляндой с телефона, чтобы wemos был подключён к домашнему роутеру. Плата подключается к WiFi но не получает данных о погоде и данных с сервера времени. Гирлянда зависает, и плата так и не может получить данные из интернета. Монитор порта выглядит вот так:1645769623394.png
Буду благодарен любой помощи в решении проблемы.
Заранее спасибо!
 
Изменено:

Комментарии

Alax2023

✩✩✩✩✩✩✩
18 Дек 2022
1
0
Добрый день. Залил скетч GyverPanelWiFi v.1.13 в Wemos D1 mini, забил фразу "С наступающим Новым годом бла-бла-бла", подключил три матрицы 16х16, выставил в окно - все отлично.
Но вот возникла небольшая проблема - текст в бегущей строке движется очень медленно, несмотря на то, что я в файле a_deft_soft.h указываю разные значения #define D_TEXT_SPEED. Такое впечатление, что в EEPROM изначально присутствует минимальное значение. Прошивку заливал с пунктом "Erase all".
Когда подключаюсь через приложение и увеличиваю скорость ползунком - все нормально. Но даже когда сохраняю настройки, при последующем включении (а блок питания подключен через таймер) скорость слетает на минимум. Как эту проблему исправить?
И второе.
Настройки подключения ленты (из скетча)
#define LED_PIN 2 // D2 физческий пин ленты: укажите здесь 2 (это GPIO2 или D4) для ядра 2.7.4 и выбранной платы NodeMCU v1.0 (ESP12-E) вывод все равно будет переназначен ядром на D2
#define PIN_BTN D4

периодически возникает эта проблема, хотя в Ардуино выбрана плата согласно описанию
// Тип микроконтроллера в меню "Инструменты -> Плата" для ESP8266 выбирать "NodeMCU 1.0 (ESP12E Module)" даже
// с случае использования микроконтроллера семейства Wemos d1 mini. При выборе другого типа микроконтроллера
// скорее всего пин вывода на ленту переназначится компилятором на другой пин, отличный от D2, вероятнее всего - на D4.
// Пин D4 используется данной прошивкой (в стандартном варианте) для подключения кнопки. Такое совпадение пинов
// приведет к невозможности регулировки яркости кнопкой, а сама яркость будет автоматически плавно за несколько секунд
// уменьшаться до нуля, и вместо изображения эффектов вы увидите либо черную матрицу, либо тусклые "ночные" часы.


Пробовал переназначить LED_PIN на другой пин, благо их достаточно, но работа была некорректная. Вопрос - какой пин можно задействовать, чтобы лента работала корректно? Может, в следующей версии скетча этот костыль убрать?

Спасибо за ответы!
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
1. В скетче действительно имеются начальные настройки, в т.ч и скорость движения строки. Они применяются, когда прошивка заливается с опцией 'Erase All Content' в настройках инструментов. Если после настройки в программе скорости движения текста и перезагрузки контроллера настройки не сохраняются - значит вы все-таки выбрали версию ядра или плату в настройках "Инструменты" не ту что рекомендована. Именно описанные вами симптомы и проявляются, когда вы ввбираете не то, что указано выбирать в скетче. О чем, собственно, в начале главного файла скетча черным по белому и предупреждается.
2. LED_PIN можно назначить практически на любой свободный. Ну, почти. Вопрос построения соответствия обозначения как GPIO (или формата Dx) реальным пинам, куда будет выводиться сигнал. Пожелание "убрать костыль" - не по адресу. Это пишите производителю ядра в Espressif - когда они наконец напишут ядро, которое будет корректно работать, в том числе и в связке с библиотекой FastLED. В общем - туда пишите свои пожелания.

Самое правильное, чтобы получить корректно работающее устройство - соблюдать рекомендации по выбору настроек/ядра/платы и все прочее, что описано в скетче.
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
В версии WiFiPanel 1.13.2022.1221 добавлена возможность сохранять ролики Jinx!-эффектов в файловую систему микроконтроллера.
Для небольших матриц, например 16x16 размер ролика на 100-200 кадров, сохраняемых в Jinx! занимает примерно 80-150 килобайт на ролик.
В самых распространенных микроконтроллерах Wemos d1 mini можно без ущерба для скетча выделить под файловую систему 2-3 мегабайта памяти, что позволит разместить в ней 10-30 роликов (то есть фактически дополнительно 10-30 новых самодельных эффектов) Jinx! (эффект "SD-карта") без необходимости иметь в системе реальный физический модуль SD-card reader.

Для этого в настройках матрицы нужно указать
C++:
#define USE_SD 1
#define FS_AS_SD 1
Сами ролики - создать в Jinx (https://github.com/vvip-68/GyverPanelWiFi/wiki/Экспорт-эффектов-анимации-из-ПО-«Jinx!»)
Созданные ролики (учитывайте угол подключения и направления из угла) поместить в папку с размерами матрицы внутри папки 'data', затем используя LittleFS Data Uploader (https://github.com/vvip-68/GyverPanelWiFi/wiki/Загрузка-изображений-в-файловую-систему-МК) выгрузить их в FS микроконтроллера.

В текущем проекте с папке data/16x16 есть набор роликов-примеров для зигзаг-матрицы с углом подключения левый нижний и направление из угла вправо. Перекодировать ролики под другое подключение матрицы можно в утилите JinxFramer (в папке Tools проекта) - https://github.com/vvip-68/GyverPanelWiFi/wiki/JinxFramer---редактор-анимации,-роликов,-картинок
 
Изменено:

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
@VadZher, спасибо, я понял, закажу для игрушек)
Скажите, а сколько светодиодов поддерживает esp32 в отличие от esp8266? Грубо хотя бы - вдвое больше, вчетверо, или? 8266 в разных прошивках - до 900..1200 диодов матрицы.
 

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
114
27
Омск
@Константин 271,
Точно сказать не могу. Предполагаю, что точно в 3 раза больше диодов потянет. Но это ещё и от прошивки зависит. Например, в проекте WLED у меня ESP32 управлял тремя разными сегментами по 700-900 диодов. При этом, эффекты были разные и просчитывались для каждого сегмента отдельно. Частотно кадров держалась на уровне 40-44 в секунду. А ESP8266 в этом же проекте на трёх разных сегментах, длиной 300, 183 и 256 диодов (всего 739 диодов), жутко подтормаживал. На нетребовательных эффектах просадка кадров была с 40 до 15-19, все эффекты превращались в невнятное мерцание. А вот один сегмент длиной 1050 диодов ESP8266 тянул на частоте 30-35 кадров.
 
  • Лойс +1
Реакции: Константин 271

Константин 271

★★★✩✩✩✩
12 Июл 2020
946
102
в проекте WLED у меня ESP32 управлял тремя разными сегментами по 700-900 диодов.
мне тоже понравился этот проект, только не понял про сенсор: я его припаивал, и получилось влючать ленту, одинарным кликом, и выключать - двойным. Это всё, или как-то программируется, не в курсе случаем? Хотелось бы ещё рулить пресетами.
Частотно кадров держалась на уровне 40-44 в секунду.
Интересно, как это проверять? :)
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,188
1,280
Москва
@Константин 271, Проверить очень просто. Заводишь счетчик , и сразу как только отрисовываешь что то (отправляешь в ленту) увеличиваешь счетчик на 1.И раз в секунду смотришь какое число накопилось и обнуляешь.
 
  • Лойс +1
Реакции: Константин 271

poty

★★★★★★✩
19 Фев 2020
2,990
895
@Константин 271, можно как @Старик Похабыч, я проверял (на другом проекте) по факту: снимаешь обычным смартфоном (как правило либо 50, либо 60Гц - выставляется в настройках) и просматриваешь покадрово хотя бы секунду. Считаешь количество изменений и - вуаля - золотой ключик у нас в кармане.
 
  • Лойс +1
Реакции: Константин 271

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Какое отношение это всё имеет к обсуждаемому проекту?...
 

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
114
27
Омск
Это воспоминания о тех проектах, которые пришлось оставить, когда появился Ваш.
На ESP32 (прошивка v.1.13.2022.1204) при подключении SD карты в приложении WiFiPlayer не запускаются игры. Для решения этой проблемы подправил файл a_main.ino, убрав «SD» из конца строки:
case 12:
str = getStateString(“UP|FM|W|H|BR|SE”);
break;
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Хм... Это вообще не при чем должно быть. "SD" просто сообщает на телефон - есть ли в устройстве SD-карта (поддерживаются ли функции, связанные с SD- картой). Но таки да. Что-то отвалилось. Игра включается, но не стартует. У меня так. Сейчас поковыряю что где сломалось...

PS:там вообще какие-то чудеса... Из приложения WiFiPlayer (которое сто лет уж как не менялось совсем) через три секунды после включения игры оно самостоятельно шлет на устройство код переключения в режим рисования - "$5 5 0;"
Вообще не понимаю что происходит и почему...

PPS: Удивительно, но ваши исправления реально работают. Я не понимаю почему, но лезть в приложение разбираться что происходит мне реально лень. Играм в общем то не нужно знать есть ли поддержка SD-карты. Оставим пока так...

PPS1: Разобрался. В приложении исправил, обновил.
 
Изменено:

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
114
27
Омск
@vvip,
Я сначала подумал, что это связано с эмуляцией SD карты. Попробовал убрать SD в этой строке (показалось не нужным) - и заработало. Потом вернулся на предыдущие версии прошивок, но и там была эта проблема. Тоже грешил на приложение, но не разобрался, в чём дело. Спасибо, что так быстро подправили! Теперь обойдусь без «костыля».
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Привет уважаемый! Использую Вашу прошивку в режиме панели на окне, спасибо, замечательный проект! Планируете расширить список эффектов?
Да не планировал пока. Самописанные что хотел - либо уже написал, либо сложно и не знаю как, либо фантазии не хватает. Можно, конечно, стянуть из других прошивок, если другие авторы не возражают, но это ж время тратить искать нужно... Пока и времени этим заниматься нет, да и скучно это.

Есть какие-то предложения по добавлению эффектов? Где посмотреть (конкретно), откуда что перенести?
Второй момент - там памяти то свободной (оперативки) у ESP8266 не так много остается... Пишет, например, что для матрицы 16x16 остается порядка 15-17К свободных, а для бОльших матриц - видимо и того меньше... Разве что доп.эффекты для ESP32 только добавлять...

PS. Неспешно пишется Web-интерфейс (что тоже отнимет память, наверное). И время для реализации задуманного. Плюс давно отложенные фичи, которые не делались из за сложности редактирования приложений на телефоне. Когда Web-интерфейс будет готов, приложения для телефона изменяться уже не будут (будут поддерживаться только фичи, уже имеющиеся на версию 1.13). Все новое с версии 1.14 будет доступно только через Web UI.
 

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
@vvip,
молодец! приятно видеть что движешься! По поводу эффектов, есть где с тобой связать в Телеге например?
ещё есть вопрос, я в цикле кручу эффекты по 20 секунд, хочу на один из циклов наложить бегущую строку, но она не успевает за 20 секунд пробежать полностью, возможно как то сделать задержку по времени именно тем эффектам на которых наложена строка, чтобы строка успевала пробежать?
 

vvip

★★★✩✩✩✩
18 Дек 2018
413
167
Ну, стукнись на @vvip_68 в телегу.Ну можно же не строку на эффект накладывать, а эффект на строку. Макрос {E} в строке. Это не подойдет?
 

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
114
27
Омск
@Scopex,
В настройках эффектов у нужного эффекта поставьте галочку: Использовать бегущую строку поверх эффекта.
Затем, в настройках бегущих строк в нужную строку добавьте макрос {En}, где n - номер эффекта.
Например, строка:
С Днём св. Валентина!{E9}{S14.02.****}
будет отображаться на фоне эффекта «Звездопад» 14 февраля каждого года. При этом, если время смены режима истечёт, уже начавшая отображаться строка добежит до конца на фоне этого эффекта, а уже после произойдёт смена режима.
 

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
@VadZher,
Классное решение! Мне твоя прошивка по функционалу нравится больше всех, возможности очень гибкие...
Подскажи ещё, если пытаться делать файлы OUT, кидать их на карту, там есть какие то ограничения? Каким образом происходит их проигрывание, читается в память ЕСП? Тогда наверное там тоже совсем всё кисло по размеру файла...?
 

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
114
27
Омск
@Scopex,
Мне тоже нравится эта прошивка, третий год на зависть двору без нареканий тянет матрицу 39х30 на окне.
Большое спасибо её автору - VVIP-68!
По поводу ограничений более достоверно ответит автор. Я с ними не сталкивался, опишу саму процедуру. Файлы помещаются в корень карты памяти в папку с названием, соответствующем размеру матрицы. В моём случае, это папка 39x30. Обычно, делаю ролики в программе Jinx по 30-90 секунд, обрезаю в JinxFramer. Размер роликов, как правило, 1-6Mb, карты на 2Gb хватает «за глаза». ESP считывает и сортирует список файлов , сами файлы проигрываются с карты.
Когда Вы освоите процедуру создания роликов в программе Jinx, используя встроенные методы и захват видео, вопрос с добавлением эффектов в прошивку отпадёт сам собой…
 

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
@VadZher,
Спасибо, я пробую но получается не очень... Поделитесь наработками? Очень интересно посмотреть... Может что то под себя обрежу...