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

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

Комментарии

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@VadZher,
Так она там есть В FAQ - Три шага к успеху. Некоторые особенности настроек

PS: Обновил Web-морду для ввода пароля сети - добавил пробел и еще кучку спецсимволов, что нашел на клавиатуре.
Кириллицу разрешать не стал - UTF8 - дело такое... ХЗ как к кириллице ESP8266/ESP32относится... Не стал рисковать, чтоб потом не переделывать да кучи проблем избежать.
 
Изменено:
  • Лойс +1
Реакции: VadZher

Сотнег

★★★★★★★
15 Янв 2020
4,391
1,504
@vvip,
так ведь за неработающие символы в любом случае с вас спросят.
Будь то вы их запретите, или код сам взбунтуется.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
Тем, кому это еще не надоело... Я снова обновил обе версии 1.13 и 1.14
Что поменялось из основного
  • Исправлена ошибка, когда на длинных строках макросы {R} и {S} неправильно работали - могли даже не обрабатываться макросы цвета и строка со всеми макросами перла на экран
  • Время расчета "Осталось до..." приведено от математической модели к гугловской. Когда у гугля спросить - сколько дней до - он текущий день считает за целый, даже если в нем осталась пара часов до конца дня. 1.14 кажется так и считала, а 1.13 - ну день то почти прошел, округлим... В результате печаталось на день меньше
  • При текущем времени 22:59 31.12.2024 - конкретно в эту минуту писалось "Осталось 0 дней" вместо "Осталось 1 час 1 минута"
  • Подсчет остатка минут также приведен от математического к визуальному. То есть если текущее время 22:59:50, на экране отображается 22:59
математически осталось 1 час 0 минут (10 секунд)" - но визуально то "1 час 1 минута". - вот теперь так и пишет
  • Неправильно отображалась (точнее - не отображалась когда надо) бегущая строка, если она одна в системе и лежит в ячейке 0 (все остальные пустые) или когда в ячейке 0 значение "##", и всего одна строка в ячейке 1 ( если в яч.0 "#1" - работало)
  • В получении погоды не отрабатывалось время толерантности - когда, если не удалось получить погоду с сервера она считалась действительной еще 2 часа, и только после этого сбрасывалось в состояние "Нет сведений о погоде". Может за этот период толерантности и удалось бы подключиться к серверу и обновить погоду...
  • В 1.14 в файлах Web-интерфейса выбора TimeZone исправлены зоны "Прочее" GMT+XX (которые реально обрабатывались как GMT-xx)и наоборот
 
Изменено:

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
@vvip,
Надо в WebUI, где-нибудь, номера эффектов показывать для макроса {Exx}. Пока не посмотрел в исходниках, не попал на нужный.

upd.
В макросе {Pdate time#N#B#A#W#T}, в обратном отсчёте незначащий "0" в секундах отключается? Подскажи, пожалуйста.

upd2.
Незначащий "0" убрал, вопрос снят.

upd3.
В WebUI, при входе на выключенное устройство и нажатии кнопки включения ("Яркость"), устройство включается на сохранённой при отключении яркости, например 50%, всё нормально. А вот сам WebUI работает не правильно. Слайдер яркости устанавливается в минимальное значение, кнопка быстрого выбора яркости активируется "5%", а кнопка "50%" недоступна для нажатия.
 
Изменено:

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
120
30
Омск
@Zordog,
Мне удобнее не вводить номера эффектов в макросе, а сразу выбрать в выпадающем меню.IMG_2494.jpegIMG_2495.jpeg
Проблему с отображением яркости и доступности кнопок при входе через веб-интерфейс на выключенное устройство также наблюдаю. Ранее такого не было. Возможно, уважаемый VVIP убрал принудительное обновление этих позиций при включении, чтобы снизить нагрузку на контролер.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@VadZher, не... С яркостью косяк какой-то. Нужно посмотреть/поправить. Я точно ничего не убирал и не менял в этом плане. Посмотрю где что отвалилось...

UPD: Я исправил косяк. Обновил в репозитории. Если кому не лень из за такой мелочи перепрошиваться - велком
 
Изменено:
  • Лойс +1
Реакции: Дрон, Zordog и VadZher

vvip

★★★★✩✩✩
18 Дек 2018
503
225
По просьбам трудящихся и для тех, кому не надоели обновления.
Остальные могут проходить мимо.

Версия 1.14.2024.1102 - в репозитории.
Изменен режим бегущей строки. Теперь она может показываться и ночью, то есть когда включен режим "Ночные часы".

В настройках эффекта "Часы" (а именно он один и работает ночью, все другие отключены) нужно включить настройку отображения бегущей строки поверх эффекта.

В настройках текстов, в ячейке 0, которая содержит управляющую последовательность второй строкой (!!!) нужно написать управляющую последовательность для ночного режима. Правила те же - либо '##' - показывать все разрешенные строки в случайном порядке, либо после одиночного знака '#" перечислить индексы строк в той последовательности как они должны отображаться.

Например, второй строкой стоит '##' - всю ночь веселим одиноких ночных прохожих афоризмами, странными высказываниями и информацией о погоде.

Или, пишем в ячейку 1 строку из макросов {D} {WT}и в ячейку 0 - управляющую последовательность '#1'
При такой настройке с указанным периодом будет бегать единственный текст - текущее время и температура.

1730544725577.png

Если ночная бегущая строка не нужна - в ячейке 0 оставляем одну строку (второй нет или она пустая). Тогда бегущей строки ночью не будет.

Для обновления нужно залить саму прошивку, а так же обновить WebUI

Не забывайте, что при обновлении WebUI стирается все содержимое файловой системы микроконтроллера, а вместе с ней и ваши сохраненные настройки.Чтобы не потерять настройки - на страничке "Настройки" -> "Прочее" нужно скачать файл с сохраненными настройками к себе на комп (на телефон) выполнить обновления, затем загрузить настройки с компа/телефона обратно в микроконтроллер.

PS: В этой же версии добавлен вариант начертания цифр шрифта 5x7 в больших часах. Файл utility.ino в начале
По дефолту - прежний шрифт, новый - закомментирован.
 
Изменено:

Oleg Ivanov

✩✩✩✩✩✩✩
26 Окт 2023
12
0
Версия 1.14.2024.1102 - в репозитории.
@vvip, что-то не взлетает.
Сначала ругается на custom.ino, строка 42:
suggest parentheses around '&&' within '||' [-Werror=parentheses]

Заменяю ее на предыдущую версию, затыкается на weather.ino, строка 129:
format '%s' expects argument of type 'char*', but argument 3 has type 'String' [-Werror=format=]

Плата:"ESP32 Dev Module, Disabled, Disabled, No OTA (2MB APP/2MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, Core 1, Core 1, None, Enabled"
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Oleg Ivanov,это потому что у вас в настройках компиляции включен режим строжайшей проверки синтаксиса, когда любое мало-мальское предупреждение компилятор считает ошибкой и отказывается собирать проект.

Я, конечно поправил что смог - типа обязательное отделение всех (!!!) логических операций && и || отдельно своими скобками. Типа компилятор не понимает приоритетов операций и ему всё нужно указывать явно. Или сравнение типов , который byte с типом же bytе... Или на неиспользуемые переменные...

Но даже после этого он ругается на что-то внутри комментариев - Compilation error: multi-line comment [-Werror=comment]
Чего я с моим знанием си осознать не могу.

Если хороши в си - исправьте и скажите как надо писать.
Если нет - будьте проще - отключите режим строгой проверки, включите "По умолчанию" - и будет вам счастье.

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

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

Что наблюдал я:
  • Часть эффектов не работает, при переключении на них мерцает первый светодиод матрицы, на матрице остаток от предыдущего эффекта.
  • При включении бегущей строки или когда приходит время показа даты календаря - эффект на это время размораживается
  • Либо наоборот - эффекты работают, но при включении бегущей строки замирает.
  • Либо эффекты замирают, но при снятии в часах галочки "цветная температура днем" все размораживается
  • Либо работают все эффекты кроме какого-то одного (причем при разных сборках эффекты могут быть разными)
  • На эффектах Снегопад и Matrix (и не на каких других) движение снежинок и полосок с небольшими рывками / подтормаживанием.
  • Либо работает все, бегут все строки. Кроме одной какой-нибудь. Иногда в такой строке есть макрос {D} но это не обязательно - может только одна с макросом не показываться а другие - нормально. Или с каким-нибудь другим макросом типа {S}.

В общем - не работать может в любом случайном месте. И найти и побороть этот глюк мне не хватает знаний/ квалификации / удачи.
Так с этим и живу. Впрочем я прошивку для себя делал. Если что - полно других безглючных.

Как я с этим борюсь.
Если в настройках функционала включить режим USE_E131 (или выключить) - иногда глюков не наблюдается.
Можно попробовать в меню "Инструменты" включить / выключить настройки (для ESP8266) - Stack Protection и/или С++Exception. Это дает 4 комбинации. Возможно с какой-нибудь из них заработает. Если нет - можно еще какие-нибудь настройки "пощелкать" - типа SSL Support, попереключать частоты CPU и памяти, режимы DOUT/DIO/QOUT/QUIO, для ESP32 - выбрать другую плату ESP32...

Обычно если найти "удачную" комбинацию настроек компиляции, при которой дефектов не наблюдается - их и не будет наблюдаться в дальнейшей работе до следующей перепрошивки. При которой, возможно, понадобится искать новую комбинацию настроек.

По видимому с каждым вариантом компилятор как-то по-разному собирает в конечном итоге блоки и глюк не проявляется.
Я не могу отловить причину. Если кто скажет как это исправить - welcome
А пока - только так... Или на другую прошивку.
 
Изменено:
  • Лойс +1
Реакции: Oleg Ivanov

vvip

★★★★✩✩✩
18 Дек 2018
503
225
А вот видео развлекательного на ночь глядя не хотите ли?
От Вадима Журавеля, автора варианта шрифта часов 5x7 (см. пост выше)


Пояснения: контроллер Wemos d1 mini. Кроме матрицы больше ничего нет (даже кнопки). Матрица - 82x12 -- 984 виртуальных пикселя (!!!). И памяти хватает. Реально - три сегмента общим размером физических "пикселей" - 32х12 = 16x12 + 8х12 + 8x12. На самых жрущих шумовых эффектах свободными остается порядка 11 КБайт, в среднем - около 18 КБайт. Вывод - с одного контроллера, параллельно на три пина. Пины D1, D2. D7. На других почему-то замирание и дергания. Матрицы на окнах - от контроллера протянута витая пара сквозь стены, с каждого управляющего пина - витая пара к своей матрице. Незанятые жилы - питание и "земля". При достаточной яркости - суммарной толщины проводника хватает, но лучше, конечно, линии питания продублировать более толстым проводом.

UPD: Видео обновлено. Автор выпустил новый вариант. Расширенный и дополненный.
 
Изменено:

Oleg Ivanov

✩✩✩✩✩✩✩
26 Окт 2023
12
0

Но даже после этого он ругается на что-то внутри комментариев - Compilation error: multi-line comment [-Werror=comment]
Чего я с моим знанием си осознать не могу.
Я так понимаю, это Arduino IDE 1.8.9 ругается на закрывающий закомментированную строчку обратный слэш, типа //бла-бла-бла \
Не любит она этого )
По-поводу "на другую прошивку".
После суперcкого UI, комбинированных гирлянд по E131, jinx с Frame-ом и пр, пр. - при всем уважении к другим авторам, Ваш продукт, уважаемый @vvip, в хит-параде №1. Как тут принято говорить, огромная благодарность от всего нашего пенсионерского корпуса!
UPD: Про Wiki забыл. Отдельно вызывает!
UPD2: Действительно настройки компиляции были проблемой
 
Изменено:

6yJlka

✩✩✩✩✩✩✩
27 Ноя 2023
24
1
Приветствую. Пробую залить новую версию v.1.14.2024.1102 в МК ESP32. Неудача при попытке залить скетч "Compilation error: 'sntp_stop' was not declared in this scope; did you mean 'igmp_stop'?".
Примечательно, но до этого стояла версия v.1.14с.2024.0215. Пробовал перезалить эту же версию- ошибка такая же, хотя пол года назад все норм было же. В чем может быть проблема?
Изначально хотел перезалить v.1.14с.2024.0215 из-за того, что наблюдалась странная работа гирлянды - после начала пробежки бегущей строки яркость падала в минимум и восстановиться могла только на автогене эффектов. Если автосмену выключить, то яркость была на минимуме после первой бегущей строки. Возникать могло в разное время такое, могло и две бегущие строки пробежать- все нормально будет с яркостью, а может с первой бегущей строки сразу яркость упасть.
Снимок экрана 2024-11-04 в 11.54.08.png
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@6yJlka,
Варианты проблемы.
  • Стоит не та версия ядра
  • Выбран вариант платы, в схеме построения которой отсутствует эта функция или переименована.
Вот то в логе - /esp32/3.0.7/.. скорее всего говорит, что установлено ядро esp32 версии 3.0.7
Устанавливая версию ядра, отличную от рекомендованной в проекте - 2.0.14 или 2.0.16 - вы берете на себя все риски когда что-то не компилится или не работает...

По яркости:
  • Включена кнопка (в функциях), но сама кнопка не припаяна
  • Указан не тот тип кнопки - например физическая вместо сенсорной или наоборот
  • В скетче настроен один и тот же пин - и на вывод и на кнопку
  • Сопля при пайке - замкнуты пин, назначенный на вывод ленты и на вход от кнопки.
Еще помню в какой-то из старых версий была какая-то ошибка в библиотеке GyverButton - которая ни с того ни с сего выдавала в функции запроса "нажата ли кнопка" - что она нажата и удерживается. Но вроде я это исправлял...
 
Изменено:
  • Лойс +1
Реакции: 6yJlka

6yJlka

✩✩✩✩✩✩✩
27 Ноя 2023
24
1
@vvip, поправил. да, версия ядра не та была, видимо обновилось со всем списком обновлений в ардуино самой.
По поводу яркости, все пункты не в моем случае. Спаяно нормально. В скетче указано верно всё.
Сейчас просился - вроде пока что не замечаю такого бага.
Спасибо!
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
И FastLED не обновляйте выше 3.6 или 3.7
Последняя версия 3.9 но она зачем-то хочет стороннюю библиотеку ArduinoJson, причем именно версии 7.x
Она (ArduinoJson) , в принципе вроде совместима с проектом, но требует памяти больше чем 6.21.x - а памяти и так мало.А с версией 6.21 -не компилится - выдает ошибку. Я проверял.
 
  • Лойс +1
Реакции: 6yJlka

Oleg Ivanov

✩✩✩✩✩✩✩
26 Окт 2023
12
0
@vvip, пара вопросов:
1. Из описаний фишек проекта:
  • Сохранение нарисованных изображения на SD-карте или во внутренней памяти микроконтроллера
  • Загрузка сохраненных изображений на матрицу и на страницу Web-интерфейса в браузере для редактирования
Получается сохранить изображение и вызвать его по сохраненному имени только в течении "одной сессии", т.е. до переподключения к UI. После этого сохраненное изображение не отображается. Это баг или фича?
2. На последней версии v.1.14.2024.1102 минимальная скорость эффекта Фейерверк (ползунок на 1 в UI) стала слишком высокой. Можно ли малой кровью изменить диапазон скорости этого эффекта?
 

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
Последняя версия 3.9 но она зачем-то хочет стороннюю библиотеку ArduinoJson, причем именно версии 7.x
У них конфликт 3.9 и 6.хх в namespace. У FastLED в change log'е описано.

2. На последней версии v.1.14.2024.1102 минимальная скорость эффекта Фейерверк (ползунок на 1 в UI) стала слишком высокой. Можно ли малой кровью изменить диапазон скорости этого эффекта?
Есть такое и в "Поток" и в "Фейерверк" и в "Полосы". В маппинге скорости эффектов, к текущим максимальным значениям, просто добавил 100.
 
  • Лойс +1
Реакции: Oleg Ivanov и vvip

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
@vvip,

Кстати по версиям:

FastLED - 3.7.8, esp8266 - 3.1.2, esp32 - 2.0.17 стоят, собираются и работают. Правда я использую только погоду и E1.31.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
Кстати по версиям:
FastLED - 3.7.8, esp8266 - 3.1.2, esp32 - 2.0.17 стоят, собираются и работают. Правда я использую только погоду и E1.31.
Ну, ок. Мне лениво было проверять все версии. Я проверил только 2.0.14 и 2.0.16
Будем знать.
 

Oleg Ivanov

✩✩✩✩✩✩✩
26 Окт 2023
12
0
@vvip, ну извините )
При изменениях в настройках погоды UI, перестала активироваться кнопка "Применить"
На форум-1.jpg
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Oleg Ivanov,

Извиняю. Вам же там красным по белому написано, что интервал обновления 15 минут - не валидное значение.
Минимальное значение - 30 минут. Исправьте, и будет вам счастье.

Ранее минимальное значение действительно было 15 минут. Но знающие люди мне популярно объяснили, что текущая погода на станциях по протоколу METAR обновляется не чаще чем раз в 30 минут, и обновлять ее чаще смысла не имеет.

Другой момент - запрос погоды идет через частный прокси-сервер. И все, кто пользуются этой прошивкой на ESP8266 - все ходят через этот сервер. Если брать погоду часто - имеется некоторая вероятность, что яндекс просто заблокирует IP этого сервера, и мы снова останемся без погоды.

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

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

Увы, нет способа сохранять нарисованные слайды, которые хранятся в файловой системе микроконтроллера. При обновлении WebUI они потеряются.
Вообще в файловой системе МК достаточно мало свободного места и сохранение картинок туда - скорее экспериментальная фича или когда не важно, чтобы шедевры хранились вечно. Для постоянных картинок лучше собрать устройство с модулем SD-карты и сохранять свои шедевры туда.
 
  • Лойс +1
Реакции: Oleg Ivanov