由于 云菜地 项目的需要,我淘宝购入了一个树莓派RTC时钟模块,用于为树莓派提供断电,断网记时功能。即每次给树莓派上电的时候,树莓派自动从RTC模块读取时间并同步到系统时间。
因为,该模块使用的是I2C总线,所以需要手动打开它,但是我记得之前使用OLED屏幕的时候已经打开了,这里还是再去看一下吧。
0、开启I2C
pi@raspberrypi:~ $ sudo raspi-config
选择 3 Interface Options
选择 P5 I2C
选择Yes 即可
至此,I2C模块成功开启。
1、添加对 DS1307 的支持
pi@raspberrypi:~ $ sudo nano /boot/config.txt #树莓派的启动配置文件
在该配置文件末尾追加如下内容
dtoverlay=i2c-rtc,ds1307
重启树莓派
pi@raspberrypi:~ $ reboot
2、树莓派与RTC之间互相同步
pi@raspberrypi:~ $ date #显示当前树莓派的时间
pi@raspberrypi:~ $ sudo hwclock -w #把树莓派的时间写入到 DS1307
pi@raspberrypi:~ $ sudo hwclock -r #读取DS1307的时间
3、设置开机自启
pi@raspberrypi:~ $ sudo nano /etc/rc.local
在 exit 0 之前写入如下内容
hwclock -s
2022-04-14补充:
经过测试不需要手动将同步加入开机执行,如果加入出现如下错误:
不加,也可以同步!
4、测试
首先关闭网络
pi@raspberrypi:~ $ sudo ifconfig wlan0 down #关闭 wlan0
直接关机
pi@raspberrypi:~ $ shutdown -h now
断电,然后重新上电,树莓派自启观察结果
发现自动连接上了,直接拔掉路由器电源继续上电!
ok没有问题了!