Obtenga entrega gratuita en todas las órdenes más de £20!

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 mantenga la hora incluso cuando está apagada. Esta guía te guiará para configurar el módulo RTC DS1307 con la Raspberry Pi usando el protocolo I2C.


Lo Que Necesitarás

  1. Raspberry Pi (cualquier modelo con soporte para GPIO e I2C, p. ej., Pi 3, Pi 4)
  2. Módulo RTC DS1307
  3. Batería CR2032 (para mantener la hora cuando está apagado)
  4. Protoboard y Cables Puente
  5. Python instalado la Raspberry Pi

Paso 1: Cableado de DS1307 a la Raspberry Pi

El DS1307 se comunica vía I2C, así que lo conectamos a los pines I2C de la Raspberry Pi.

Conexiones (Modo I2C)

DS1307 Pin Pin de Raspberry 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: Habilita I2C en la Raspberry Pi

  1. Abre la herramienta de configuración de Raspberry Pi:
    sudo raspi-config
    
  2. Ir a Opciones de Interfaz > I2C y habilítelo.
  3. Reinicia la Raspberry Pi:
    sudo reboot
    
  4. Verifique que el DS1307 se detecta el bus I2C:
    sudo i2cdetect -y 1
    
    El DS1307 debería aparecer en la dirección 0x68.

Paso 3: Instalar las Bibliotecas Necesarias

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

Paso 4: Ajuste y Lectura de la Hora en el DS1307

Código de Python para Establecer la Fecha y la Hora

Ejecuta este script una vez para configurar el reloj RTC.

import time
import board
import busio
import adafruit_ds1307

# Inicializa el bus I2C y DS1307
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307(i2c)

# Configura la fecha y la hora (Año, Mes, Día, Hora, Minuto, Segundo, Día de la semana, Horario de verano)
rtc.datetime = time.struct_time((2025, 1, 1, 12, 0, 0, 0, -1, -1))

print("¡Fecha y hora del RTC configuradas!")

Código Python para Leer la Hora de DS1307

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

import time
import board
import busio
import adafruit_ds1307

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

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

Paso 5: Sincronización DS1307 con el Reloj del Sistema de Raspberry Pi

Para sincronizar el DS1307 hora del RTC con la hora del sistema de Raspberry Pi:

  1. Lee el DS1307 hora del RTC y establecerla como la hora del sistema:
    sudo hwclock -r
    sudo hwclock -s
    
  2. Configura el DS1307 Hora del RTC desde la hora del sistema de Raspberry Pi:
    sudo hwclock -w
    

Paso 6: Aplicaciones de la DS1307 Módulo RTC

  1. Mantener la Hora en Dispositivos Raspberry Pi sin Monitor – Útil para registro de datos proyectos.
  2. Sistemas de Domótica – Garantiza eventos programados precisos incluso después de un corte de energía.
  3. Proyectos de IoT – Usa el DS1307 para datos de marcado de tiempo entornos desconectados.
  4. ` – Guardar marcas de tiempo precisas para registros de temperatura y humedad.

Solución de problemas

  1. DS1307 No Detectado (i2cdetect no se muestra 0x68)

    • Asegura el pines SDA/SCL están conectados correctamente.
    • Verifica que I2C está habilitado usando sudo raspi-config.
  2. Lecturas Incorrectas De Fecha/Hora

    • Correr sudo hwclock -r para comprobar el reloj de hardware.
    • Restablecer el reloj RTC usando sudo hwclock -w.
  3. La Hora Del RTC No Se Conserva Después De Apagar

    • Asegure el pila CR2032 está instalado correctamente.
    • Reemplace la batería si tiene poca carga o está agotada.

Conclusión

El DS1307 módulo RTC proporciona seguimiento preciso en tiempo real para proyectos de Raspberry Pi, incluso cuando está apagada. Al seguir esta guía, puedes integrar la funcionalidad RTC en aplicaciones para IoT, automatización y registro de datos. 🚀

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.

Escribir un comentario