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 и имеет собственный последовательный монитор), и всегда, мгновенное подключение.

Статья Я нашел статью, в которой предлагалось сделать несколько вещей:

  1. установите для Wi-Fi значение b/n и отключите все протоколы 5.0/ax.
  2. установите лепесток на 20 МГц и выберите (не автоматически) канал.

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

Подведение итогов

  1. Старый маршрутизатор 2,4 ГГц, хорошо подключается ESP8266 & ESP32.
  2. Код тот же, и проверен в течение длительного времени.
  3. пробовал несколько NodeMCU, но проблема та же. ESP32 хорошо подключается каждый раз, даже в точное время сбоя MCU (это не сбой WiFi/маршрутизатора).
  4. возвращаемся к старому роутеру - 2.4Ghz b/n, и проблема решена (TP-Link все еще работает, но IOT не подключены к нему).

Обновление1:

  1. Чтобы убедиться, что это не проблема с кодом, я использовал пример ESP8266Wifi для подключения к Wi-Fi.
  2. MCU были стерты "Все содержимое флэш-памяти" чтобы убедиться, что это не связано с сохраненными учетными данными Wi-Fi.

Сильнее всего я думаю, что это как-то связано с каналами маршрутизатора. ЧТО ЕЩЕ МОЖНО ПРОВЕРИТЬ?

, 👍0

Обсуждение

"Код один и тот же, проверен давно." если вы перекомпилируете код, который был скомпилирован и запущен на устройстве в течение длительного времени, вы все еще подвержены разнице в ядрах 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