Usando el DS1307 RTC con la Raspberry Pi

Using the DS1307 RTC with the Raspberry Pi

El Módulo de reloj en tiempo real (RTC) DS1307 Permite que la Raspberry Pi realice un seguimiento del tiempo incluso cuando está apagado. Esta guía lo guiará a través de la configuración del Módulo RTC DS1307 con la Raspberry Pi usando el Protocolo I2C.


Lo que necesitarás

  1. Frambuesa pi (Cualquier modelo con soporte GPIO e I2C, por ejemplo, PI 3, PI 4)
  2. Módulo RTC DS1307
  3. Batería CR2032 (para mantener el tiempo cuando se enciende)
  4. Cables de placa y jersey
  5. Python instalado en la frambuesa pi

Paso 1: Cableado el DS1307 al Raspberry Pi

El DS1307 se comunica a través de I2C, así que lo conectamos a los pines I2C de Raspberry Pi.

Conexiones (modo I2C)

Pin DS1307 Pin de frambuesa Pi
VCC 3.3V o 5V (pin 1 o 2)
Gnd Tierra (pin 6)
SDA SDA (pin 3, GPIO2)
SCL SCL (pin 5, GPIO3)

Paso 2: Habilite I2C en la Raspberry Pi

  1. Abra la herramienta de configuración de Raspberry Pi:
    sudo raspi-config
    
  2. Navegar por Opciones de interfaz> I2C y habilitarlo.
  3. Reinicie la Raspberry Pi:
    sudo reboot
    
  4. Verificar que el DS1307 se detecta En el autobús I2C:
    sudo i2cdetect -y 1
    
    El DS1307 debería aparecer en la dirección 0x68.

Paso 3: Instale las bibliotecas requeridas

  1. Actualice la lista de paquetes de su Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Instale las herramientas I2C requeridas y las bibliotecas de Python:
    sudo apt install -y i2c-tools python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ds1307
    

Paso 4: Configuración y tiempo de lectura en el DS1307

Código de Python para establecer la fecha y la hora

Ejecute este script una vez para establecer el reloj RTC.

import time
import board
import busio
import adafruit_ds1307

# Initialize I2C bus and DS1307
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307(i2c)

# Set the date and time (Year, Month, Day, Hour, Minute, Second, Weekday, DST)
rtc.datetime = time.struct_time((2025, 1, 1, 12, 0, 0, 0, -1, -1))

print("RTC Date and Time Set!")

Código de Python para leer el tiempo de DS1307

Después de configurar la hora, use este script para leer la fecha y hora actuales.

import time
import board
import busio
import adafruit_ds1307

# Initialize I2C bus and DS1307
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307(i2c)

while True:
    current_time = rtc.datetime
    print(f"Date: {current_time.tm_year}-{current_time.tm_mon:02d}-{current_time.tm_mday:02d}")
    print(f"Time: {current_time.tm_hour:02d}:{current_time.tm_min:02d}:{current_time.tm_sec:02d}")
    time.sleep(1)

Paso 5: Sincronizar DS1307 con el reloj Raspberry Pi System

Para sincronizar el DS1307 TIEMPO RTC Con el tiempo del sistema Raspberry Pi:

  1. Lea la hora RTC DS1307 y establecerlo como el tiempo del sistema:
    sudo hwclock -r
    sudo hwclock -s
    
  2. Establezca el tiempo RTC DS1307 desde el tiempo del sistema Raspberry Pi:
    sudo hwclock -w
    

Paso 6: Aplicaciones del módulo RTC DS1307

  1. Mantener el tiempo en los dispositivos Raspberry Pi sin cabeza - útil para registro de datos proyectos.
  2. Sistemas de automatización del hogar - Asegure eventos programados precisos incluso después de la pérdida de energía.
  3. Proyectos de IoT - Use el DS1307 para Datos de campaña de tiempo en entornos desconectados.
  4. Estaciones meteorológicas - Almacene las marcas de tiempo precisas para Registros de temperatura y humedad.

Solución de problemas

  1. DS1307 no detectado (i2cdetect no se muestra 0x68)

    • Asegurar el Pines SDA/SCL están conectados correctamente.
    • Verifique que I2C está habilitado usando sudo raspi-config.
  2. Lecturas de fecha/hora incorrectas

    • Correr sudo hwclock -r Para verificar el reloj de hardware.
    • Restablecer el reloj RTC usando sudo hwclock -w.
  3. El tiempo de RTC no persiste después del poder

    • Asegurar el Batería CR2032 se instala correctamente.
    • Reemplace la batería si es baja o muerta.

Conclusión

El Módulo RTC DS1307 brindar Seguimiento preciso en tiempo real Para proyectos de Raspberry Pi, incluso cuando se apaga. Siguiendo esta guía, puede integrar la funcionalidad RTC en IoT, automatización y aplicaciones de registro de datos. 🚀

Escribir un comentario

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.