El DS3231 es un módulo de Reloj en Tiempo Real (RTC) de alta precisión con temperatura compensada. A diferencia del ESP32 con NTP (que necesita WiFi), el DS3231 mantiene la fecha y hora con una batería CR2032 de respaldo aunque el Arduino esté apagado.
Por Qué Usar DS3231 y No millis()
- millis(): se reinicia cuando el Arduino se apaga — no sirve para aplicaciones reales
- NTP (WiFi): requiere conexión a internet siempre
- DS3231: mantiene hora exacta con ±2 ppm de precisión, funciona sin red, con batería dura años
Conexión I2C
| DS3231 | Arduino Uno |
|---|---|
| VCC | 3.3V o 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Dirección I2C: 0x68. Si en el mismo bus hay un MPU-6050, también usa 0x68 — habrá conflicto; cambia la dirección del MPU-6050 a 0x69 poniendo su pin AD0 en HIGH.
Código: Leer y Configurar Fecha/Hora
#include <RTClib.h> // Librería "RTClib" de Adafruit
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
rtc.begin();
// Solo la primera vez — comentar después
// Ajusta al momento de compilar el sketch
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
DateTime ahora = rtc.now();
Serial.print(ahora.day()); Serial.print("/");
Serial.print(ahora.month()); Serial.print("/");
Serial.print(ahora.year()); Serial.print(" ");
Serial.print(ahora.hour()); Serial.print(":");
Serial.print(ahora.minute()); Serial.print(":");
Serial.println(ahora.second());
// Temperatura interna del DS3231
Serial.print("Temp sensor RTC: ");
Serial.print(rtc.getTemperature(), 1);
Serial.println(" °C");
delay(1000);
}
Automatización por Horario
// Encender relay a las 18:00 y apagar a las 23:00
DateTime ahora = rtc.now();
if (ahora.hour() >= 18 && ahora.hour() < 23) {
digitalWrite(RELAY, LOW); // Encender
} else {
digitalWrite(RELAY, HIGH); // Apagar
}
Proyectos con DS3231
- Data logger con SD: guardar sensor + timestamp exacto en CSV
- Reloj despertador: buzz a una hora programada via teclado matricial
- Riego programado: sin WiFi, activa la bomba según horario configurable
- Registrador de eventos: cuándo se abrió la puerta, cuándo se activó la alarma