RTC DS3231 Arduino MKR Wifi 1010

Hola a tod@s y felices fiestas,

He estado buscando información pero no he dado con la solución.
Tengo que hacer un proyecto en el que cada semana se active un motor paso a paso Nema 17. Estoy usando una placa Arduino MKR Wifi 1010 que aunque cuenta con un reloj interno, he optado por agregar al conjunto un RTC DS3231 para asegurar la continuidad en caso de pérdida de red (el sistema va alimentado a la red eléctrica).

Tengo el proyecto conectado a Thinger.io y todo funciona a la perfección, hasta que en al código agrego las llamadas de RTC como:
reloj.adjust(DateTime(F(DATE), F(TIME)));
o
DateTime ahora = rtc.now();

Entonces el Arduino se desconecta de thinger.io

He borrado los delay() que tenía y he probado todo el código. Son estas llamadas las que me producen la desconexión.

He visto las opciones de usar millis() para calcular estos 7 días, pero quería usar el reloj frente a posibles pérdidas de red.

¿Se les ocurre alguna solución?

Muchas gracias
Un saludo y felices fiestas
David

Hola,

Si ya se esta conectando la placa a internet, yo usaría un cliente NTP, llevaría igualmente el contador interno (con un contador de segundos), pero con la opción de corregir la hora cada intervalo de tiempo, cada hora o algo así, coincido en que no se debería dejar toda la labor al contador interno del micro, de esta forma incluso prescindiría del RTC.

Saludos y felices fiestas igualmente :wink:

Hola Ega,

Muchas gracias por la ayuda. No sé muy bien que es un NTP pero me pongo a investigar para que tire esto. Muchas gracias por la idea=)

“Network Time Protocol”

Basicamente pones al micro a que le pregunte a algún servidor en internet “oye… me dices la hora?” jejeje

Saludos,

Gracias Ega!=)
Pues a preguntar que le pongo jeje Ya pondré por aquí cómo ha ido la cosa.

Gracias de nuevo por la idea

Buenos días,
Quería comentar que no logré conectar el NTP, aunque la idea me va a ser útil para otras veces=)

Al final el RTC con la librearía #include “RTClib.h” me funcionó. Era un tema de otro punto del código, estaba haciendo las pruebas sin todo el hardware conectado porque me faltaba una pieza por llegar, y es lo que me estaba dando error.

Feliz 2021 a tod@s

La ventaja del usar el cliente NTP es el ahorro de un periférico en el dispositivo final, y la necesidad de eventualmente ajustar el reloj.

Pero ciertamente ambas soluciones son muy válidas.

Saludos.

Claro, como dice @ega, con el NTP te ahorras el periferico, además aunque pongas el reloj externo puede ser interesante para recalibrar la hora de vez en cuando.

Yo lo utilizo a menudo. Si no funcionó pudo ser porque realizabas la llamada con el cliente de thinger ya establecido, y el procesador no puede mantener las dos conexiones. Tienes que hacerlo antes de crear la conexión con Thinger o bien cerrarla, realizar la llamada al NTP y luego volver a establecer la conexión con Thinger

Si te interesa te puedo buscar algun sketch

un saludo!

Buenos días Jorge,
Efectivamente eso es lo que me pasa, si pongo Wifinina se me desconectaba thinger, y al hacer la conexión por thinger no me funcionaba la librería del NTP…por eso lo di por perdido y conecté el RTC externo.

La solución que dais creo sea la mejor de usar NTP, porque además la placa Wifi 1010 tiene reloj incorporado y encontré para ponerlo en hora por NTP, pero andaba en esas de desconexión…