Arduino Nano ESP32 - Módulo RTC DS1307

En esta guía, vamos a aprender cómo usar el módulo DS1307 RTC con Arduino Nano ESP32. En detalle, aprenderemos los siguientes temas:

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Módulo Reloj de Tiempo Real (RTC) DS1307
1×Batería CR2032
1×Cables Puente
1×Protoboard
1×(Opcional) Conector de Alimentación DC
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del módulo de reloj en tiempo real DS1307

El propio Arduino Nano ESP32 ofrece algunas funciones relacionadas con el tiempo, como millis() y micros(). Sin embargo, estas no pueden proporcionar la fecha y la hora (segundos, minutos, horas, día, fecha, mes y año). Para obtener la fecha y la hora, es necesario utilizar un módulo de Reloj en Tiempo Real (RTC) como DS3231, DS1370. El módulo DS3231 tiene una mayor precisión que el DS1370. Ver DS3231 vs DS1307.

Diagrama de pines

El módulo de reloj en tiempo real DS1307 tiene 12 pines. Sin embargo, para uso normal, necesita utilizar 4 pines: VCC, GND, SDA, SCL:

  • SCL pin: es un pin de reloj para la interfaz I2C.
  • SDA pin: es un pin de datos para la interfaz I2C.
  • VCC pin: suministra energía para el módulo. Puede estar entre 3.3V y 5.5V.
  • GND pin: es un pin de tierra.
Diagrama de pines del módulo DS1307: reloj en tiempo real

El módulo DS1307 también tiene un portapilas.

  • Si insertamos una batería CR2032, mantiene la hora 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 es necesario volver a ajustar la hora.

Diagrama de Cableado

Diagrama de cableado de Arduino Nano ESP32 para reloj en tiempo real DS1307

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Módulo RTC DS1307

DS1307 RTC Module Arduino Nano ESP32
Vin 3.3V
GND GND
SDA A4
SCL A5

Cómo programar para el módulo RTC DS1307

  • Incluir la biblioteca:
#include <RTClib.h>
  • Declarar un objeto RTC:
RTC_DS1307 rtc;
  • Inicializar RTC:
if (! rtc.begin()) { Serial.println("RTC module is NOT found"); while (1); }
  • Por primera vez, configura el RTC a la fecha y hora de la PC en la que se compiló el sketch
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • Lee la información de fecha y hora desde el módulo RTC
DateTime now = rtc.now(); Serial.print("Arduino Nano ESP32 RTC Date Time: "); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" ("); Serial.print(now.dayOfTheWeek()); Serial.print(") "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC);

Código de Arduino Nano ESP32 – Cómo obtener la fecha y la hora

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-ds1307-rtc-module */ #include <RTClib.h> RTC_DS1307 rtc; char daysOfWeek[7][12] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; void setup () { Serial.begin(9600); // SETUP RTC MODULE if (! rtc.begin()) { Serial.println("RTC module is NOT found"); Serial.flush(); while (1); } // automatically sets the RTC to the date & time on PC this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // manually sets the RTC with an explicit date & time, for example to set // January 21, 2021 at 3am you would call: // rtc.adjust(DateTime(2021, 1, 21, 3, 0, 0)); } void loop () { DateTime now = rtc.now(); Serial.print("ESP32 RTC Date Time: "); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" ("); Serial.print(daysOfWeek[now.dayOfTheWeek()]); Serial.print(") "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC); delay(1000); // delay 1 seconds }

Pasos R\u00e1pidos

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecte los componentes según el diagrama proporcionado.
  • Conecte la placa Arduino Nano ESP32 a su computadora con un cable USB.
  • Inicie el IDE de Arduino en su computadora.
  • Seleccione la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Abra el Administrador de Bibliotecas haciendo clic en el icono Administrador de Bibliotecas en la barra de navegación izquierda del IDE de Arduino.
  • Busque “RTClib”, luego localice la biblioteca RTC de Adafruit.
  • Haga clic en el botón Instalar para instalar la biblioteca RTC.
Biblioteca RTC para Arduino Nano ESP32
  • Puede aparecer una ventana para pedirle que instale las dependencias de la biblioteca.
  • Instale todas las dependencias de la biblioteca haciendo clic en el botón Instalar todo.
Biblioteca Adafruit BusIO para Arduino Nano ESP32
  • Copia el código anterior y pégalo en el IDE de Arduino
  • Compila y carga el código a la placa Arduino Nano ESP32 haciendo clic en el botón Cargar del IDE de Arduino
  • Abre el Monitor Serial en el IDE de Arduino
  • Ve la salida en el Monitor Serial
COM6
Send
Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:35 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:36 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:37 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:38 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:39 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:40 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:41 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:42 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:43 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:44
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!