▷ #ESP32 - REAL-TIME CLOCK #RTC INTERNO
⭐⭐⭐⭐⭐ #ESP32 - REAL-TIME CLOCK #RTC INTERNO
Reloj en tiempo real (en ingles Real Time Clock, RTC) es un reloj de ordenador, capaz de mantener la fecha y hora. Perfectos para aplicaciones donde se requiere manejar el tiempo con precisión. En el mercado tenemos muchos módulos RTC para microcontroladores tales como el DS1307 y DS3231. Son muy útiles y fácil de usar, por ello los tenemos presentes en varios tipos de proyectos. Sin embargo, es grato informarle al lector, que nuestras placas ESP32 no requieren de comprar dichos módulos, porque ya tienen un RTC interno que podemos usar. A continuación mostraremos la arquitectura de nuestro microcontrolador.
Si observamos en la imagen, uno de los módulos internos del micro es un RTC funcional, el cual el se utilizan en varios procesos, y en uno de ellos tenemos manejar hora y fecha con precisión, a lo largo de esta presentación, veremos como podemos usarlo y sacar el máximo provecho de nuestras placas #ESP32.
- Librería ESP32Time
Esta librería nos ofrecerá todas las herramientas necesarias para sacar provecho a nuestro RTC interno, el link de descarga al igual a toda la documentación la puede encontrar en el siguiente enlace:
https://www.arduinolibraries.info/libraries/esp32-time
Recomendamos al lector revisarlo para aprender a profundidad sobre la libreria y todas las características que ofrece.
El método de instalación es el mismo de siempre. Entramos al link, y descargamos el rar de la versión que deseamos, abrimos nuestro Arduino-IDE, nos dirigimos a Programa -> Incluir Librería -> Añadir biblioteca zip y seleccionamos el rar que descargamos.
- Obtener Fecha y Hora
Una vez descargada la librería ESP32Time, estamos listos para empezar a utilizar nuestro RTC interno, a continuación se presenta un código para los primeros pasos con la librería.
- Explicación del código
Primero debemos incluir la librería y crear un objeto del tipo ESP32Time, este objeto representara nuestro RTC y es donde podremos consultar los diferentes datos de fecha y hora, por eso es de suma importancia incluirlo al inicio.
getTime() // (String) 15:24:38
getDate() // (String) Sun, Jan 17 2021
getDate(true) // (String) Sunday, January 17 2021
getDateTime() // (String) Sun, Jan 17 2021 15:24:38
getDateTime(true) // (String) Sunday, January 17 2021 15:24:38
getTimeDate() // (String) 15:24:38 Sun, Jan 17 2021
getTimeDate(true) // (String) 15:24:38 Sunday, January 17 2021
getMicros() // (long) 723546
getMillis() // (long) 723
getEpoch() // (long) 1609459200
getSecond() // (int) 38 (0-59)
getMinute() // (int) 24 (0-59)
getHour() // (int) 3 (0-12)
getHour(true) // (int) 15 (0-23)
getAmPm() // (String) pm
getAmPm(true) // (String) PM
getDay() // (int) 17 (1-31)
getDayofWeek() // (int) 0 (0-6)
getDayofYear() // (int) 16 (0-365)
getMonth() // (int) 0 (0-11)
getYear() // (int) 2021
- Ejecución del código
Compilamos el código y lo subimos a la placa. Abrimos el monitor serial y podemos observar como nuestro RTC interno funciona perfectamente, se muestra como el reloj empieza a incrementar progresivamente tal como lo realizaría un reloj.
Por ultimo nos gustaría mostrar al usuario como nuestro RTC interno es tan eficiente como los RTC comerciales que podemos encontrar. Se procederá a subir el siguiente código.
Gracias electronic de provecho el tema del RTC en el ESP
ResponderBorrarBuenas, La fecha de la forma n° 2 se desfasa en un mes (Forma 1Mes=July, Forma 2 Mes =6), como se soluciona eso?, muchísimas gracias
ResponderBorrarint mes = rtc.getMonth()+1;
BorrarAsí logré solucionarlo, saludos desde Chile