Configurar e integrar un RTC en Raspbian Jessie: Configurar el interfaz i2c

En el sistema de riego que voy a construir he decidido usar un RTC (Real Time Clock) para no depender de una conexión a Internet para obtener la hora, con la intención de integrarlo con el sistema operativo para que nptd obtenga la hora del RTC cuando no pueda acceder a los servidores NTP que tiene configurados.

El RTC que he utilizado es el DS3231, es mi favorito y ademas de preciso no requiere de un cristal externo y por ahora he podido conectarlo con todos los dispositivos que uso (Arduino, ESP8266, Onion Omega y Raspberry Pi) sin ningún problema.

Para configurar el interfaz i2c es necesario indicarle al kernel que cargue los módulos i2c-bcm2708 y i2c-dev. Abre el archivo /etc/modules y añádelos al final.

Es posible que en el archivo /etc/modprobe.d/raspi-blacklist.conf, en el caso de existir (en mi caso no estaba), esté incluido el módulo i2c-bcm2708. De ser así conméntalo con un corchete, de lo contrario el kernel no caragará el módulo.

Por último debemos añadir al archivo /boot/config.txt el parámetro dtparam=i2c_arm=on al final del archivo para activar el interfaz i2c, reiniciamos el sistema con:

~$ sudo shutdown -r now

Tras el inicio instalamos i2c-tools y comprobamos si el interfaz funciona con:

~$ sudo i2cdetect -y 1

Si todo sale bien veremos algo parecido a esto:

En la tabla puede verse el DS3231 en la dirección 0x68 y la memoría flash del módulo RTC que estoy usando en al dirección 0x57.

En el siguiente artículo configuraremos el RTC con hwclock y lo integraremos con ntpd.