Añadir un Reloj RTC a la Raspberry Pi

No me acostumbro a que el mi Raspberry Pi diga que estamos en el año 1970, y es que cuando se enciende y no tiene conectividad es lo que sucede

La Raspberry cuando arranca conecta con un servidor llamado NTP para consultar la hora, pero que sucede cuando esto no está disponible y debe mantener la hora en todo momento, el encargado de esto es el RTC.

Vamos a configurar el RTC.

Lo primero es apagar nuestra Raspberry Pi para poder conectar el módulo, no se puede hacer con la Raspberry Pi encendida.

En la linea de comando:

sudo halt

una vez esté apagada la Raspberry podemos conectar el RTC según se muestra en la imagen.

rtcRPi-clipped

 

Ahora ya podemos volver a encender nuestra Raspberry Pi para configurar el RTC.

Siguiendo una de nuestras webs preferidas Adafruit, para configurar el RTC en la Raspberry Pi.

Configurar I2C

Lo primero es verificar que la Raspberry detecta el RTC, para ello ejecutamos el comando:

sudo i2cdetect -y 1

Si el resultado es que detecta el ID #68 es que nuestro RTC está vivo, esa es la direccion del RTC ds1307

rtc1_grande

 

Poniendo la hora en el RTC.

Lo primero es cargar el modulo RTC en el Kernel para ello:

sudo modprobe rtc-ds1307

Nos hacemos «superuser»

sudo bash

Si nuestra Raspberry es una Rev2 o posterior escribimos:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Si tenemos una de las primeras Raspberry Pi mod B (antes de enero 2013) usaremos:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device

Ya no tenemos que continuar siendo superuser:

exit

Ya está añadido el módulo a nuestro kernel y cada vez que la Raspberry se arranque podrá comprobar la hora en el RTC:

sudo hwclock -r

Si es la primera vez que lo ejecutamos y no tiene conectividad a internet la Raspberry devolverá 1 de enero de 2000, para poner la hora, la manera más sencilla es conectarla a internet para que automaticamente se actualice la hora.

date

Para comprobar la hora.

rtc2_grande

 

Para escribir la hora del sistema en el RTC

sudo hwclock -w

Comprueba que se ha escrito correctamente la hora en el RTC

sudo hwclock -r

rtc3_grande

 

Ya hemos conseguido que nuestra Raspberry tenga la hora en el RTC sin embargo no está terminado, ahora tenemos que decirle que lea la hora del RTC cada vez que arranque para ello hay que añadir el módulo RTC al kernel.

Hacer que la Raspberry use el RTC

Nos vamos a la ruta

/etc/modules

vamos a editar el archivo que carga la Raspberry cuando arranca:

sudo nano /etc/modules

y añadiremos la linea

rtc-ds1307

al final del archivo de modo que quede de esta manera:

rtc4_grande

El siguiente paso es añadir el dispositivo DS1307 como reloj del sistema en el archivo rc.local, para ello ejecutamos

sudo nano /etc/rc.local

y añadimos las siguientes lineas justo antes de «exit 0»

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

sudo hwclock

date

Se quedará el fichero de esta manera:

rtc5_grandey salimos guardando los cambios Ctrl+O y Ctrl+X

Ahora es el momento de probar que todo ha salido bien, para ello desconectaremos la WiFi o el cable de red y reinciaremos la Raspberry:

sudo reboot

Una vez haya iniciado la Raspberry con el comando date podremos comprobar la hora del sistema que corresponderá con la que el RTC esté gestionando.

date

¿Te ha funcionado?  Espero que si!

Puedes encontrar el RTC en Raspipc.es haciendo click aquí

Leave a comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.