🛠 Se connecter au WiFi et lire l'heure NTP (WiFiS3)
Objetivos
Aprovechar el segundo chip de la placa: el ESP32-S3 integrado actúa como módem WiFi (solo 2,4 GHz) y Bluetooth Low Energy, controlado desde el RA4M1 mediante la biblioteca oficial WiFiS3. Se conectará a una red WPA2, obtendrá la hora de un servidor NTP y comprenderá el modelo de «dos cerebros»: el RA4M1 ejecuta su sketch, el ESP32-S3 ejecuta su propia pila WiFi y se comunica con el RA4M1 a través de UART.
Material
- 1 Arduino UNO R4 WiFi + cable USB-C
- Un punto de acceso WiFi de 2,4 GHz (no de 5 GHz: el ESP32-S3 no lo soporta)
- Acceso a Internet saliente (NTP = UDP 123) para la etapa de reloj.
Código completo
#include <WiFiS3.h>
const char* SSID = "votre-reseau";
const char* PASS = "votre-cle";
void setup {
Serial.begin(115200);
while (!Serial && millis < 5000) { } // laisse le temps d'ouvrir le Moniteur
Serial.print(F("Connexion a ")); Serial.println(SSID);
WiFi.setTimeout(20000); // patience : 20 s max
int status = WiFi.begin(SSID, PASS);
if (status != WL_CONNECTED) {
Serial.print(F("Echec, code ")); Serial.println(status);
while (true) { } // en prod : réessayer, pas boucler
}
Serial.print(F("IP = ")); Serial.println(WiFi.localIP);
unsigned long epoch = WiFi.getTime; // requête NTP via l'ESP32-S3
Serial.print(F("Epoch NTP = ")); Serial.println(epoch);
}
void loop {
if (WiFi.status != WL_CONNECTED) {
Serial.println(F("WiFi perdu, reconnexion..."));
WiFi.disconnect;
WiFi.begin(SSID, PASS);
}
delay(1000);
}
Verificación esperada
El Monitor Serie muestra una dirección IP local (192.168.x.x) y luego una marca de tiempo Unix coherente (≈ 1,7–1,8 mil millones en segundos). Desconecte el router WiFi: WiFi.status pasa a estado desconectado y el bucle de reconexión retoma el control.
Errores frecuentes
- Red de 5 GHz: la conexión falla sistemáticamente — el ESP32-S3 es estrictamente de 2,4 GHz.
- Caracteres especiales o acentos en la contraseña introducida en el sketch: las secuencias de escape y la codificación pueden causar problemas; pruebe primero con una clave simple.
- Llamar a
WiFi.beginsin tiempo de espera y luego ejecutar código demasiado rápido: utiliceWiFi.setTimeouty verifique el código de retorno. - Haber reprogramado el ESP32-S3 con un firmware propio: el módem WiFiS3 ya no está presente — es necesario volver a cargar el firmware original (tutorial oficial «custom firmware ESP32-S3», ver tutorial avanzado).
- Confundir los dos chips en los registros: un
statusque nunca cambia suele indicar un problema en el enlace UART RA4M1↔ESP32-S3, no en su red.
Otros tutoriales para esta placa
- Premier Blink sur la UNO R4 WiFi : la première UNO 32 bits
- Apprivoiser la matrice LED 12x8 intégrée
- Toucher capacitif : touchRead sans composant
- Inclinomètre sur la matrice : l'IMU LSM6DSV16X en I²C
- Serveur web embarqué : piloter la matrice depuis le navigateur
- Horloge persistante : RTC à pile + resynchronisation NTP
Ejemplos de código para esta placa
clignotante.inoArduinobouton-poussoir.inoArduinodac-analogique.inoArduinoentree-analogique.inoArduinopwm-respiration.inoArduinoservo-balayage.inoArduino