scan-wifi.ino

Arduino MKR WiFi 1010 · Archivo : scan-wifi.ino · Lenguaje : Arduino · Uso : Lister les réseaux WiFi environnants

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() {}

← Volver a la ficha