connexion-wpa2.ino

Arduino MKR WiFi 1010 · Archivo : connexion-wpa2.ino · Lenguaje : Arduino · Uso : Se connecter à un point d'accès WPA2

La conexión básica en WPA2-personal: este sketch arranca el WINC1500, asocia la placa a tu punto de acceso y espera la IP por DHCP. También imprime canal y RSSI, dos indicadores valiosos cuando el enlace es caprichoso.

Hardware

Una Arduino MKR WiFi 1010 (microcontrolador SAMD21, módulo Wi-Fi WINC1500, sin Bluetooth, alimentación USB o LiPo en J6). MKR WiFi 1010, punto de acceso de 2,4 GHz (el WINC1500 no ve 5 GHz) y credenciales actualizadas.

Cableado

Sin cableado; acerca la placa al router para la primera prueba antes de comprobar el alcance.

Funcionamiento

WiFi.begin() lanza la asociación sin bloquear; el bucle sondea WiFi.status() hasta WL_CONNECTED o 20 s de espera. localIP viene del DHCP, getChannel/RSSI describen el enlace.

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

Añade WiFi.setPins() solo si controlas tú los pines enable/reset, o prueba el modo WPA2-enterprise (raro en doméstico).

connexion-wpa2.ino

// Connexion WPA2 classique avec la MKR WiFi 1010 (WiFi101).
#include <SPI.h>
#include <WiFi101.h>

const char SSID[] = "MonReseau";
const char PASS[] = "motdepassewifi";

void setup() {
  Serial.begin(9600);
  while (!Serial);
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println(F("Module WiFi absent"));
    while (true);
  }
  Serial.print("Connexion a " + String(SSID) + " ...");
  int statut = WiFi.begin(WPA_PASS_PHRASE, SSID, PASS);
  // begin() est non bloquant : on attend l'etat CONNECTED
  unsigned long debut = millis();
  while (statut != WL_CONNECTED && millis() - debut < 20000) {
    delay(100);
    statut = WiFi.status();
  }
  if (statut == WL_CONNECTED) {
    Serial.println(F(" connecte !"));
    Serial.print(F("IP : "));
    Serial.println(WiFi.localIP());
    Serial.print(F("Canal : "));
    Serial.println(WiFi.getChannel());
    Serial.print(F("RSSI : "));
    Serial.print(WiFi.RSSI());
    Serial.println(F(" dBm"));
  } else {
    Serial.println(F("ECHEC (SSID/mot de passe ?)"));
  }
}

← Volver a la ficha