🛠 Se connecter au WiFi et lire l'heure NTP (WiFiS3)
Objectifs
Exploiter la seconde puce de la carte : l'ESP32-S3 embarqué sert de modem WiFi (2,4 GHz uniquement) et Bluetooth Low Energy, piloté depuis le RA4M1 via la bibliothèque officielle WiFiS3. Vous allez vous connecter à un réseau WPA2, récupérer l'heure à un serveur NTP et comprendre le modèle « deux cerveaux » : le RA4M1 exécute votre croquis, l'ESP32-S3 exécute sa propre pile WiFi et communique avec le RA4M1 par UART.
Matériel
- 1 Arduino UNO R4 WiFi + câble USB-C
- Un point d'accès WiFi 2,4 GHz (pas de 5 GHz : l'ESP32-S3 ne le connaît pas)
- Accès Internet sortant (NTP = UDP 123) pour l'étape horloge.
Code complet
#include <WiFiS3.h>
const char* SSID = "votre-réseau";
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);
}
Vérification attendue
Le Moniteur affiche une adresse IP locale (192.168.x.x) puis un horodatage Unix cohérent (≈ 1,7–1,8 milliard en secondes). Débranchez la box WiFi : WiFi.status passe hors connexion et la boucle de reconnexion reprend la main.
Erreurs fréquentes
- Réseau 5 GHz : la connexion échoue systématiquement — l'ESP32-S3 est strictement 2,4 GHz.
- Caractères spéciaux ou accents dans le mot de passe saisi dans le croquis : échappements et encodage jouent des tours ; testez avec une clé simple d'abord.
WiFi.beginappelé sans temporisation puis code qui part trop vite : mettezWiFi.setTimeoutet vérifiez le code retour.- Avoir reflashé l'ESP32-S3 avec un firmware perso : le modem WiFiS3 n'est plus là — il faut réinjecter le firmware d'origine (tuto officiel « custom firmware ESP32-S3 », voir tuto avancé).
- Confondre les deux puces dans les logs : un
statusqui ne change jamais signale souvent un problème côté lien UART RA4M1↔ESP32-S3, pas votre réseau.
Autres tutoriels pour cette carte
- 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
Exemples de code pour cette carte
clignotante.inoArduinobouton-poussoir.inoArduinodac-analogique.inoArduinoentree-analogique.inoArduinopwm-respiration.inoArduinoservo-balayage.inoArduino