ESP8266 Sporadic не удается подключиться к Wi-Fi
Проблема
По необъяснимой причине NodeMCU (ESP8266) иногда может не подключиться к WiFi во время загрузки. Код одинаков во всех случаях, описанных ниже. Как ни странно, в других случаях он подключается безупречно и остается подключенным в течение длительного времени.
Старая установка
До сих пор я использовал старый маршрутизатор Edimax (12+ лет), поддерживающий переменный ток (2,4 ГГц, 5,0 ГГц), имеющий сеть IOT (ESP8266 и ESP32) с тем же классом IOT, который поддерживает подключение и MQTT-подключение. Брокер MQTT — это Raspberry3.
Новая установка
Переезжаю в новый дом, сейчас использую роутер TP-link Archer AX20 (AX1800 - Wifi6). Мне пришлось перенести все IOT в эту новую сеть (были мои причины, которые здесь не актуальны). Поскольку его IP-адрес теперь немного отличается (192.168.0.X вместо 192.168.2.X), я сначала попытался загрузить тот же код на новый NodeMCU, чтобы увидеть его новое подключение к Wi-Fi и брокеру.
Отладка
Другие MCU Пробовал на другом MCU. Такое же поведение. Я даже пробовал на 3-м NodeMCU, и опять те же результаты.
Я попробовал ESP32, который успешно подключался каждый раз, даже когда ESP8266 не удалось подключиться, я перезагрузил ESP32 (который был подключен к другому экземпляру Arduino и имеет собственный последовательный монитор), и всегда, мгновенное подключение.
Статья Я нашел статью, в которой предлагалось сделать несколько вещей:
- установите для Wi-Fi значение b/n и отключите все протоколы 5.0/ax.
- установите лепесток на 20 МГц и выберите (не автоматически) канал.
И то, и другое какое-то время казалось решением этой странной ситуации... но большую часть времени проблема оставалась.
Подведение итогов
- Старый маршрутизатор 2,4 ГГц, хорошо подключается ESP8266 & ESP32.
- Код тот же, и проверен в течение длительного времени.
- пробовал несколько NodeMCU, но проблема та же. ESP32 хорошо подключается каждый раз, даже в точное время сбоя MCU (это не сбой WiFi/маршрутизатора).
- возвращаемся к старому роутеру - 2.4Ghz b/n, и проблема решена (TP-Link все еще работает, но IOT не подключены к нему).
Обновление1:
- Чтобы убедиться, что это не проблема с кодом, я использовал пример
ESP8266Wifi
для подключения к Wi-Fi. - MCU были стерты "Все содержимое флэш-памяти" чтобы убедиться, что это не связано с сохраненными учетными данными Wi-Fi.
Сильнее всего я думаю, что это как-то связано с каналами маршрутизатора. ЧТО ЕЩЕ МОЖНО ПРОВЕРИТЬ?
@Guy . D, 👍0
Обсуждение0
- ESP8266 не подключается к Wi-Fi
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Можно ли отключить WiFi на ESP8266?
- Как отключить или остановить точку доступа в ESP8266?
- ESP8266 — действительно ли у него по умолчанию плохой радиус действия Wi-Fi?
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
- ESP8266 на Wi-Fi без пароля, возможно?
- ESP8266 Аналоговое чтение мешает Wi-Fi?
"Код один и тот же, проверен давно." если вы перекомпилируете код, который был скомпилирован и запущен на устройстве в течение длительного времени, вы все еще подвержены разнице в ядрах arduino между двумя усложнениями. И изменения в библиотеках, используемых в этом отношении., @timemage
Код @timemage не проблема. Я слежу за ним с помощью последовательного монитора, и все, что я вижу, это "..................................... ............», что является началом подключения к Wi-Fi., @Guy . D
@timemage И да, этот класс обрабатывает подключение Wi-Fi ESP32 и ESP8266. И если вы все еще думаете, что это код (а это не так), я также использовал базовый пример ESP8266WiFi и столкнулся с точно такими же проблемами., @Guy . D
Я не знаю, как это понять, учитывая то, что я сказал и что написано в вопросе. Во-первых, я вообще не говорю о классах., @timemage
Вы пробовали базовый пример, чтобы попасть в новую сеть, используя nodeMCU, который никогда не был подключен к старому Wi-Fi? Если это работает, вам может потребоваться очистить кеш подключения на ваших устаревших MCU, особенно если SSID и PW совпадают., @dandavis
Либо полностью стереть прошивку на имеющемся 8266 и потом заново прошить. Ядро Arduino любит сохранять некоторую информацию о Wi-Fi., @romkey
@dandavis Да, я сделал. Вопрос отредактирован и добавлен этот., @Guy . D
Если вы думаете, что это связано с каналами маршрутизатора, какой канал использует маршрутизатор?, @romkey
@timemage Я только пытаюсь сказать (возможно, не очень ясно), что подключение к Wi-Fi, которое также было протестировано на базовом примере, наверняка не является проблемой., @Guy . D
@romkey для начала, я установил НЕ в автоматический режим. После этого я думал, что это решило ее (пробовал каналы 6,9,11), но позже проблема вернулась или не решена для других MCU..., @Guy . D
@romkey Сохраняются ли каналы Wi-Fi во флэш-памяти?, @Guy . D