🛠 Scanner les réseaux WiFi environnants
Objectifs
Utiliser le contrôleur WiFi 2,4 GHz de l'ESP32-S2 pour détecter les réseaux à proximité : initialiser la pile WiFi en mode station, lancer un scan passif et afficher SSID, RSSI, canal et type de sécurité sur la console série. Rappel important : la puce S2 (Xtensa LX7 mono-cœur 240 MHz) ne possède aucun Bluetooth, seule la bande 2,4 GHz 802.11 b/g/n est disponible.
Matériel
- Carte ESP32-S2 (DevKitM-1 ou équivalent)
- Câble USB et ordinateur avec moniteur série
- Environnement Arduino IDE avec le support esp32 installé
Code complet
// 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 réseaux WiFi 2,4 GHz...");
int n = WiFi.scanNetworks; // scan passif, bloque pendant ~2 s
if (n == 0) {
Serial.println("Aucun réseau trouve.");
} else {
Serial.printf("%u réseau(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 {}
Vérification attendue
Au démarrage, la console série à 115200 bauds liste une fois les réseaux visibles : nom (SSID), puissance du signal (RSSI en dBm), canal et sécurité. Approchez la carte de la box : le RSSI du réseau correspondant remonte vers -30/-50 dBm. En déplaçant la carte, la liste change.
Erreurs fréquentes
- Oublier
WiFi.mode(WIFI_MODE_STA): sans mode station actif, le scan renvoie 0 réseau. - Relancer le scan dans
loopsans appelerWiFi.scanDelete: la RAM disponible s'effondre rapidement. - Chercher un réseau 5 GHz : la radio du S2 ne gère que le 2,4 GHz.
- Attendre du Bluetooth : l'ESP32-S2 n'embarpe aucun Bluetooth, contrairement à l'ESP32 classique ; tout scan BLE est impossible.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduino