connexion-wifi.ino

Arduino Nano ESP32 · Fichier : connexion-wifi.ino · Langage : Arduino · Usage : Se connecter au WiFi (2,4 GHz) avec l'ESP32-S3

La connexion WiFi de l'Arduino Nano ESP32 utilise la pile complète de l'ESP-IDF via WiFi.h : mode station, hostname DHCP, suivi RSSI et reconnexion automatique. Le S3 ne voit que la bande 2,4 GHz — le premier piège à connaître.

Matériel requis

Un Arduino Nano ESP32 (ESP32-S3 double cœur, Wi-Fi 2,4 GHz + Bluetooth Low Energy, brochage physique compatible Nano, USB natif, broches 3,3 V uniquement). Nano ESP32, point d'accès 2,4 GHz (pas de 5 GHz), identifiants à jour.

Câblage

Aucun câblage ; l'antenne PCB du module suffit en intérieur, évitez les boîtiers métalliques.

Fonctionnement

WiFi.begin() est asynchrone : on sonde WiFi.status() avec timeout. RSSI donne la puissance reçue ; le loop surveille la liaison et relance la connexion après coupure.

Exécution

Installez le package Arduino ESP32 Boards (ou le guide Nano ESP32 officiel), sélectionnez Arduino Nano ESP32, téléversez. Les broches sont en 3,3 V : n'envoyez jamais 5 V sur une entrée. Le moniteur série utilise l'USB natif.

Variantes

Stockez les identifiants en NVS et offrez un portail captif d'configuration au premier démarrage, ou ajoutez WiFi.setSleep(false) pour réduire la latence.

connexion-wifi.ino

// Connexion WiFi de l'Arduino Nano ESP32 (coeur esp32, WiFi.h).
#include <WiFi.h>

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

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.setHostname("nano-esp32");
  WiFi.begin(SSID, PASS);
  Serial.print("Connexion");
  unsigned long t = millis();
  while (WiFi.status() != WL_CONNECTED && millis() - t < 20000) {
    delay(400);
    Serial.print(".");
  }
  if (WiFi.status() == WL_CONNECTED) {
    Serial.println();
    Serial.print(F("IP : "));
    Serial.println(WiFi.localIP());
    Serial.print(F("RSSI : "));
    Serial.print(WiFi.RSSI());
    Serial.println(F(" dBm"));
  } else {
    Serial.println(F(" ECHEC — verif SSID/mot de passe (2,4 GHz)"));
  }
}

void loop() {
  // temoin de liaison : reconnecte si le WiFi tombe
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println(F("Liaison perdue, reconnexion..."));
    WiFi.disconnect();
    WiFi.begin(SSID, PASS);
  }
  delay(2000);
}

← Retour à la fiche