AlexGyver / GyverLamp2

Огненная лампа v2
156 stars 73 forks source link

Перевод WiFi в 'local' режим #10

Open Glober777 opened 3 years ago

Glober777 commented 3 years ago

Добрый день!

У меня есть лампа состоящая из NodeMCU, сенсорной кнопки, и матрицы 16х16. Я обновил ее с первой версии (немного измененной) на V2 и столкнулся с тем, что не могу подключить ее к своему домашнему WiFi, действуя, по инструкции :) Весь остальной функционал, по-моему, работает. Например, лампой можно управлять через приложение (включать/выключать/менять эффекты) и используя сенсорную кнопку.

Наблюдая за лампой через Serial Monitor я вижу, что она получает команду при попытке задать пароль к WiFi через приложение и изменить режим, при этом, судя по логу перезагрузка не происходит (даже, если выбрать Сервис->Перезагрузить)

Добавив в разных местах дополнительных DEBUG и DEBUGLN я заметил следующее:

Единственный вариант заставить лампу подключиться к моей сети - принудительно забить пароль в прошивку (в структуре Config).

Есть ли какие-нибудь мысли по поводу того, как это исправить, чтобы не держать пароль в прошивке?

Спасибо!

AlexGyver commented 3 years ago

Привет, прошивал как generic esp? Кнопка подключена как на схеме?

AlexGyver commented 3 years ago

Вообще выглядит крайне странно! Получается лампа управляется с приложения, но не получает логин пароль и не отрабатывает команду перезагрузки. В то же время изменение config в коде не должно влиять на работу, так как сам конфиг хранится в eeprom памяти. Очень странно

Glober777 commented 3 years ago

Привет, прошивал как generic esp? Кнопка подключена как на схеме?

Подтверждаю - прошивал, как Generic ESP 8266 Module и кнопка подключена, как на схеме (I/O на D2 и питание - соответсвенно). Кнопка, в общем, работает - я могу с ее помощью включать, выключать, запускать процесс проверки на зажатие (checkButton()). Стоит, правда, отметить что иногда бывает так, что при быстром многократном нажатии, прошивка считает на одно или несколько нажатий меньше (судя по логам в консоли). Возможно, это из-за толщины корпуса и клея.

Glober777 commented 3 years ago

Вообще выглядит крайне странно! Получается лампа управляется с приложения, но не получает логин пароль и не отрабатывает команду перезагрузки. В то же время изменение config в коде не должно влиять на работу, так как сам конфиг хранится в eeprom памяти. Очень странно

Мне кажется, что в моем случае в eeprom ничего нового, при изменеии конфигурации, не записывается

Glober777 commented 3 years ago

Привет, прошивал как generic esp? Кнопка подключена как на схеме?

Подтверждаю - прошивал, как Generic ESP 8266 Module и кнопка подключена, как на схеме (I/O на D2 и питание - соответсвенно). Кнопка, в общем, работает - я могу с ее помощью включать, выключать, запускать процесс проверки на зажатие (checkButton()). Стоит, правда, отметить что иногда бывает так, что при быстром многократном нажатии, прошивка считает на одно или несколько нажатий меньше (судя по логам в консоли). Возможно, это из-за толщины корпуса и клея.

Кстати, прошивал, через Arduino IDE

AlexGyver commented 3 years ago

Единственный вариант заставить лампу подключиться к моей сети - принудительно забить пароль в прошивку (в структуре Config).

Я об этом, это ничего не изменит по факту

Glober777 commented 3 years ago

Единственный вариант заставить лампу подключиться к моей сети - принудительно забить пароль в прошивку (в структуре Config).

Я об этом, это ничего не изменит по факту

В моем случае, как только я изменил значения по умолчанию в структуре Config (WiFimode, ssid, pass) лампа сразу-же подлючилась к Wifi как только все залилось.

Кстати, я попробовал в таком варианте забить новые настройки для Wifi через приложение, но после перезагрузки (по кнопке reset на плате) лампа загрузилась со старыми SSID и паролем.

AlexGyver commented 3 years ago

Значения в config имеют силу только при самой первой прошивке. После этого данные хранятся в памяти и повлиять на них через эту структуру уже нельзя

Mitsmaster commented 2 years ago

При смене режима сети при помощи кнопки на лампе слетают настройки, которые были изменены через приложение: WiFI (логин и пароль), настройки конструкции ленты, а также выбранные и настроенные мной режимы. Т.е. я при помощи приложения настраиваю лампу, перезагружаю ее в режиме Iocal. Все работает, но когда я хочу изменить режим на AP, используя кнопку управления на лампе (длинное зажатие при запуске, когда загорается синий светодиод) - настройки слетают. Все было бы ничего, но если нужно изменить конфигурацию, то нужно переводить лампу в режим AP, и тогда приходится многие настройки перенастраивать заново, а если не переводить лампу в режим local, то не работают часы, поскольку лампа не подключена к интернету. Кстати из режима AP по кнопке невозможно войти в режим local. Только через приложение.

Mitsmaster commented 2 years ago

Добрый день!

У меня есть лампа состоящая из NodeMCU, сенсорной кнопки, и матрицы 16х16. Я обновил ее с первой версии (немного измененной) на V2 и столкнулся с тем, что не могу подключить ее к своему домашнему WiFi, действуя, по инструкции :) Весь остальной функционал, по-моему, работает. Например, лампой можно управлять через приложение (включать/выключать/менять эффекты) и используя сенсорную кнопку.

Наблюдая за лампой через Serial Monitor я вижу, что она получает команду при попытке задать пароль к WiFi через приложение и изменить режим, при этом, судя по логу перезагрузка не происходит (даже, если выбрать Сервис->Перезагрузить)

Добавив в разных местах дополнительных DEBUG и DEBUGLN я заметил следующее:

* При перезагрузке лампы с зажатой кнопкой, отпускание никак не регистрируется вне зависимости от того, при каком значении `count` (внутри `checkButton()`) перестать ее держать. Может дело в самой кнопке?

* Если принудительно заставить лампу загрузиться в локальный режим, например, заменив блок if\else в `startWiFi()` на setupLocal() появляется "WIFI not configured", потому что `cfg.ssid` и `cfg.pass` не заданы.

Единственный вариант заставить лампу подключиться к моей сети - принудительно забить пароль в прошивку (в структуре Config).

Есть ли какие-нибудь мысли по поводу того, как это исправить, чтобы не держать пароль в прошивке?

Спасибо!

У меня по кнопке тоже не переключается режим. Переключить можно из приложения.

Leencore commented 1 year ago

Столкнулся с похожей проблемой. После прошивки всё работает, настройки сохраняются, но после перезагрузки/выключения в нулевой ячейке памяти снова ноль вместо 69 и следующий запуск проходит как первый.

ibalaban commented 9 months ago

Подскажите люди добрые как правильно вписать в коде ssid и pass что бы подключилась моей точке Wi-Fi?

char ssid [32]; Правильно я понимаю ?

GyverLibs commented 9 months ago

@ibalaban это делается через приложение

ibalaban commented 9 months ago

Через приложение, как тут написано не сохраняет настройки. Перезагружаю через приложение в режиме подключения к мое сети но подключения нет