🛠 Scanner les réseaux WiFi et se connecter en station
Objetivos
Utilizar la biblioteca WiFiNINA para controlar el módulo de radio u-blox NINA-W102 (un ESP32 reprogramado por Arduino): listar las redes cercanas con WiFi.scanNetworks, y luego unirse a un punto de acceso WPA2 en modo estación y mostrar la IP obtenida. Esta es la base de todos los tutoriales de red de la serie.
Material
- 1 × Arduino MKR WiFi 1010
- Una red WiFi 2,4 GHz (el NINA no detecta la banda de 5 GHz)
- IDE de Arduino con el core SAMD y la biblioteca WiFiNINA instalados
- Firmware del módulo NINA actualizado (consulte el tutorial «actualización del firmware NINA»)
Código completo
#include <WiFiNINA.h>
const char* SSID = "votre-ssid";
const char* PASS = "votre-mot-de-passe";
void setup {
Serial.begin(115200);
while (!Serial && millis < 3000);
int n = WiFi.scanNetworks;
Serial.printf("%d reseaux trouves\n", n);
for (int i = 0; i < n; i++)
Serial.printf("%s (%d dBm)\n", WiFi.SSID(i).c_str, WiFi.RSSI(i));
Serial.print("Connexion...");
WiFi.begin(SSID, PASS);
while (WiFi.status != WL_CONNECTED) { delay(500); Serial.print("."); }
Serial.printf("\nConnecte ! IP: %s\n",
WiFi.localIP.toString.c_str);
}
void loop {
if (WiFi.status != WL_CONNECTED) {
Serial.println("Reconnexion...");
WiFi.reconnect;
}
delay(2000);
}
Verificación esperada
El monitor serie muestra la lista de SSID con su potencia en dBm, y luego la dirección IP local (típicamente 192.168.x.x) después de algunos puntos de progreso. Al cortar la conexión WiFi del router, el sketch muestra «Reconectando...» y restablece la conexión cuando vuelve la señal.
Errores frecuentes
WiFi.begindevuelve o permanece en el estado 255: casi siempre se debe a un firmware NINA no actualizado o incompatible con la versión de WiFiNINA — actualice el módulo mediante el Firmware Updater del IDE 2.- Red de 5 GHz: el NINA-W102 es únicamente de 2,4 GHz, por lo que el SSID de 5 GHz nunca aparecerá en el escaneo.
- Caracteres acentuados o símbolos en la contraseña: debido a la codificación, pruebe primero con una contraseña ASCII.
- IP estática con
WiFi.configantes deWiFi.begin: históricamente ignorada (bug WiFiNINA #5, el DHCP ganaba) — verifique su versión de la biblioteca antes de confiar en ello.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
scan-wifi.inoArduinoconnexion-wpa2.inoArduinohttp-get.inoArduinoserveur-web-led.inoArduinohorloge-ntp.inoArduinoudp-diffusion.inoArduino