connexion-wifi.ino

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

La conexión WiFi del Arduino Nano ESP32 usa la pila completa de ESP-IDF vía WiFi.h: modo estación, hostname DHCP, seguimiento RSSI y reconexión automática. El S3 solo ve la banda de 2,4 GHz: la primera trampa a conocer.

Hardware

Un Arduino Nano ESP32 (ESP32-S3 de doble núcleo, Wi-Fi 2,4 GHz + Bluetooth Low Energy, formato físico compatible con el Nano, USB nativo, pines de 3,3 V únicamente). Nano ESP32, punto de acceso de 2,4 GHz (sin 5 GHz), credenciales actuales.

Cableado

Sin cableado; la antena PCB del módulo basta en interior, evita cajas metálicas.

Funcionamiento

WiFi.begin() es asíncrono: se sondea WiFi.status() con timeout. RSSI da la potencia recibida; el bucle vigila el enlace y relanza la conexión tras una caída.

Ejecución

Instala el paquete Arduino ESP32 Boards (o sigue la guía oficial del Nano ESP32), selecciona Arduino Nano ESP32 y carga. Los pines son de 3,3 V: nunca envíes 5 V a una entrada. El monitor serie usa el USB nativo.

Variantes

Guarda las credenciales en NVS y ofrece un portal cautivo de configuración al primer arranque, o añade WiFi.setSleep(false) para reducir latencia.

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

← Volver a la ficha