connexion-wifi.ino
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);
}