Arduino Nano ESP32 - Reloj de tiempo real

En esta guía, vamos a aprender a usar Arduino Nano ESP32 con el módulo de reloj en tiempo real DS3231. En detalle, cubriremos 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) DS3231
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 DS3231 de reloj en tiempo real

El Arduino Nano ESP32 en sí tiene 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, se necesita usar un módulo de Reloj en Tiempo Real (RTC) como DS3231, DS1370. El módulo DS3231 tiene una mayor precisión que DS1370. Vea DS3231 vs DS1307

Disposición de pines

Módulo de reloj en tiempo real DS3231 incluye 10 pines:

  • Pin 32K: proporciona el reloj de referencia estable (compensado por temperatura) y preciso.
  • Pin SQW: emite una onda cuadrada de buena calidad a 1 Hz, 4 kHz, 8 kHz o 32 kHz y puede controlarse de forma programática. Esto también puede usarse 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 el uso normal, se requieren 4 pines: VCC, GND, SDA, SCL.

Disposición de pines del módulo DS3231 reloj en tiempo real

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

  • Si se inserta una batería CR2032, se mantiene la hora del módulo cuando la alimentación principal está apagada.
  • Si no se inserta la batería, la información de la hora se pierde cuando la alimentación principal está apagada y hay que volver a ajustar la hora.

Diagrama de Cableado

Diagrama de cableado DS3231 RTC para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Módulo RTC DS3231

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

Cómo programar para el módulo DS3231 RTC

  • Incluir la biblioteca:
#include <RTClib.h>
  • Declarar un objeto RTC:
RTC_DS3231 rtc;
  • Inicializar RTC:
if (! rtc.begin()) { Serial.println("RTC module is NOT found"); while (1); }
  • Por primera vez, configure el RTC con 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-rtc */ #include <RTClib.h> RTC_DS3231 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.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Nano ESP32 a tu computadora usando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Abre el Gestor de Bibliotecas haciendo clic en el icono Gestor de Bibliotecas en la barra de navegación izquierda del IDE de Arduino.
  • Busca “RTClib”, luego encuentra la biblioteca RTC de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca RTC.
Biblioteca RTC para Arduino Nano ESP32
  • Puede aparecer una ventana pidiéndole que instale las dependencias de la biblioteca.
  • Instale todas las dependencias de la biblioteca haciendo clic en el botón Instalar todo.
Librería BusIO de Adafruit para Arduino Nano ESP32
  • Copia el código anterior y pégalo en el IDE de Arduino
  • Compila y sube el código a la placa Arduino Nano ESP32 haciendo clic en el botón Subir en el IDE de Arduino
  • Abre el Monitor serie en el IDE de Arduino
  • Observa la salida en el Monitor serie.
COM6
Send
Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:35 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:36 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:37 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:38 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:39 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:40 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:41 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:42 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:43 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21: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.

※ 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!