WifiManager bloquea el arranque

Hola.
Estoy aprendiendo a programar mi esp32 en Arduino IDE.
Me tope con la libreria WiFiManager.h que es una maravilla.

WiFi.mode(WIFI_STA);
WiFiManager wm;
bool res;
res = wm.autoConnect("CTHEE","12345678");

Necesito que al arrancar se conecte a Wifi. Si no tiene las credenciales que las pida. Hasta acá todo perfecto y me funciona bien.
Yo necesito, aparte, que en 10 minutos deje de esperar que le cargue las credenciales si no las tiene y continué con la ejecución del programa.

Aclarando, necesito que continué (despues de 10 min) si o si independientemente de si tiene o no wifi.

Si no hay nadie que le cargue nombre de red y pass en esos 10 minutos que salga del setup y pase al loop

Desde ya muchas gracias

Prueba algo como esto (escrito de memoria).

setConfigPortalTimeout(600); (10 minutos)
y
wm.setConfigPortalTimeoutCallback(callbackPortalTimeout);

En el callback puedes usar algo como esto:

void callbackPortalTimeout() {
  wmIsRunning = false;
  WiFi.mode(WIFI_OFF);
}

En la función loop(), podrías implementar algo como esto:

bool wmIsRunning = false;

...

void setup() {
  ...

  WiFi.mode(WIFI_STA);
  wm.setDebugOutput(false);
  wm.setConfigPortalBlocking(false);
  wm.setSaveParamsCallback(xxx); // <<==== to do
  wm.setConfigPortalTimeoutCallback(callbackPortalTimeout);
  wm.setConfigPortalTimeout(600); // (10 minutos)
  wm.startConfigPortal(wifiSSID);
  wmIsRunning = true;

  ...
}

void loop() {
  if (wmIsRunning) {
    wm.process(); // Gestiona el portal mientras esté activo
  }

  // Continúa con el resto del programa
  ...
}

¡Feliz Nochebuena!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.