connexion-wpa2.ino

Arduino MKR WiFi 1010 · Fichier : connexion-wpa2.ino · Langage : Arduino · Usage : Se connecter à un point d'accès WPA2

La connexion de base en WPA2-personal : ce croquis démarre le WINC1500, associe la carte à votre point d'accès et attend l'obtention de l'adresse IP par DHCP. Il affiche aussi canal et RSSI, deux indicateurs précieux quand la connexion est capricieuse.

Matériel requis

Une Arduino MKR WiFi 1010 (microcontrôleur SAMD21, module Wi-Fi WINC1500, pas de Bluetooth, alimentation USB ou LiPo sur J6). MKR WiFi 1010, point d'accès 2,4 GHz (le WINC1500 ne voit pas la 5 GHz), identifiants à jour.

Câblage

Aucun câblage ; rapprochez la carte du routeur pour le premier test avant de tester la portée.

Fonctionnement

WiFi.begin() lance l'association sans bloquer ; la boucle sonde WiFi.status() jusqu'à WL_CONNECTED ou timeout de 20 s. localIP vient du DHCP, getChannel/RSSI décrivent la liaison.

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

Ajoutez WiFi.setPins() uniquement si vous pilotez les broches d'enable/reset vous-même, ou testez le mode WPA2-enterprise (rare en domestique).

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 ?)"));
  }
}

← Retour à la fiche