Escaneo de redes Wi-Fi con ESP32

El ESP32 es un microcontrolador extremadamente versátil y potente, capaz de realizar funciones que van más allá de la simple conectividad. Una de sus características más destacadas es su habilidad para escanear redes Wi-Fi cercanas, lo que abre un abanico de posibilidades para diversas aplicaciones. Desde optimizar la conexión a Internet de un dispositivo hasta implementar sistemas de posicionamiento en interiores, entender cómo usar esta funcionalidad puede ser fundamental para tus proyectos. A continuación, exploraremos cómo programar el ESP32 para detectar redes Wi-Fi y obtener información clave sobre ellas.

Índice de contenido
  1. Configuración del entorno de desarrollo con Arduino IDE
  2. Conectando el ESP32 a tu computadora
  3. Seleccionando la placa y el puerto correctos en el IDE
  4. Carga del código en el ESP32
  5. Verificando los resultados en el Monitor Serial
  6. Interpretando los resultados del escaneo de redes Wi-Fi
  7. Aplicaciones prácticas del escaneo de redes Wi-Fi

Configuración del entorno de desarrollo con Arduino IDE

Antes de empezar a trabajar con el ESP32, es esencial configurar correctamente el entorno de desarrollo. El Arduino IDE es la plataforma más popular para programar dispositivos Arduino y sus variantes, como el ESP32. Para asegurarte de que todo funcione sin problemas, sigue estos pasos:

  • Descarga e instala el Arduino IDE desde el sitio web oficial.
  • Agrega el soporte para el ESP32 en el IDE, lo cual implica añadir la URL del gestor de placas en la configuración de preferencias.
  • Instala la biblioteca específica del ESP32 desde el gestor de placas.

Una vez que hayas completado estos pasos, estarás listo para comenzar a programar.

Conectando el ESP32 a tu computadora

El siguiente paso es conectar tu placa ESP32 a tu computadora. Para ello, necesitarás un cable USB, que generalmente viene incluido con la placa. Asegúrate de que la conexión sea segura y de que el dispositivo sea reconocido por tu sistema operativo. Esto puede implicar la instalación de drivers adicionales si tu computadora no detecta automáticamente el ESP32.

Una vez conectado, verifica que el dispositivo esté listo para ser programado. Puedes hacerlo revisando en el Administrador de Dispositivos en Windows o utilizando el terminal en Linux o macOS.

Seleccionando la placa y el puerto correctos en el IDE

Con tu ESP32 conectado, abre el Arduino IDE y selecciona la placa adecuada. Haz clic en el menú superior donde dice “Herramientas” y luego en “Placa”. Busca tu modelo de ESP32, que en este caso será el DOIT ESP32 DEVKIT V1. Si no estás seguro de cuál es, elige ESP32 Dev Module como una opción segura.

Después de seleccionar la placa, también deberás elegir el puerto correspondiente al ESP32. Este se mostrará como “/dev/ttyUSB0” para Linux o macOS, o “COM6” para Windows.

Carga del código en el ESP32

Ahora que has configurado el entorno y seleccionado la placa y el puerto, es momento de cargar el código que te permitirá escanear redes Wi-Fi. Aquí tienes un ejemplo de código que puedes utilizar:

#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  
  // Inicializa el Wi-Fi y comienza el escaneo
  WiFi.mode(WIFI_STA);  // Establece el modo Wi-Fi a Estación
  WiFi.disconnect();    // Desconéctate de cualquier conexión anterior
  delay(100);

  Serial.println("Escaneando redes Wi-Fi...");
  int n = WiFi.scanNetworks();  // Inicia el escaneo de redes

  if (n == 0) {
    Serial.println("No se encontraron redes.");
  } else {
    Serial.print(n);
    Serial.println(" redes encontradas:");
    for (int i = 0; i < n; ++i) {
      // Imprime el SSID y la fuerza de señal de cada red
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(" dBm)");
      Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " [Abierta]" : " [Segura]");
      delay(10);  // Pequeña pausa para una salida serial estable
    }
  }
}

void loop() {
  // No hay nada que hacer en el loop
  delay(1000);
}

Este código inicializa el módulo Wi-Fi del ESP32 y comienza a escanear las redes a su alrededor. Luego, imprime el nombre de cada red (SSID), la intensidad de la señal (RSSI) y si la red está protegida o no.

Verificando los resultados en el Monitor Serial

Después de cargar el código, abre el Monitor Serial en el IDE y asegúrate de que la velocidad de comunicación esté configurada a 115200 baudios. Para iniciar el escaneo, presiona el botón de reset (EN) en tu ESP32. En este punto, deberías ver la lista de todas las redes Wi-Fi que el ESP32 puede detectar, acompañada de detalles como la fuerza de señal y el estado de seguridad de cada red.

Si en algún momento no ves resultados adecuados, asegúrate de que el ESP32 esté correctamente conectado y que no haya interferencias de otros dispositivos.

Interpretando los resultados del escaneo de redes Wi-Fi

Cuando el escaneo esté completo, el Monitor Serial mostrará una lista como la siguiente:

NúmeroSSIDRSSI (dBm)Tipo de seguridad
1MiRedWifi-70Segura
2OtraRed-85Abierta

En esta tabla, cada fila representa una red Wi-Fi encontrada. El RSSI indica la calidad de la señal, donde un valor más cercano a 0 significa una señal más fuerte. La columna de tipo de seguridad muestra si la red es abierta o requiere contraseña.

Aplicaciones prácticas del escaneo de redes Wi-Fi

La capacidad de escanear redes Wi-Fi tiene diversas aplicaciones prácticas, que incluyen:

  • Conexión automática: Permite que el ESP32 se conecte automáticamente a la red más fuerte disponible.
  • Localización en interiores: Ayuda a estimar la ubicación del dispositivo dentro de un edificio utilizando la intensidad de la señal de diferentes redes.
  • Monitoreo de redes: Puedes desarrollar aplicaciones que monitoreen la disponibilidad y calidad de las redes Wi-Fi en un área específica.

Con estos conocimientos, puedes maximizar el uso del ESP32 en tus proyectos y permitir que opere eficientemente en entornos conectados.

Carlos Julián

Carlos Julián es el fundador de Ingtelecto, es Ingeniero Mecatrónico, Profesor y Programador, cuenta con una Maestria en Ciencias de la Educación, creador de contenido activo a través de TikTok @carlosjulian_mx

Estos temas te pueden interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tu puntuación: Útil

Subir