Cómo usar el reloj en tiempo real con Raspberry Pi

Cómo usar el reloj en tiempo real con Raspberry Pi
Raspberry Pi rastrea el tiempo usando Internet, pero cuando no hay red, esta puede ser una situación problemática para los usuarios que trabajan en algunos proyectos basados ​​en el tiempo. Para tal situación, existe un protocolo I2C en Raspberry Pi. I2C es un circuito interintegrado que se puede usar para conectar Raspberry Pi a un reloj en tiempo real (RTC) para mantener la pista correcta del tiempo, incluso si no hay Internet.

En este artículo, verá el método de usar un reloj en tiempo real para realizar un seguimiento del tiempo en Raspberry Pi.

Cómo usar un reloj en tiempo real (RTC) con Raspberry Pi

RTC es un pequeño módulo de hardware que se utiliza para mantener el seguimiento preciso de la fecha y el tiempo. Un módulo RTC consiste en una interfaz I2C debido a la cual se puede conectar a Raspberry Pi. Por lo general, un módulo RTC consta de 4 pines, pero podría haber más pines. Los cuatro pines básicos de RTC que se utilizan para conectar RTC con Raspberry Pi son:

  • Alfiler
  • Pasador de SCL
  • Alfiler
  • Pin de 5 V o VCC

Todos estos pines están etiquetados en la imagen a continuación, el color del módulo RTC puede variarlo podría ser azul, verde o rojo:

El Raspberry Pi también tiene un Pins de protocolo I2C SDA y SDL en el PIN número 3 y 5 para conectarlo al módulo RTC. Para conectar la Raspberry Pi con el módulo RTC, usaremos 4 pines de Raspberry Pi que se resaltan en la imagen a continuación:

Siga los pasos dados a continuación para usar RTC con Raspberry Pi:

Paso 1: Configuración de hardware

Para construir el circuito de hardware de Raspberry Pi y RTC, use el siguiente diagrama de circuito;

  • SDA de RTC al pin 3 de Raspberry Pi
  • SCL de RTC al pin 5 de Raspberry Pi
  • GND de RTC al pin 14 (GND) de Raspberry Pi
  • 5V o VCC al pin 2 de Raspberry Pi

Paso 2: Habilitar I2C en Raspberry Pi

Tienes que habilitar I2C Interfaz en Raspberry Pi abriendo la herramienta de configuración de Raspberry Pi utilizando el siguiente comando:

$ sudo raspi-config

Ve a la Opciones de interfaz y golpear Ingresar:

Luego ingrese más I2C Opción para habilitar el protocolo I2C en Raspberry Pi:

Después de lo cual le pedirá un permiso para habilitar el protocolo I2C, elija aquí:

Un aviso parecerá informar que el I2C está habilitado; hacer clic De acuerdo aquí:

Luego haga clic en el Finalizar botón para completar el proceso.

Paso 3: Asegúrese de que la conexión del módulo RTC a Raspberry Pi

Después de habilitar I2C, asegúrese de que su módulo de hardware RTC esté conectado correctamente con Raspberry Pi y que se pueda confirmar ejecutando el comando escrito a continuación:

$ sudo i2cdetect -y 1

Si la salida del comando ha mostrado el ID# 68 Entonces significa que la placa está conectada correctamente:

Ahora editaremos el archivo Boot/Config para configurar la hora Raspberry Pi RTC:

$ sudo nano /boot /config.TXT

Después de abrir el archivo, vaya a la parte inferior del archivo y dependiendo del módulo RTC que esté utilizando alterar la línea mencionada a continuación y escríbelo en la parte inferior del archivo de arranque/configuración:

Sintaxis

dtoverlay = i2c-rtc,

Los tres módulos RTC de uso común son DS1307, DS3231 y PCF8523 Puede verificar cuál está utilizando y alterar el texto de acuerdo con eso.

Ejemplo

Estoy usando el DS1307 Módulo, así que he usado este comando a continuación:

DToverlay = I2C-RTC, DS1307

Luego guarde el archivo usando las teclas CTRL+X y Y.

Ahora reinicie el sistema utilizando el comando escrito a continuación para que se pueda cargar el kernel RTC:

$ sudo reinicio

Ahora, después de un reinicio, ejecute el comando de detección I2C nuevamente y debería ver un Uu (significa que el dispositivo o el recurso están ocupados) en lugar del número 68. El Uu confirma que el núcleo se carga con éxito y el módulo RTC finalmente se comunica con Raspberry Pi:

$ sudo i2cdetect -y 1

Desde que el RTC comenzó a comunicarse con Raspberry Pi, es hora de eliminar el viejo reloj falso en Raspberry Pi y para ese propósito ejecuta el comando escrito a continuación:

$ sudo apt -y eliminar falso -hlock

Y ejecute el comando escrito a continuación para eliminar completamente el reloj falso incluso de los scripts de inicio en Raspberry Pi:

$ sudo Update-RC.D -f Fake -Hwlock Retirar

Ahora es el momento de editar el script de hardware RTC usando el editor NANO, y para eso ejecuta el comando mencionado a continuación:

$ sudo nano/lib/udev/hwclock-set

En el archivo, encuentre el texto que se resalta en la imagen a continuación:

Comenta las tres líneas agregando # en frente de ellos:

Ahora para leer el tiempo directamente desde el módulo RTC, ejecute el comando escrito a continuación:

$ sudo hwclock -d -r

Luego, ejecute el siguiente comando para averiguar la fecha del sistema, asegúrese de que en este punto su Raspberry Pi esté conectada a Wi-Fi o Ethernet para obtener la fecha correcta:

$ Fecha

Ahora ejecute el comando escrito a continuación para escribir la fecha correcta (que acaba de ver anteriormente por comando de fecha) en el módulo RTC:

$ sudo hwclock -w

Y ahora para verificar que la fecha se haya escrito correctamente al módulo RTC, ejecute el fecha comandar encontrar la fecha del sistema y HwClock -R Comando para encontrar el tiempo del módulo RTC y ambos deberían ser el mismo:

$ Fecha
$ sudo hwclock -r

Conclusión

El módulo RTC se puede conectar con Raspberry Pi usando un protocolo síncrono I2C. La configuración de hardware y software para usar RTC con Raspberry Pi se discute en detalle en el artículo. Una vez que el RTC está configurado correctamente con Raspberry Pi, incluso si no está conectado a la red, su sistema aún mostrará el tiempo preciso debido al módulo RTC (Tiempo de reloj real).