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

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

Комментарии

AnCore

★✩✩✩✩✩✩
27 Янв 2020
176
36
Только сегодня заметил (по-моему, раньше не так было), что если в бегущей строке выбрать макрос времени и указать длительность (сколько раз или секунд (не важно) должна строка пробежать), то всё равно один раз бежит (даже, если текст дополнительно написать), а если просто текст отправлять, то сколько нужно раз бежит
 

Вложения

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
@vvip,
Здравствуйте. Отличный проект и 1.13 и 1.14+. Собираю себе новогоднюю 128х8 на версии 1.13. Оптимизирую эффекты, пишу свои.
Подскажите, пожалуйста, есть ли в природе приложение WiFi Panel версии 1.13? Если есть, можете выложить? Всё, что находится в инете, версии 1.12.
Приложение WiFi Panel Setup версии 1.13. Вроде и у меня стояла WiFi Panel 1.13, но решил побаловаться с AppInventor и теперь только 1.12.
Если есть ещё и *.aia для 1.13, то будет просто замечательно!
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Zordog, все лежит в проекте. Все, что есть. Версии приложения соответствуют версии проекта (1.13). Что в интернете - я не знаю. Никуда кроме проекта это не выкладывалось.
 

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
@vvip, под "интернетом" имелось ввиду репо на Githab.
Там лежит приложение WiFi Panel версии 1.12.2021.1026, у которого не работает функция "Подключать при запуске" и нет библиотеки LittleFS_esp32 в папке libraries, но лежит приложение WiFi Panel Setup версии 1.13.2022.1122.
Вот я и подумал, может у вас с гитхабом чего случилось.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Zordog,ну то, что строку с версией там не поправили - ни о чем не говорит. Но эта версия - актуальная для проекта и работает со всеми его функциями.

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

Библиотека LittleFS_esp32 была нужна для старых совсем ядер микроконтроллера, потом разработчики включили ее непосредственно в ядро микроконтроллера и как внешняя библиотека она уже не нужна. Теперь это часть ядра. Поэтому и отсутствует в проекте в папке Libraries.

А чего вдруг вообще в этот старый проект, когда есть более новый с управлением через браузер? Из за управления по MQTT, которого нет в новой версии?
 
Изменено:

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
Спасибо за уделённое время.

@Zordog,ну то, что строку с версией там не поправили - ни о чем не говорит. Но эта версия - актуальная для проекта и работает со всеми его функциями.
Может быть. У меня, вроде, стояла 1.13... Не суть.

"Подключать при запуске" - раньше работало. В любом случае - проект закрыт для изменений с моей стороны, и я уже не буду ничего в нем исправлять. Если хотите - поразбирайтесь, почините.
Я отлично по себе знаю, что такое "Проект завершён". Над "поразбирайтесь" сейчас как раз и размышляю.

Библиотека LittleFS_esp32 была нужна для старых совсем ядер микроконтроллера, потом разработчики включили ее непосредственно в ядро микроконтроллера и как внешняя библиотека она уже не нужна. Теперь это часть ядра. Поэтому и отсутствует в проекте в папке Libraries.
В исходника инклюд выбивает в ошибку под esp32

А чего вдруг вообще в этот старый проект, когда есть более новый с управлением через браузер? Из за управления по MQTT, которого нет в новой версии?
MQTT неинтересен. 1.14+ версия ещё в стадии разработки и отлова багов, а я оптимизирую под 128х8. Синхронизация изменений с вашей и моей сторон тот ещё процесс.

В любом случае, спасибо за проекты и потраченное время!
 

Gelosss

✩✩✩✩✩✩✩
1 Фев 2023
15
0
Здравствуйте, подскажите как поменять последовательность цветов не правильно отображаться( только в скетче нужно править? ( в скетче строчку как в описании не нашел, может куда в другое место перенесли?
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Gelosss,строчка COLOR_ORDER никуда не переносили. Всё там же - где-то в a_def_hard.h
 

Gelosss

✩✩✩✩✩✩✩
1 Фев 2023
15
0
@vvip,

ищу по инструкции с форума там указан другой путь(

спасибо ваш путь правильный) а из веб интерфейса нельзя последовательность цветов сменить?
 

Вложения

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Gelosss, ну, проект развивается. Какие-то сведения и инструкции устаревают, увы. Даже вики по проекту уже слегка устарела - нет пока возможности поправить. А самому догадаться поискать данное буквосочетание в Arduino IDE по всему проекту - совсем никак?
 

Gelosss

✩✩✩✩✩✩✩
1 Фев 2023
15
0
поменял всё возможное цвета(Порядок цветов на ленте - RGB,RBG,GRB,GBR,BRG,BGR) не правильные всё равно можeт ещe где нужно менять?
 

vvip

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

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
@vvip,
Назрел вопрос. Так как уже реализовано подключение к разным пинам 4х отрезков, настройка количества диодов в них и, в планах, прикрутить порядок цветов для каждого отрезка, то нет ли желания сделать для каждого отрезка свою настройку точки подключения и направления диодов?
Например, у меня сейчас получается:
1. левый сегмент (32х8):
- точка подключения "право-верх", направление "вниз";
2. контроллер
3. правый сегмент (96х8):
- точка подключения "лево-верх", направление "вниз"

Т.е. два сегмента, между ними есп'ха. Физически так получается.

Или я не внимательно читал эту ветку, вики и комменты в исходниках?

Или так взлетит?
index.png
 
Изменено:

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Zordog, а это вообще возможно?
Вот все эти углы подключены и направление из угла - выполняет пересчет координат X,Y в номер светодиода в длинной последовательности - фактически представляя двумерную матрицу как одномерный массив. И все эффекты строятся исходя из этого. В том числе и функции FastLED которые просто манипулируют с массивом leds[], его размерностью / длиной. И про то как это на сегменты вывода на пины разведено - вообще ничего не знает...А вывод на пины в свою очередь тоже ничего не знает как там расположено физически, просто выводит последовательно кусок из массива leds[] начиная с индекса, N-ное количество штук.

Я даже себе не представляю такую математику, которая бы все это как-то структурировала и совмещала.
Даже если и возможно (в чем я сомневаюсь) - это как-то сильно сложно и выше моего понимания.
Зачем накручивать сложные формулы - проще физически матрицу сформировать в правильно порядке...

А зачем в твоем случае вообще разбивать на сегменты? Матрицы то небольшого размера...

UPD: а применение карты индексов в этом случае разве не решит проблему? Там то вообще в произвольном порядке можно светодиоды нумеровать. И ничего переделывать не нужно - уже все есть.
 

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
@vvip,
У меня матрица 128х8 полчается длинной 20 метров. Физический выход на улицу делит матрицу на два сегмента 32х8 и 96х8.
Получается, чтобы сделать одинаковые точки подключения, нужно кинуть сигнальный провод на 5 метров, вдоль силовых, сечением 2 мм2. Кидать придётся экранированным. Хотел избежать этого =)

Сейчас только макетка 16х8 из ленты. Найду ещё кусок, попробую карту индексов.

Спасибо за исчерпывающий ответ. Я код смотрел, понимаю "что к чему".
 

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
Не взлетело... Как только не создавал карту индексов, как только не переключал пины со стартовым индексом и количеством диодов, всегда один результат... Часы вверх ногами, цифры отзеркалены по вертикали и сдвиг на 1 пиксель через колонку =\

ESP32 - 2.0.14, библиотека FastLED версии 3.6, "WiFiPanel v.1.14с.2024.0121"

matrix.pnghardware.pngmap.png

Это 22:41
17061972855785325818599555238151.jpg

UPD. Часы не вверх ногами, просто съезжает на пиксель через колонку. Это 22:50
17061978461595101037269709333668.jpg

UPD2. ВСЁ РАБОТАЕТ! =)
Это я упустил момент, что у меня подключение параллельное.
UPD: а применение карты индексов в этом случае разве не решит проблему? Там то вообще в произвольном порядке можно светодиоды нумеровать. И ничего переделывать не нужно - уже все есть.
Так что это рабочий вариант
 
Изменено:

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Zordog, ну, увы... Вроде раньше проблем с индексными картами не возникало. На приведенных скринах я никакого подвоха не вижу...

Вы же понимаете, что у меня нет такого готового стенда как у вас. Это значит то чего надо специально собирать, чтобы хотя бы посмотреть что происходит. Это дело не быстрое...

UPD: А - вот в чем подвох. Разглядел!!!
Карта у вас составлена зигзагом - сверху вниз, следующая колонка - снизу вверх.
А на устройстве, судя по проводкам - нифига не зигзаг. Там параллельное соединение и все колонки идут сверху вниз.
У вас карта составлена не в соответствии с физическим расположением диодов
 
  • Лойс +1
Реакции: Zordog

TM1

✩✩✩✩✩✩✩
9 Дек 2023
22
0
Добрый день. Скажите, работает ли функция, когда настраиваешь эффекты в jinx, чтобы изображение выводить сразу на матрицу через usb провод и смотреть что получается в реальном времени и записывать сохранять этот файл.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@TM1, нет. А зачем? Джинкс сам на своем экране показывает. Зачем еще что-то? Бессмысленно это.
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
Небольшое обновление в WiFiPanel v.1.14с.2024.0126

1. Добавлена настройка порядка цветов ленты в WebUI - для каждого фрагмента ленты, назначаемого на пин вывода отдельно.
Пока разделение сделано по пинам. Разделение по отрезкам ленты, подключенной к одному пину - пока не сделано

1706294704043.png

2. В макрос бегущей строки ограничения дат {S} добавлен параметр - по дням недели.
Например строка "Пример строки с макросом {S01.01.* * * * .#10.04. * * * *#456}"
будет отображаться с 1 января каждого года по 10 апреля каждого года тольлко по четвергам-пятницам-субботам ( это параметр #456, дни недели соответственно ПН-1..ВС-7). Если этот параметр не указан - значит "любой день недели", то же самое что '#1234567'

@AnCore, никаких проблем с макросами {N} и {T} - отображать строку N раз или повторять T секунд не обнаружил. Все работает.

Для применения обновлений нужно обновить прошивку И файловую систему.
 
Изменено:

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
vvip, всё-таки есть ещё просьба.
Можно добавить ещё один параметр-ползунок в настройках эффекта, например, ScaleParam3 и сделать наименование дополнительных параметров в WebUI переменной из кода? Вместо статичного "Вариант", "Сегменты" ?
 

vvip

★★★★✩✩✩
18 Дек 2018
503
225
@Zordog, а зачем третий ползунок? Что он делать то должен? Там и двух то праметров много бывает, не во всех эффектах используются.

Про наименованиях - ну наверное можно. Изначально идея была в том, что UI (ренее приложение) - ничего не знает что там за эффекты на прошивке в контроллере и все данные получаются из контроллера. А там хранить все эти наименования параметров - слишком сложно и ресурсозатратно.

Если только делать жесткую привязку на стороне UI от ID эффекта - как называются его параметры.
Тогда если что-то вдруг изменится в контроллере - нужно не забывать править соответствующие наименования в UI...Подумаю.
 

Zordog

✩✩✩✩✩✩✩
14 Дек 2019
42
8
Если только делать жесткую привязку на стороне UI от ID эффекта - как называются его параметры.
Тогда если что-то вдруг изменится в контроллере - нужно не забывать править соответствующие наименования в UI...Подумаю.
Зачем так? Это усложняет поддержку проекта.

Про наименованиях - ну наверное можно. Изначально идея была в том, что UI (ренее приложение) - ничего не знает что там за эффекты на прошивке в контроллере и все данные получаются из контроллера. А там хранить все эти наименования параметров - слишком сложно и ресурсозатратно.
C++:
   case MC_RAINBOW:
     // Эффект "Радуга" имеет несколько вариантов - список выбора варианта отображения
     // Дополнительный параметр представлен в приложении списком выбора
     //           Маркер типа - список выбора         0,1,2,3,4               0               1                   2                     3                   4
     str = String(sFL); str += effectScaleParam2[mode]; str += F(">Случайный выбор,Вертикальная радуга,Горизонтальная радуга,Диагональная радуга,Вращающаяся радуга");
     break;
Тут же можно передать и текст поля "Наименование" вместо стандартного "Вариант". Вот разделить "Вариант" и "Сегменты" уже да, много работы в API и самих эффектах.

@Zordog, а зачем третий ползунок? Что он делать то должен? Там и двух то праметров много бывает, не во всех эффектах используются.
Возьмём простой эффект "Шарики".
Сейчас, помимо базовых параметров "Контрастность" и "Скорость", параметром эффекта является только их количество (3-6). Если бы была возможность изменять длину хвоста ещё одним параметром, то можно добиться большей вариативности под разные размеры матрицы.

А если рисовать шарики не так
C++:
    idx = getPixelNumber(coord[j][0] / 10, coord[j][1] / 10);
    if (idx >= 0) leds[idx] =  CHSV(ballColors[j], 255, effectBrightness);
а так
C++:
    idx = getPixelNumber(coord[j][0] / 10, coord[j][1] / 10);
    if (idx >= 0) nblend(leds[idx], CHSV(ballColors[j], 255, effectBrightness), 128);
эффект будет смотреться интереснее. Вот это можно вкл/выкл имеющимся "Сегменты".