Verwenden des DS1307 RTC mit dem Raspberry Pi

Using the DS1307 RTC with the Raspberry Pi

Der DS1307 Echtzeit Clock-Modul (RTC) Ermöglicht es dem Raspberry Pi, die Zeit zu verfolgen, auch wenn er abgeschaltet wird. Dieser Leitfaden führt Sie durch das Einrichten der DS1307 RTC -Modul mit dem Raspberry Pi die I2C -Protokoll.


Was Sie brauchen werden

  1. Raspberry Pi (Jedes Modell mit GPIO- und I2C -Unterstützung, z. B. PI 3, PI 4)
  2. DS1307 RTC -Modul
  3. CR2032 Batterie (für die Aufrechterhaltung der Zeit, wenn sie abgeschoben werden)
  4. Breadboard- und Jumper -Drähte
  5. Python installiert Auf dem Raspberry Pi

Schritt 1: Verkabelung des DS1307 mit dem Raspberry Pi

Der DS1307 kommuniziert über I2CAlso verbinden wir es mit den I2C -Stiften des Raspberry Pi.

Verbindungen (I2C -Modus)

DS1307 PIN Raspberry Pi Pin
VCC 3,3 V oder 5 V (Pin 1 oder 2)
GND Masse (Pin 6)
SDA SDA (Pin 3, gpio2)
Scl SCL (Pin 5, gpio3)

Schritt 2: Aktivieren Sie I2C am Raspberry Pi

  1. Öffnen Sie das Raspberry PI -Konfigurationstool:
    sudo raspi-config
    
  2. Navigieren zu Schnittstellenoptionen> i2c und es aktivieren.
  3. Starten Sie den Raspberry Pi neu:
    sudo reboot
    
  4. Überprüfen Sie, dass die DS1307 wird erkannt Im I2C -Bus:
    sudo i2cdetect -y 1
    
    Der DS1307 sollte unter der Adresse erscheinen 0x68.

Schritt 3: Installieren Sie die erforderlichen Bibliotheken

  1. Aktualisieren Sie die Paketliste Ihres Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installieren Sie die erforderlichen I2C -Tools und Python -Bibliotheken:
    sudo apt install -y i2c-tools python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ds1307
    

Schritt 4: Einstellung und Lesen der Zeit auf dem DS1307

Python -Code, um Datum und Uhrzeit festzulegen

Führen Sie dieses Skript einmal aus, um die RTC -Uhr festzulegen.

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!")

Python -Code, um die Zeit von DS1307 zu lesen

Verwenden Sie nach dem Festlegen der Zeit dieses Skript, um das aktuelle Datum und die aktuelle Uhrzeit zu lesen.

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)

Schritt 5: Synchronisieren von DS1307 mit der Himbeer -PI -Systemuhr

Um die zu synchronisieren DS1307 RTC -Zeit Mit der Himbeer -Pi -Systemzeit:

  1. Lesen Sie die DS1307 RTC -Zeit und setzen Sie es als Systemzeit:
    sudo hwclock -r
    sudo hwclock -s
    
  2. Stellen Sie die DS1307 RTC -Zeit aus der Zeit für Raspberry Pi System ein:
    sudo hwclock -w
    

Schritt 6: Anwendungen des DS1307 RTC -Moduls

  1. Die Zeit auf kopflosen Himbeer -PI -Geräten behalten - nützlich für Datenprotokollierung Projekte.
  2. Heimautomatisierungssysteme - Gewährleisten Sie genaue geplante Ereignisse auch nach dem Stromverlust.
  3. IoT -Projekte - Verwenden Sie den DS1307 für Zeitstempeldaten In unzähligen Umgebungen.
  4. Wetterstationen - Genaue Zeitstempel aufbewahren Temperatur- und Luftfeuchtigkeitsaufzeichnungen.

Fehlerbehebung

  1. DS1307 nicht erkannt (i2cdetect zeigt sich nicht 0x68)

    • Stellen Sie sicher, dass die SDA/SCL -Stifte sind richtig verkabelt.
    • Überprüfen Sie das I2C ist aktiviert Verwendung sudo raspi-config.
  2. Falsche Datum/Uhrzeit

    • Laufen sudo hwclock -r So überprüfen Sie die Hardwareuhr.
    • Setzen Sie die RTC -Uhr mithilfe der RTC -Uhr zurück sudo hwclock -w.
  3. RTC -Zeit bleibt nicht nach dem Stromversand weiter

    • Stellen Sie sicher, dass die CR2032 Batterie ist richtig installiert.
    • Ersetzen Sie die Batterie, wenn sie niedrig oder tot ist.

Abschluss

Der DS1307 RTC -Modul bietet Genaue Echtzeitverfolgung Für Raspberry PI -Projekte, auch wenn sie abgeschaltet werden. Wenn Sie diesem Handbuch folgen, können Sie RTC -Funktionen in integrieren IoT-, Automatisierungs- und Datenprotokollierungsanwendungen. 🚀

Hinterlasse einen Kommentar

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.