ESP32 - Reloj de tiempo real
En esta guía, vamos a aprender a usar el ESP32 con el módulo de reloj en tiempo real DS3231. En detalle, cubriremos los siguientes temas:
- Cómo conectar el módulo RTC DS3231 al ESP32.
- Cómo programar el ESP32 para leer la fecha y la hora desde el módulo RTC DS3231 (segundo, minuto, hora, día, fecha, mes y año)
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del Módulo DS3231 Reloj en Tiempo Real
El ESP32 por sí solo tiene algunas funciones relacionadas con el tiempo, como millis() y micros(). Sin embargo, no puede proporcionar la fecha y la hora (segundos, minutos, horas, día, fecha, mes y año). Para obtener la fecha y la hora, necesitamos usar un módulo de Reloj en Tiempo Real (RTC) como DS3231, DS1370. El módulo DS3231 tiene una mayor precisión que DS1370. Ver DS3231 vs DS1307
Diagrama de pines
Módulo de reloj en tiempo real DS3231 incluye 10 pines:
- Pin 32K: genera un reloj de referencia estable (compensado por temperatura) y preciso.
- Pin SQW: genera una bonita onda cuadrada de 1 Hz, 4 kHz, 8 kHz o 32 kHz y puede ser manejada de forma programática. Esto puede usarse además como una interrupción debido a una condición de alarma en muchas aplicaciones basadas en el tiempo.
- Pin SCL: es un pin de reloj para la interfaz I2C.
- Pin SDA: es un pin de datos para la interfaz I2C.
- Pin VCC: suministra energía para el módulo. Puede estar entre 3.3 V y 5.5 V.
- Pin GND: es un pin de tierra.
Para uso normal, se necesitan 4 pines: VCC, GND, SDA, SCL.

El módulo DS3231 también tiene un soporte para batería.
- Si insertamos una batería CR2032, mantiene el reloj del módulo funcionando cuando la alimentación principal está apagada.
- Si no insertamos la batería, la información de la hora se pierde si la alimentación principal está apagada y tendrás que volver a ajustar la hora.
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.
ESP32 - Módulo RTC DS3231
| DS1307 RTC Module | ESP32 |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
Cómo programar para el módulo DS3231 RTC
- Incluir la biblioteca:
- Declara un objeto RTC:
- Inicializar RTC:
- Por primera vez, configure el RTC a la fecha y hora en que se compiló el sketch
- Lee la información de fecha y hora del módulo RTC
Código ESP32 – Cómo obtener la fecha y la hora
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Realiza el cableado tal como se muestra en la imagen de arriba.
- Conecta la placa ESP32 a tu PC mediante un cable micro USB.
- Abre Arduino IDE en tu PC.
- Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
- Abre el Gestor de Bibliotecas haciendo clic en el icono Library Manager en la barra de navegación izquierda de Arduino IDE
- Busca “RTClib”, luego encuentra la biblioteca RTC de Adafruit
- Haz clic en el botón Install para instalar la biblioteca RTC.

- Puede que se le pida instalar las dependencias de la biblioteca.
- Instale todas las dependencias de la biblioteca haciendo clic en el botón Instalar todo.

- Copia el código anterior y pégalo en el IDE de Arduino
- Compila y carga el código a la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino
- Abre el Monitor Serial en el IDE de Arduino
- Ver la salida en el Monitor Serial
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.