Hay muchas veces que necesitas que tu proyecto haga alguna acción determinada en un momento concreto. Lo habitual es hacerlo a través de temporizadores, pero en ocasiones surge la necesidad de hacerlo con respecto a una fecha y hora determinadas. Por eso mismo, en este artículo voy a comentar 4 opciones conocidas y que no hay que pagar por su uso para mantener tus proyectos en hora.
GPS
Los módulos GPS reciben las señales de los 24 satélites que hay en orbita alrededor de la Tierra. La inmensa mayoría de estos módulos tienen una interfaz serie donde se envían comandos NMEA. El comando NMEA más común es el RMC, que entre otras cosas contiene la fecha y hora en UTC, por lo que tendrás que aplicar tu zona horaria.
Cualquier módulo GPS que tenga una interfaz serie sirve, por ejemplo este.
Con Arduino puedes usar la librería tyniGPS++.
Ventajas:
Está disponible en casi todo el planeta.
Desventajas:
La antena del módulo tiene que tener visión directa con el cielo.
RDS
La mayoría de estaciones de radio que emiten en FM envían, mediante RDS, información de su programación para que pueda ser visualizada en las radios que lo reciben. Hay algunas que también envían información de tráfico y la fecha y hora. Radio Nacional de España tiene en todas sus emisoras un servicio de sincronización horario.
Puedes usar este módulo de Sparkfun para recoger la información horaria. También puedes montarte una placa con un chip TDA7330
Ventajas:
Puede funcionar tanto en exteriores como en interiores.
Desventajas:
Está supeditado a que haya cobertura de radio y que haya emisoras que emitan información horaria en RDS.
DFC77
Es una señal horaria que se envía desde cerca de Frankfurt, Alemania; y cuyo alcance es de 2000 kilómetros, por lo que da cobertura a casi toda Europa:
Puedes usar el módulo de Conrad para poder captar la señal.
Con Arduino puedes seguir estos pasos para utilizarlo.
Ventajas:
Funciona tanto en interiores como en exteriores.
Desventajas:
Sólo funciona en Europa.
NTP
La última opción sólo es posible si nuestro sistema tiene la posibilidad de conectarse a Internet. Existen multitud de servidores NTP, por ejemplo en España está hora.roa.es del Real Observatorio de la Armada.
Puedes usar una shield Wifi, una shield Ethernet o una shield GSM para conectarte a Internet y solicitar la hora a un servidor NTP.
Para programar el Arduino puedes usar como referencia el cliente NTP.
Ventajas:
Obtener la hora de cualquier parte de mundo.
Desventajas:
Tiene que poder conectarse de algún modo a Internet.
Por último, para no estar constantemente preguntando la hora por estos medios, podéis obtenerla cada cierto tiempo y luego almacenarla en un chip auxiliar como el DS1337, el cual, además de guardar y consultar la hora, se le pueden configurar hasta dos alarmas.