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.
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
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.
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
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:
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:
y 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í