Vuelva a conectar a Esptop 10 a la red WiFi después de la conexión perdida

Vuelva a conectar a Esptop 10 a la red WiFi después de la conexión perdida
ESP32 es una placa de microcontrolador basada en WiFi. ESP32 viene con un módulo wifi preinstalado que le proporciona capacidades de comunicación inalámbrica. ESP32 se puede operar en tres modos de wifi estación, acceso, o ambos. A veces, ESP32 Wifi se desconecta cuando ESP32 está en modo de estación, por lo que tenemos que ajustarlo o volver a conectarlo. Lea esta guía para aprender a volver a conectar ESP32 a la red WiFi:

Cómo reconectar ESP32 con la red WiFi

Se pueden usar tres funciones diferentes para reconectar WiFi después de una conexión perdida. Los siguientes son las tres formas:

  1. Wifi.Función Reconectar ()
  2. Espíritu.Reanudar()
  3. Eventos Wifi ESP32

1: Vuelva a conectar wifi usando wifi.Función Reconectar ()

Para reconectar ESP32 con WiFi podemos usar la siguiente función que verifica las redes WiFi disponibles. Una vez que se desconecte WiFi, la placa ESP32 intentará conectarse nuevamente con él.

Wifi.reconectar ()

O alternativamente también podemos desconectar primero la red conectada usando Wifi.desconectar() y luego comience nuevamente la conexión wifi usando el comando Wifi.Begin (SSID, contraseña).

2: Vuelva a conectar a la red WiFi después de la conexión perdida usando WiFi.función reiniciar ()

Otra forma de conectar ESP32 con WiFi perdido es reiniciar el ESP32 una vez que se pierde la conexión. Ahora escribiremos un código que verificará el estado de la conexión cada 30 segundos y si la conexión se pierde, reiniciará la conexión e intentará conectarse nuevamente a ESP32 con la red perdida.

Abra Arduino IDE y ejecute el código.

#include /*biblioteca wifi incluida* /
const char* ssid = "ABC"; /*SSID de la red para conectarse*/
const char* contraseña = "contraseña123"; /*Contraseña para SSID*/
Unsigned Long Anteriormillis = 0;
intervalo largo sin firmar = 30000;
vacío initwifi ()
Wifi.modo (wifi_sta);
Wifi.begin (SSID, contraseña);
De serie.imprimir ("conectarse a wifi ...");
Mientras (wifi.estado() != Wl_connected)
De serie.imprimir('.');
retraso (1000);

De serie.println (wifi.localip ());

setup () void
De serie.comenzar (115200);
initwifi ();
De serie.imprimir ("RSSI (Wifi Fuerza):");
De serie.println (wifi.Rssi ());

bucle void ()
unsigned Long CurrentMillis = Millis ();
/*Si la condición para verificar la reconexión wifi*/
if ((wifi.estado() != Wl_connected) && (currentMillis - anteriorMillis> = interval)
De serie.imprimir (Millis ());
De serie.println ("reconectando a wifi ...");
Wifi.desconectar();
Wifi.reconectar ();
Anteriormillis = CurrentMillis;

Aquí en el código anterior primero escriba el SSID y la contraseña para la red que uno quiere conectarse. A continuación, defina el milis y el tiempo total, después de lo cual ESP32 verificará el estado de la conexión. Recuerde definir los milis anteriores al comenzar porque cada tiempo se ejecuta ESP32 tomará milis como referencia para el tiempo para calcular los intervalos de tiempo de 30 segundos.

El código verificará la red disponible si la red está disponible y las credenciales correctas se escriben dentro del código ESP32 se conectará automáticamente a ella.

Salida en el monitor de serie

La siguiente salida aparecerá en el monitor en serie. Aquí podemos ver que la dirección IP y la fuerza de la red WiFi ESP32 están conectadas a.

Nota: RSSI mide en DBM y su valor es negativo.

3: Cómo volver a conectar ESP32 WiFi usando eventos wifi

ESP32 debido a su biblioteca WiFi tiene múltiples eventos WiFi que son bendiciones disfrazadas. ESP32 tiene algunos eventos específicos que se ejecutan automáticamente si ocurre un determinado evento, después de eso llamará automáticamente una determinada función.

Las siguientes son algunas funciones importantes que ayudan a ESP32 O a restablecer automáticamente la conexión perdida:

  • Arduino_event_wifi_sta_connected: ESP32 en el modo de estación conectado con el enrutador
  • Arduino_event_wifi_sta_disconnected: ESP32 se desconecta del enrutador

Código para eventos wifi

A continuación se muestra el código para tres eventos diferentes de conexión WiFi en ESP32. Abra Arduino IDE, compile y cargue el código dado.

#include /*biblioteca wifi incluida* /
const char* ssid = "ABC"; /*SSID de la red para conectarse*/
const char* contraseña = "contraseña123"; /*Contraseña para SSID*/
void wifi_connected (evento wifievent_t, wifieventinfo_t info)
De serie.println ("ESP32 WiFi conectado al punto de acceso");

void get_ipaddress (evento wifievent_t, wifieventinfo_t info)
De serie.println ("wifi conectado!");
De serie.println ("dirección IP de wifi conectado:");
De serie.println (wifi.localip ());

void wifi_disconnected (evento wifievent_t, wifieventinfo_t info)
De serie.println ("desconectado de wifi");
De serie.imprimir ("Conexión perdida Razón:");
De serie.println (información.desconectado.razón);
De serie.println ("reconectando ...");
Wifi.begin (SSID, contraseña);

setup () void
De serie.comenzar (115200);
Wifi.desconectar (verdadero);
retraso (1000);
Wifi.OneVent (wifi_connected, system_event_sta_connected);
Wifi.OneVent (get_ipaddress, system_event_sta_got_ip);
Wifi.OneVent (wifi_disconnected, system_event_sta_disconnected);
Wifi.begin (SSID, contraseña);
De serie.println ("Esperando la red WiFi ...");

bucle void ()
retraso (1000);

En el código anterior se definen tres eventos diferentes:

  • System_event_sta_connected: Cuando ESP32 conectado a Wifi
  • System_event_sta_got_ip: Cuando ESP32 obtiene la dirección IP de la red conectada
  • System_event_sta_disconnected: Cuando ESP32 se desconectó de una red

Cuando ESP32 se conecta a una red WifistationConnected () se llamará a la función. Simplemente imprimirá que ESP32 está conectado a una red correctamente. Sin embargo, también podemos modificarlo para encender un LED o algo más cuando ESP32 se conecta a una red.

En segundo lugar, cuando ESP32 obtiene la dirección IP de una red Wifigotip () la función se ejecutará. Esta función como la anterior imprimirá la dirección IP.

Y el último evento que describimos es cuando ejecutará la función WifistationDisconnected (), Esta función imprimirá el mensaje de que WiFi está desconectado e intenta volver a conectar ESP32 con la red WiFi.

Salida en el monitor de serie

La siguiente salida aparecerá en el monitor en serie: muestra la dirección IP y un mensaje de que WiFi está conectado. Del mismo modo, si el wifi está desconectado, verificará automáticamente la conexión WiFi cada 30 segundos e intentará reconectar ESP32 con la red.

Hemos resuelto con éxito el problema de la conexión perdida de Wifi ESP32 utilizando tres métodos diferentes.

Conclusión

ESP32 Wifi a veces se desconecta, por lo que para reconectar tres métodos diferentes se pueden usar. Primero es simplemente descargar la conexión usando Wifi.Begin (SSID, contraseña) dominio. El segundo método incluye una verificación constante de la conexión a Internet ESP32 y se vuelve a conectar automáticamente una vez que se pierde su conexión. El último método que cubrimos ejecutaría ciertas funciones cuando ocurra un evento WiFi específico, como conectar o desconectar.