Modos Wifi ESP32
ESP32 WiFi se puede usar en tres Modos diferentes. Se pueden llamar a los siguientes modos utilizando el Wifi.modo() función definiendo el modo deseado dentro del argumento de esta función.
Modo wifi | Función |
Estación | Wifi.modo (wifi_sta) |
Punto de acceso | Wifi.modo (wifi_ap) |
Estación + punto de acceso | Wifi.modo (wifi_sta_ap) |
Estación WiFi
El uso de ESP32 como estación wifi le permite usarla como un enrutador wifi en casa. Cuando ESP32 está conectado a una red utilizando un enrutador wifi, el enrutador asigna una dirección IP única a la placa ESP32. Para intercambiar información con otro hardware conectado al mismo enrutador, tenemos que llamar a su dirección IP única en el código ESP32.
Una vez que el enrutador está conectado a la placa ESP32, tiene la misma conexión a Internet que otros dispositivos. Usando Internet, podemos cargar datos al servidor o controlar otros dispositivos conectados al mismo enrutador WiFi. También podemos leer datos de API como datos meteorológicos y también podemos publicar imágenes o iconos de datos en servidores web.
Conecte ESP32 como estación wifi
Para conectar la placa ESP32 como una estación Wi-Fi, lo primero que tenemos que hacer es establecer el modo wifi usando el comando mencionado:
Wifi.modo (wifi_sta)
Si ESP32 está conectado a cualquier otra red para que la red esté en modo de estación para usarla con ESP32.
Siguiente usando Wifi.comenzar() función y al pasar el SSID y la contraseña de la red como argumento podemos conectarnos a cualquier red. La siguiente es la sintaxis para la placa ESP32 para conectarse a una red Wi-Fi en modo de estación:
Wifi.Begin (contraseña SSID)
Cuando se establece la conexión, aparecerá la siguiente salida:
Mientras (wifi.estado() != Wl_connected)
Punto de acceso
Cuando ESP32 está en modo de punto de acceso, cualquier dispositivo que tenga wifi se puede conectar a él como un enrutador convencional. También puede proporcionar dispositivos con conexión a Internet, y podemos construir nuestra propia red Wi-Fi a su alrededor. En el modo de punto de acceso podemos controlar los dispositivos independientemente de tener un enrutador Wi-Fi separado.
El punto de acceso ESP32 no es como el enrutador Wi-Fi normal porque su única opción de conectividad es inalámbrica. ESP32 no admite la conexión de cable para Internet como un enrutador normal, por lo que se llama AP suave (Punto de acceso suave).
Conecte ESP32 como punto de acceso
Primero defina el modo wifi como punto de acceso usando el comando dado:
Wifi.modo (wifi_ap)
Luego usando el Softap () La función le da a un SSID un nombre a su red y contraseña ESP32 que otros dispositivos necesitaban conectarse a ESP32. Ambos se pasan como argumentos a la función SoftAP (). En caso de que si no se necesita contraseña, configela en Nill.
Wifi.Softap (SSID, contraseña);
Hay algunos parámetros opcionales que también podemos pasar al Softap () función.
Wifi.SoftAP (const char* ssid, const char* contraseña, canal int, int ssid_hidden, int max_connection)
Estación + punto de acceso
Para establecer ESP32 como la estación Wi-Fi y el punto de acceso siga el comando dado a continuación:
Wifi.modo (wifi_ap_sta)
Escanear una red WiFi
Para escanear para las conexiones Wi-Fi cercanas, utilizaremos un ejemplo de escaneo Wi-Fi ESP32 para asegurarnos de que la placa ESP32 esté instalada en Arduino IDE. Para leer sobre la instalación de ESP32 en Arduino IDE, haga clic aquí.
Ir a: Archivos> ejemplos> wifi> escaneo wifi:
El siguiente código se abrirá en una nueva ventana. Seleccione el puerto COM de ESP32 y cargue el código:
#include "wifi.H "
Configuración vacía ()
De serie.comenzar (115200);
// Establecer Wifi ESP32 en modo de estación
Wifi.modo (wifi_sta);
Wifi.desconectar();
retraso (100);
De serie.println ("Configuración hecho");
bucle vacío ()
De serie.println ("escanear inicio");
// Wifi.ScannetWorks dará redes wifi encontradas totalmente encontradas
int n = wifi.ScannetWorks ();
De serie.println ("escaneo hecho");
if (n == 0)
De serie.println ("No se encontraron redes");
demás
De serie.imprimir (n);
De serie.println ("redes encontradas");
para (int i = 0; i < n; ++i)
// Imprimir el nombre SSID y la intensidad de la señal
De serie.imprimir (i + 1);
De serie.imprimir(": ");
De serie.Imprimir (wifi.Ssid (i));
De serie.imprimir(" (");
De serie.Imprimir (wifi.Rssi (i));
De serie.imprimir(")");
De serie.println ((wifi.CiCrytionType (i) == wifi_auth_open)?"": "*");
retraso (10);
De serie.println ("");
// retraso por 5 segundos
retraso (5000);
Aquí en el código anterior Wifi.ScannetWorks () devolverá la red total disponible dentro del rango de tableros ESP32.
Una vez que se escanean todas las redes, podemos acceder a su SSID utilizando el siguiente comando:
De serie.Imprimir (wifi.Ssid (i));
El Wifi.Rssi () La función nos dará el RSSI (indicador de intensidad de señal recibido) de una red. Es un nivel de potencia estimado o intensidad de la señal que recibe un ESP32 desde un punto de acceso.
Producción
La siguiente salida se imprime en el monitor en serie que nos muestra todas las redes disponibles que escaneó la placa ESP32:
Conectarse a una red Wi-Fi
Para conectar ESP32 con una red Wi-Fi debemos conocer el SSID y su contraseña. Además, la red que debe conectarse debe entrar dentro del rango de ESP32. Para ver si un cierto Wi-Fi se encuentra bajo el rango ESP32 o no ejecuta el escaneo de ejemplo dado anteriormente.
Cargue el código a continuación para conectar la placa ESP32 a la red Wi-Fi:
#incluir
const char* ssid = "su nombre SSID";
const char* Password = "SSID Password";
setup () void
De serie.comenzar (115200);
retraso (1000);
Wifi.modo (wifi_sta);
Wifi.begin (SSID, contraseña);
De serie.println ("\ nconnecting");
Mientras (wifi.estado() != Wl_connected)
De serie.imprimir(".");
retraso (100);
De serie.println ("\ nconnected to the wifi red");
De serie.imprimir ("IP 32 local ESP32:");
De serie.println (wifi.localip ());
bucle void ()
El código comienza por incluir el Wifi.H biblioteca. Luego ingresamos el SSID y la contraseña de la red a los que queremos conectarnos. El siguiente ESP32 se coloca en el modo de estación, que es opcional, uno puede ignorar porque ESP32 de forma predeterminada viene en modo de estación.
A continuación usando el Wifi.begin (SSID, contraseña); La función ESP32 buscará la red definida e intentará conectarse. Una vez que el ESP32 esté conectado, la dirección IP de la red se mostrará en el monitor en serie:
Obtener información de red Wi-Fi
Para verificar los detalles de la red Wi-Fi a la que se conectará la placa ESP32 el siguiente código:
#incluir
const char* ssid = "su nombre SSID";
const char* Password = "SSID Password";
void get_network_info ()
if (wifi.status () == wl_connected)
De serie.imprimir ("ESP32 conectado a");
De serie.println (SSID);
De serie.println ("bssid:" + wifi.Bssidstr ());
De serie.imprimir ("Gateway IP:");
De serie.println (wifi.IP de acceso());
De serie.imprimir ("Máscara de subred:");
De serie.println (wifi.máscara de subred());
De serie.println ((string) "rssi:" + wifi.Rssi () + "db");
De serie.imprimir ("ESP32 IP:");
De serie.println (wifi.localip ());
setup () void
De serie.comenzar (115200);
retraso (1000);
Wifi.begin (SSID, contraseña);
De serie.println ("\ nconnecting");
Mientras (wifi.estado() != Wl_connected)
De serie.imprimir(".");
retraso (100);
De serie.println ("\ nconnected to the wifi red");
get_network_info ();
bucle void ()
La salida nos dará la siguiente información relacionada con la red Wi-Fi conectada ESP32:
Todos estos resultados se pueden ver en el monitor en serie:
Conclusión
ESP32 es una placa de microcontrolador que viene con Wi-Fi y soporte dual Bluetooth. Este artículo destaca las funciones principales utilizadas para controlar Wi-Fi de ESP32. La placa ESP32 puede funcionar en tres modos de Wi-Fi y puede conectarse con cualquier red mientras conoce el SSID y la contraseña de la red. Este artículo ayudará a controlar el Wi-Fi ESP32 usando Arduino IDE.