🛠 Horloge persistante : RTC à pile + resynchronisation NTP

Arduino UNO R4 WiFi · avance · Schéma : IMG-uno-r4-wifi-avance-1-ur4wifi-horloge-rtc-ntp.svg — UNO R4 WiFi avec emplacement pile bouton du RTC surligné, symbole pile 3 V, serveur NTP à gauche, matrice LED affichant 12:34, horloge interne du RA4M1 annotée.

Objetivos

Construir un reloj que sobreviva a los cortes de corriente: el RA4M1 posee un RTC (reloj de tiempo real) mantenido por una pila de botón conectada al zócalo dedicado de la placa. La estrategia profesional: una vez no es costumbre — sincronizar el RTC con NTP cuando hay WiFi disponible, y luego dejar que mantenga la hora por sí solo, ya que la pila consume tan poco que la hora sobrevive semanas sin alimentación principal.

Material

Código completo

#include <WiFiS3.h>
#include "RTC.h"
#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;
const char* SSID = "votre-reseau";
const char* PASS = "votre-cle";

// Trames 5x7 pour les chiffres 0-9 : voir la bibliothèque de trames
// du tuto matrice ; on n'affiche ici que l'heure hh:mm en deux blocs.
void afficherHeure(uint8_t h, uint8_t m);

void setup {
  Serial.begin(115200);
  matrix.begin;

  WiFi.begin(SSID, PASS);
  if (WiFi.waitForConnectResult == WL_CONNECTED) {
    unsigned long epoch = WiFi.getTime;     // NTP
    if (epoch > 1000000000UL) {
      RtcDateTime now = RtcDateTime::FromEpoch(epoch);
      RTC.SetDateTime(now);                   // on écrit dans le RTC matériel
      Serial.println(F("RTC synchronise via NTP"));
    }
  } else {
    Serial.println(F("Sans WiFi : heure du RTC conservée à la pile"));
  }
}

void loop {
  RtcDateTime t = RTC.GetDateTime;
  Serial.printf("%02u:%02u:%02u\n", t.Hour, t.Minute, t.Second);
  afficherHeure(t.Hour, t.Minute);
  delay(1000);
}

> NO VERIFICADO: los nombres exactos de las API de la clase RTC del core Renesas UNO (RtcDateTime, GetDateTime/SetDateTime, waitForConnectResult) evolucionan según las versiones del core — verifique la firma en el ejemplo RTC del IDE (Archivos > Ejemplos > Ejemplos para UNO R4) antes de cargar el código.

Verificación esperada

Tras la sincronización, la hora avanza segundo a segundo. Desconecte todo (USB y jack) durante diez minutos, vuelva a conectar: la hora mostrada es la correcta — el RTC ha funcionado con su pila. Sin pila, la hora vuelve al valor de compilación: esta es la prueba que demuestra la utilidad de la pila.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales