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
- Raspberry Pi (Jedes Modell mit GPIO- und I2C -Unterstützung, z. B. PI 3, PI 4)
- DS1307 RTC -Modul
- CR2032 Batterie (für die Aufrechterhaltung der Zeit, wenn sie abgeschoben werden)
- Breadboard- und Jumper -Drähte
- 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
- Öffnen Sie das Raspberry PI -Konfigurationstool:
sudo raspi-config
- Navigieren zu Schnittstellenoptionen> i2c und es aktivieren.
- Starten Sie den Raspberry Pi neu:
sudo reboot
- Überprüfen Sie, dass die DS1307 wird erkannt Im I2C -Bus:
Der DS1307 sollte unter der Adresse erscheinensudo i2cdetect -y 1
0x68
.
Schritt 3: Installieren Sie die erforderlichen Bibliotheken
- Aktualisieren Sie die Paketliste Ihres Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- 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:
-
Lesen Sie die DS1307 RTC -Zeit und setzen Sie es als Systemzeit:
sudo hwclock -r sudo hwclock -s
-
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
- Die Zeit auf kopflosen Himbeer -PI -Geräten behalten - nützlich für Datenprotokollierung Projekte.
- Heimautomatisierungssysteme - Gewährleisten Sie genaue geplante Ereignisse auch nach dem Stromverlust.
- IoT -Projekte - Verwenden Sie den DS1307 für Zeitstempeldaten In unzähligen Umgebungen.
- Wetterstationen - Genaue Zeitstempel aufbewahren Temperatur- und Luftfeuchtigkeitsaufzeichnungen.
Fehlerbehebung
-
DS1307 nicht erkannt (
i2cdetect
zeigt sich nicht0x68
)- Stellen Sie sicher, dass die SDA/SCL -Stifte sind richtig verkabelt.
- Überprüfen Sie das I2C ist aktiviert Verwendung
sudo raspi-config
.
-
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
.
- Laufen
-
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. 🚀