Utilisation du DS1307 RTC avec le Raspberry Pi

Using the DS1307 RTC with the Raspberry Pi

Le Module DS1307 en temps réel (RTC) Permet au Raspberry Pi de garder une trace du temps même lorsqu'il est éteint. Ce guide vous guidera dans la configuration du Module DS1307 RTC avec la framboise Pi en utilisant le Protocole I2C.


Ce dont vous aurez besoin

  1. Raspberry Pi (Tout modèle avec le support GPIO et I2C, par exemple, PI 3, PI 4)
  2. Module DS1307 RTC
  3. Batterie CR2032 (pour maintenir le temps lorsqu'il est éteint)
  4. Fils de planche à pain et de cavalier
  5. Python installé sur le Raspberry Pi

Étape 1: Câblage du DS1307 au Raspberry Pi

Le DS1307 communique via I2C, nous le connectons donc aux broches I2C de Raspberry Pi.

Connexions (mode I2C)

Pin DS1307 Pin de framboise PI
VCC 3,3 V ou 5V (broche 1 ou 2)
GND Terre (broche 6)
SDA SDA (broche 3, gpio2)
SCL SCL (broche 5, gpio3)

Étape 2: Activer I2C sur le Raspberry Pi

  1. Ouvrez l'outil de configuration Raspberry Pi:
    sudo raspi-config
    
  2. Se diriger vers Options d'interface> I2C et l'activer.
  3. Redémarrez le Raspberry Pi:
    sudo reboot
    
  4. Vérifiez que le DS1307 est détecté sur le bus I2C:
    sudo i2cdetect -y 1
    
    Le DS1307 devrait apparaître à l'adresse 0x68.

Étape 3: Installez les bibliothèques requises

  1. Mettez à jour la liste des packages de votre Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installez les outils I2C et les bibliothèques Python requises:
    sudo apt install -y i2c-tools python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ds1307
    

Étape 4: Définition et temps de lecture sur le DS1307

Code python pour définir la date et l'heure

Exécutez ce script une fois pour définir l'horloge 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!")

Code python pour lire l'heure à partir de DS1307

Après avoir réglé l'heure, utilisez ce script pour lire la date et l'heure actuelles.

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)

Étape 5: Syncing DS1307 avec l'horloge du système Raspberry Pi

Pour synchroniser le DS1307 RTC Temps Avec le temps du système Raspberry Pi:

  1. Lisez le temps DS1307 RTC et le définir comme l'heure du système:
    sudo hwclock -r
    sudo hwclock -s
    
  2. Réglez le temps DS1307 RTC à partir du temps du système Raspberry Pi:
    sudo hwclock -w
    

Étape 6: Applications du module DS1307 RTC

  1. Garder le temps sur les appareils PI Raspberry sans tête - utile pour journalisation des données projets.
  2. Systèmes de base - Assurez-vous des événements planifiés précis même après une perte de puissance.
  3. Projets IoT - Utilisez le DS1307 pour Timestaping Data dans des environnements déconnectés.
  4. Stations météorologiques - stocker des horodatages précis pour Records de température et d'humidité.

Dépannage

  1. DS1307 non détecté (i2cdetect ne montre pas 0x68)

    • Assurer le Broches SDA / SCL sont correctement câblés.
    • Vérifiez que I2C est activé en utilisant sudo raspi-config.
  2. Lectures de date / heure incorrectes

    • Courir sudo hwclock -r Pour vérifier l'horloge matérielle.
    • Réinitialisez l'horloge RTC en utilisant sudo hwclock -w.
  3. RTC Temps ne persiste pas après le courant

    • Assurer le Batterie CR2032 est installé correctement.
    • Remplacez la batterie si elle est faible ou morte.

Conclusion

Le Module DS1307 RTC proposer suivi précis en temps réel Pour les projets Raspberry Pi, même lorsqu'il est éteint. En suivant ce guide, vous pouvez intégrer les fonctionnalités RTC dans Applications IoT, Automation et Data Enregistrement des données. 🚀

Laissez un commentaire

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.