scan-wifi.ino
Le premier réflexe avec une MKR WiFi 1010 : scanner la bande 2,4 GHz. Ce croquis vérifie la présence du module WINC1500, contrôle la version du firmware, puis liste chaque réseau avec sa puissance de signal et son type de chiffrement. Idéal pour choisir un canal ou repérer une SSID invisible.
Matériel requis
Une Arduino MKR WiFi 1010 (microcontrôleur SAMD21, module Wi-Fi WINC1500, pas de Bluetooth, alimentation USB ou LiPo sur J6). Une MKR WiFi 1010 et un câble USB ; rien d'autre, le module WiFi est embarqué.
Câblage
Aucun câblage : le WINC1500 est connecté en interne au SAMD21 via SPI, l'antenne est sur le module.
Fonctionnement
WiFi.scanNetworks() passe les 14 canaux et renvoie le nombre de réseaux ; SSID/RSSI/encryptionType interrogent le résultat. Le test de firmware évite les échecs de connexion dus à un vieux firmware.
Exécution
Installez Arduino SAMD Boards et la bibliothèque WiFi101, sélectionnez la carte, téléversez. Le Wi-Fi fonctionne en 2,4 GHz uniquement : vérifiez que votre point d'accès n'est pas en 5 GHz seul.
Variantes
Relancez le scan toutes les minutes pour suivre un réseau instable, ou filtrez par seuil RSSI pour n'afficher que les réseaux exploitables.
scan-wifi.ino
// Scan des reseaux WiFi avec le module WINC1500 (bibliotheque WiFi101).
#include <SPI.h>
#include <WiFi101.h>
void setup() {
Serial.begin(9600);
while (!Serial);
// Le WINC1500 est branche en interne : aucun brochage a faire
if (WiFi.status() == WL_NO_MODULE) {
Serial.println(F("Module WiFi absent !"));
while (true);
}
String firmware = WiFi.firmwareVersion();
if (firmware < "19.6.3")
Serial.println(F("Firmware WiFi101 trop ancien, mettez a jour"));
Serial.println(F("Scan en cours..."));
int n = WiFi.scanNetworks();
if (n < 0) { Serial.println(F("scan echoue")); return; }
Serial.print(n);
Serial.println(F(" reseaux trouves :"));
for (int i = 0; i < n; i++) {
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) == ENC_TYPE_NONE
? "ouvert" : "protege");
}
}
void loop() {}