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

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

Комментарии

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
125
35
Омск
@vvip,
Web-интерфейс, на мой взгляд, важнее. Он решит проблему с приложением для пользователей iOS. А вопрос расширения списка эффектов не стоит остро с появлением SD и её эмуляции.
 

vvip

★★★★✩✩✩
18 Дек 2018
506
230
В настройках эффектов у нужного эффекта поставьте галочку: Использовать бегущую строку поверх эффекта.
Это не обязательно. Если эффект указан в макросе {E} - он будет все равно проигрываться даже если галка не стоит. Эта галка - использовать ли эффект в демо-режиме.

При чтении с SD-карты файл OUT (содержимое) считывается покадрово. Считали кадр прямо в массив leds светодиода, выплюнули считанное на ленту. Ограничений по памяти нет - только по размеру которые может хранить SD-карточка. Там FAT - так что скорее всего - не более 2GB на эффект.
 
  • Лойс +1
Реакции: Scopex

vvip

★★★★✩✩✩
18 Дек 2018
506
230
@vvip,
Web-интерфейс, на мой взгляд, важнее. Он решит проблему с приложением для пользователей iOS. А вопрос расширения списка эффектов не стоит остро с появлением SD и её эмуляции.
Вот я тоже так подумал и решил сначала взяться за Web...
 
  • Лойс +1
Реакции: VadZher

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
125
35
Омск
@Scopex,
Матрица 39х30, направление змейкой из левого нижнего угла вверх.
При обрезании готовых роликов в JinxFramer, бывает, теряются полутона. Лучше, понравившиеся ролики сделайте под свой размер, используя исходные файлы анимации.
 
  • Лойс +1
Реакции: Scopex

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
кинул на карту два эффекта, 001.out и 002.out
приложение видит что там два файла, выбираю опцию "последовательно", но воспроизводит только один файл...
как должна работать эта логика?
 

vvip

★★★★✩✩✩
18 Дек 2018
506
230
Ну, как-то так и должна. Воспроизводит один файл, затем, когда выпадет (придет время) снова воспроизводить эффект SD-карта - будет воспроизводить второй. Когда список загруженных файлов эффектов закончится - начнется с начала.
 

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
@vvip,
понял, ещё вопрос, сколько по времени должен воспроизводиться файл с карты если в цикле задано 20 сек на эффект а сам файл длиной 30 сек? второй случай сам файл - 10 сек?
 

vvip

★★★★✩✩✩
18 Дек 2018
506
230
Зависит от дополнительных настроек

1675965559399.png
 
  • Лойс +1
Реакции: Scopex

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
пока немного непонятно... эффект у меня на карте длительностью около 25 секунд, время эффектов в цикле - 20 сек
настройки:
#define WAIT_PLAY_FINISHED 1
#define REPEAT_PLAY 0
однако эффект с карты отображается два раза, и похоже что второй раз как то не до конца, т.е. общее время прокрутки этого эффекта около 40 сек...
 

vvip

★★★★✩✩✩
18 Дек 2018
506
230
Ну по логике описанного - эффект (ролик с карты) должен доиграться до конца (свои 25 сек) и смениться на другой эффект...
Более ничего сказать не могу.
 
  • Лойс +1
Реакции: Scopex

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
@vvip,
я это понимаю, но на деле этого не происходит... видимо где-то косячёк
 

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
Вадим, подскажи пожалуйста ещё по карте, не могу понять, отключаю питание, вынимаю карту, добавляю например третий файл на карту, вставляю, включаю, запускаю приложение, новый файл с именем elka.out система не видит... Отключаю, вынимаю карту, пытаюсь произвести какие то манипуляции с именами, перетменовываю в 005.out, в какой то момент система ничинает видеть все файлы... В общем так и не вывел системы которая однозначно даст результат чтобы сразу все файлы были видны... Кнопка сброса микроконтроллера не выведена, по этому пользуюсь питанием...
Как правильно?
 

vvip

★★★★✩✩✩
18 Дек 2018
506
230
Странные вещи у тебя творятся. Не знаю. При каждой перезагрузке микроконтроллера список файлов всегда считывается с карточки. Выключение и включение питания - однозначно перезагрузка микроконтроллера. Файлы не должны содержать кириллицы (их он не увидит) и обязательно иметь расширение ".out". Количество файлов - не более 126. Файлы должны лежать в парке 'WxH' - где W-ширина, H-высота, например '30x39'
Больше никаких условий нет. У меня нет ответа на твой вопрос почему так происходит.
 
  • Лойс +1
Реакции: Scopex

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
может это приложение каким то образом не хочет сразу подхватывать файлы?
 

vvip

★★★★✩✩✩
18 Дек 2018
506
230
Приложение считывает список файлов каждый раз, когда на страничке эффектов в комбобоксе выбирается эффект "SD-карта".
 
  • Лойс +1
Реакции: Scopex

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
Вадим, прости, может я такой бестолковый, но мне требуется некоторое разъяснение моих догадок, смотри:
#define USE_SD 0 // поставьте 0, если у вас нет SD-card модуля
#define FS_AS_SD 0 // при USE_SD == 1; FS_AS_SD == 0 - эффекты на SD-карте, 1 - эффекты в файловой системе МК, самого SD-card модуля нет (режим эмуляции SD-карты для эффектов 'SD-карта')

По первому пункту понятно, а вот по второму, функция относится ТОЛЬКО к эффектам SD карты и к остальным эффектам не имеет отношения? Мы можем иметь эффекты "SD карта" либо на физической карте, либо на её эмуляции? Возможно тогда я тут накосячил, надо дома проверить...

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

vvip

★★★★✩✩✩
18 Дек 2018
506
230
Ну да. Если USE_SD == 0 - все что касается SD-карты вообще не включается в прошивку.
Если USE_SD ==1 - функционал включен. Далее -
при FS_AS_SD==0 все обращения к чтению данных с SD-карты переадресуются на физически подключенный модуль кард-ридера
при FS_AS_SD==1 все обращения к чтению данных с SD-карты переадресуются на внутреннюю файловую систему микроконтроллера.
Места там не так много. 2-3 мегабайта в зависимости от выбранной опции разметки файловой системы при компиляции скетча.
-----------------------------------
С Web-интерфейсом - беда :(
Программировать на Light-weight или "вручную" интерфейсы я не умею - много изучать нужно, вручную - много мороки. Мало времени и лень всем этим заниматься - функционала в приложениях много - замучаешься все переписывать и прописывать.

Более/менее удобен Angular, писать на нем проще - но он зараза тяжеловат. Во первых занимает практически все место файловой системы, плюс генерит достаточно большие файлы, которые, похоже, библиотечный AsyncWebServer не способен нормально отправить клиенту :(. По крайней мере на ESP8266. И памяти в ней маловато - перезагружается время от времени.

На ESP32 с этим более менее справляется, пока Web UI реализован минимально, на размер файловой системы там и того меньше - всего 1.5 мегабайта свободных. И ядро занимает много места - вся прошивка пишет использует 94% доступной памяти..

Так что - может и не получиться вовсе, увы... Это всё по результатам трехдневного ковыряния в этой теме.
 

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
Не спеши, ты ведь не в конкурсе участвуешь, это увлечение для души... Мы верим, у тебя все получится!
Хотя у тебя уже получился замечательный продукт! Остальное это фенечки ;)
 
  • Лойс +1
Реакции: knopaleo

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
125
35
Омск
@Scopex,
У меня наблюдалось подобное с картой на 4Gb и именно при добавлении/удалении файлов. Если мне нужно было добавить файл на карту - приходилось её форматировать и записывать все файлы за один раз. Потом перешёл на карту 2Gb и эта проблема исчезла. Также, у меня иногда не считываются 1-2 файла из 30-40 при загрузке микроконтроллера, эти файлы отображаются в приложении с неполными именами, эффекты не отображаются. Сколько бы я не выбирал в приложении режим SD - контроллер их корректно не считывает. Но сразу помогает простая перезагрузка.
 

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
125
35
Омск
@vvip,
Может, тогда лучше реализовать минимальный функционал, работающий параллельно с приложениями? Либо, вернуть часть настроек обратно в прошивку? Например, прошиваться с набором строк для отображения на матрице, а в Web-интерфейсе только выбирать, какие из них будут отображаться.
 

pisto

✩✩✩✩✩✩✩
21 Фев 2023
3
0
Подскажите как управлять кнопкой(не сенсор)???Не нашел что-то нигде....
 

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
125
35
Омск
@pisto,
Кнопка управления режимами, последовательность переключения:
Будильник сработал, идет рассвет или мелодия пробуждения
  • Любое нажатие кнопки отключает будильник
Долгое удержание кнопки
  • При включенной панели - плавное изменение яркости
  • При выключенной панели - включение яркой белой панели освещения (только для сборки типа "Лампа" - DEVICE_TYPE == 0)
Однократное нажатие кнопки
  • Включение / выключение панели. При включении возобновляется режим на котором панель была выключена.
Двухкратное нажатие кнопки
  • Ручной переход к следующему режиму
Трехкратное нажатие кнопки
  • Включение демо-режима с автоматической сменой режимов по циклу
Четырехкратное нажатие кнопки
  • Включение яркой белой панели освещения из любого режима, даже если панель была "выключена" /для сборки типа "Лампа"/
    Отображение IP адреса панели на матрице и на индикаторе TM1637, если подключение к локальной WiFi сети установлено /для сборки типа "Панель"/
Пятикратное нажатие кнопки
  • На индикаторе TM1637 и на матрице отображается IP адрес панели, если подключение к локальной WiFi сети установлено /для сборки типа "Лампа"