Почему 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. Может ли кто-нибудь сказать мне, что не так и как решить проблему? Спасибо!!
@Ahmed , 👍1
Обсуждение1 ответ
Попробуйте использовать setConfigPortalTimeout(60) вместо setTimeout(60)
Поскольку он был обновлен в версии 0.10 библиотеки WiFiManager. см.: https://github.com/tzapu/WiFiManager#010
setTimeout
просто вызывает setConfigPortalTimeout
, поэтому нет никакой разницы., @Jaromanda X
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
Да я поправил. Время в секундах. 60 означает 1 минуту., @Ahmed
Вам, вероятно, придется обсудить это с автором библиотеки., @Chris Stratton
он должен использовать последние настройки Wi-Fi, потому что «Использование последних сохраненных значений» означает, что он успешно подключился к точке доступа, хотя удивительно, что «подключено ... yeey :)»` не выводится, @Jaromanda X
добавьте delay(500) после Serial.begin, чтобы увидеть весь вывод с самого начала, @Juraj