scan-wifi.ino
El reflejo inicial con una MKR WiFi 1010: escanear la banda de 2,4 GHz. Este sketch comprueba que el módulo WINC1500 está vivo, verifica la versión del firmware y lista cada red con potencia de señal y tipo de cifrado. Ideal para elegir canal o detectar una SSID invisible.
Hardware
Una Arduino MKR WiFi 1010 (microcontrolador SAMD21, módulo Wi-Fi WINC1500, sin Bluetooth, alimentación USB o LiPo en J6). Una MKR WiFi 1010 y un cable USB; nada más, el módulo WiFi va integrado.
Cableado
Sin cableado: el WINC1500 está conectado internamente al SAMD21 por SPI y la antena va en el módulo.
Funcionamiento
WiFi.scanNetworks() recorre los 14 canales y devuelve el número de redes; SSID/RSSI/encryptionType consultan el resultado. La comprobación del firmware evita fallos de conexión por firmware viejo.
Ejecución
Instala Arduino SAMD Boards y la librería WiFi101, selecciona la placa y carga. El Wi-Fi funciona solo en 2,4 GHz: comprueba que tu punto de acceso no sea solo de 5 GHz.
Variantes
Relanza el escáner cada minuto para seguir una red inestable o filtra por umbral RSSI para mostrar solo redes aprovechables.
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() {}