这 DS1307实时时钟(RTC)模块 允许覆盆子Pi关闭时间,即使将其关闭。本指南将带您设置 DS1307 RTC模块 使用覆盆子Pi使用 I2C协议.
你需要什么
- 覆盆子pi (任何具有GPIO和I2C支持的模型,例如PI 3,PI 4)
- DS1307 RTC模块
- CR2032电池 (用于关闭电源的时间)
- 面包板和跳线电线
- 安装了Python 在覆盆子pi上
步骤1:将DS1307接线到Raspberry Pi
这 DS1307通过I2C通信,因此我们将其连接到Raspberry Pi的I2C引脚。
连接(I2C模式)
DS1307针 | 覆盆子Pi Pin |
---|---|
VCC | 3.3V或5V(引脚1或2) |
gnd | 地面(引脚6) |
SDA | SDA(引脚3,GPIO2) |
SCL | SCL(引脚5,GPIO3) |
步骤2:在Raspberry Pi上启用I2C
- 打开Raspberry Pi配置工具:
sudo raspi-config
- 导航到 接口选项> I2C 并启用它。
- 重新启动覆盆子Pi:
sudo reboot
- 验证 检测到DS1307 在I2C公共汽车上:
这 DS1307应在地址出现sudo i2cdetect -y 1
0x68
.
步骤3:安装所需库
- 更新您的Raspberry Pi的包装列表:
sudo apt update && sudo apt upgrade -y
- 安装所需的I2C工具和Python库:
sudo apt install -y i2c-tools python3-smbus python3-pip pip3 install adafruit-circuitpython-ds1307
步骤4:在DS1307上设置和阅读时间
Python代码设置日期和时间
一次运行此脚本以设置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!")
python代码以读取DS1307的时间
设置时间后,使用此脚本读取当前日期和时间。
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)
步骤5:将DS1307与Raspberry Pi系统时钟同步
同步 DS1307 RTC时间 随着覆盆子PI系统的时间:
-
阅读DS1307 RTC时间 并将其设置为系统时间:
sudo hwclock -r sudo hwclock -s
-
从Raspberry Pi系统时间设置DS1307 RTC时间:
sudo hwclock -w
步骤6:DS1307 RTC模块的应用
- 保留无头覆盆子PI设备上的时间 - 有用 数据记录 项目。
- 家庭自动化系统 - 即使在功率损失后,请确保准确的计划事件。
- 物联网项目 - 使用DS1307用于 时间戳数据 在断开的环境中。
- 气象站 - 存储准确的时间戳 温度和湿度记录.
故障排除
-
DS1307未检测到(
i2cdetect
不显示0x68
)- 确保 SDA/SCL引脚 正确连接。
- 验证这一点 I2C已启用 使用
sudo raspi-config
.
-
不正确的日期/时间读数
- 跑步
sudo hwclock -r
检查硬件时钟。 - 使用RTC时钟重置
sudo hwclock -w
.
- 跑步
-
RTC时间不持续下电之后
- 确保 CR2032电池 正确安装。
- 如果电池低或死亡,请更换电池。
结论
这 DS1307 RTC模块 提供 准确的实时跟踪 对于Raspberry Pi项目,即使关闭了电源。通过遵循本指南,您可以将RTC功能集成到 物联网,自动化和数据记录应用程序. 🚀