🛠 Scanner les réseaux WiFi et se connecter en station
Objectifs
Utiliser la bibliothèque WiFiNINA pour piloter le module radio u-blox NINA-W102 (un ESP32 reprogrammé par Arduino) : lister les réseaux à proximité avec WiFi.scanNetworks, puis rejoindre un point d'accès WPA2 en mode station et afficher l'IP obtenue. C'est la base de tous les tutos réseau de la série.
Matériel
- 1 × Arduino MKR WiFi 1010
- Un réseau WiFi 2,4 GHz (le NINA ne voit pas le 5 GHz)
- IDE Arduino avec le core SAMD et la bibliothèque WiFiNINA installée
- Firmware du module NINA à jour (voir le tuto « mise à jour firmware NINA »)
Code complet
#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 réseaux 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);
}
Vérification attendue
Le moniteur série affiche la liste des SSID avec leur puissance en dBm, puis l'adresse IP locale (typiquement 192.168.x.x) après quelques points de progression. En coupant le WiFi de la box, le sketch affiche « Reconnexion... » et retablit la liaison au retour.
Erreurs fréquentes
WiFi.beginrenvoie/reste en statut 255 : quasi toujours un firmware NINA pas à jour ou incompatible avec la version de WiFiNINA — mettez le module à jour via le Firmware Updater de l'IDE 2.- Réseau 5 GHz : le NINA-W102 est 2,4 GHz uniquement, le SSID 5 GHz n'apparaîtra jamais dans le scan.
- Caractères accentués ou symboles dans le mot de passe : encodage oblige, testez d'abord avec un mot de passe ASCII.
- IP statique avec
WiFi.configavantWiFi.begin: historiquement ignorée (bug WiFiNINA #5, DHCP gagnait) — vérifiez votre version de librairie avant d'y compter.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
scan-wifi.inoArduinoconnexion-wpa2.inoArduinohttp-get.inoArduinoserveur-web-led.inoArduinohorloge-ntp.inoArduinoudp-diffusion.inoArduino