🛠 Scanner les réseaux WiFi environnants
Objetivos
Utilizar el controlador WiFi de 2,4 GHz del ESP32-S2 para detectar las redes cercanas: inicializar la pila WiFi en modo estación, lanzar un escaneo pasivo y mostrar el SSID, RSSI, canal y tipo de seguridad en la consola serie. Recordatorio importante: el chip S2 (Xtensa LX7 mono-núcleo 240 MHz) no posee ningún Bluetooth, solo está disponible la banda de 2,4 GHz 802.11 b/g/n.
Material
- Tarjeta ESP32-S2 (DevKitM-1 o equivalente)
- Cable USB y ordenador con monitor serie
- Entorno Arduino IDE con el soporte esp32 instalado
Código completo
// Scan des réseaux WiFi sur ESP32-S2
#include <WiFi.h>
void setup {
Serial.begin(115200);
delay(1000);
WiFi.mode(WIFI_MODE_STA); // le scan exige le mode station
Serial.println("Scan des reseaux WiFi 2,4 GHz...");
int n = WiFi.scanNetworks; // scan passif, bloque pendant ~2 s
if (n == 0) {
Serial.println("Aucun reseau trouve.");
} else {
Serial.printf("%u reseau(x) trouve(s) :\n", n);
for (int i = 0; i < n; i++) {
Serial.printf("%2d | %-24s | RSSI %4d dBm | canal %2d | %s\n",
i + 1, WiFi.SSID(i).c_str, WiFi.RSSI(i), WiFi.channel(i),
WiFi.encryptionType(i) == WIFI_AUTH_OPEN ? "ouvert" : "protege");
}
}
WiFi.scanDelete; // libère la RAM du résultat
}
void loop {}
Verificación esperada
Al iniciar, la consola serie a 115200 baudios lista una vez las redes visibles: nombre (SSID), potencia de la señal (RSSI en dBm), canal y seguridad. Acerque la tarjeta al router: el RSSI de la red correspondiente sube hacia -30/-50 dBm. Al mover la tarjeta, la lista cambia.
Errores frecuentes
- Olvidar
WiFi.mode(WIFI_MODE_STA): sin el modo estación activo, el escaneo devuelve 0 redes. - Relanzar el escaneo en
loopsin llamar aWiFi.scanDelete: la RAM disponible se agota rápidamente. - Buscar una red de 5 GHz: la radio del S2 solo gestiona los 2,4 GHz.
- Esperar Bluetooth: el ESP32-S2 no incorpora ningún Bluetooth, a diferencia del ESP32 clásico; cualquier escaneo BLE es imposible.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduino