Почему wifiManager.setTimeout(60) не работает?

в этом коде я использую wifiManager.setTimeout(60); так что, когда он не может подключиться к Wi-Fi, он должен перезапуститься. Однако wifiManager.setTimeout(60) вообще не работает. Он застревает и отображает эти строки:

*WM: автоподключение

*WM: подключение в качестве клиента Wi-Fi...

*WM: использование последних сохраненных значений должно быть быстрее

Это никогда не отображается:

"не удалось подключиться и истекло время ожидания"

что означает, что wifiManager.setTimeout(60) не работает. Ниже приведен код:

  #include <ESP8266WiFi.h>          

 // нужно для библиотеки
 #include <DNSServer.h>
 #include <ESP8266WebServer.h>
 #include <WiFiManager.h>          



  void setup() {
       // поместите сюда код установки для однократного запуска:
       Serial.begin(115200);

      //Менеджер Wi-Fi
       //Локальная инициализация. Когда дело сделано, нет необходимости
       // держи это рядом
        WiFiManager wifiManager;
      //сброс настроек - для проверки
      //wifiManager.resetSettings();

     //устанавливает тайм-аут до отключения портала конфигурации
     //полезно, чтобы сделать все повторные попытки или перейти в спящий режим
      //в секундах

      wifiManager.setTimeout(60);


  // получает ssid и пароль и пытается подключиться
  //если не подключается запускает точку доступа с указанным именем
 //здесь "AutoConnectAP"
 //и входит в цикл блокировки в ожидании конфигурации

  if(!wifiManager.autoConnect("AutoConnectAP")) {
     Serial.println("failed to connect and hit timeout");
     delay(3000);
     //сбросить и попробовать еще раз, или, может быть, перевести его в глубокий сон
     //ESP.reset();
     ESP.restart();
     //ESP.deepSleep(20e6, WAKE_RFCAL);
    delay(5000);
   } 

   // если вы доберетесь сюда, значит, вы подключились к Wi-Fi
   Serial.println("connected...yeey :)");

    ESP.deepSleep(20e6, WAKE_RFCAL);
    delay(3000);

 }

  void loop() {
  // поместите сюда ваш основной код для многократного запуска:

  }

Я использую плату разработки ESP8266. Может ли кто-нибудь сказать мне, что не так и как решить проблему? Спасибо!!

, 👍1

Обсуждение

Да я поправил. Время в секундах. 60 означает 1 минуту., @Ahmed

Вам, вероятно, придется обсудить это с автором библиотеки., @Chris Stratton

он должен использовать последние настройки Wi-Fi, потому что «Использование последних сохраненных значений» означает, что он успешно подключился к точке доступа, хотя удивительно, что «подключено ... yeey :)»` не выводится, @Jaromanda X

добавьте delay(500) после Serial.begin, чтобы увидеть весь вывод с самого начала, @Juraj


1 ответ


-1

Попробуйте использовать setConfigPortalTimeout(60) вместо setTimeout(60)

Поскольку он был обновлен в версии 0.10 библиотеки WiFiManager. см.: https://github.com/tzapu/WiFiManager#010

,

setTimeout просто вызывает setConfigPortalTimeout, поэтому нет никакой разницы., @Jaromanda X