【物联网】基于树莓派的物联网开发【9】——树莓派修正系统时间五种解决方案

使用背景:

由于树莓派没有电池,断电后无法保存时间。

场景介绍:

树莓派新装系统后,往往系统时间与实际不符,故此我们需要校正树莓派系统时间与本地一致!

问题现状

打开终端输入命令:date,可以看到系统的日期时间,会比实际慢8小时

校正树莓派时间五种解决方案

方案1、立即校准时间

使用 sudo ntpdate cn.pool.ntp.org 命令同步网络时间。

方案2、强制设置时间

使用 sudo date --s "YYYY-MM-DD HH:MM:SS" 命令

(例如:sudo date --s "2025-07-15 14:00")

方案3、修改时区,同步时间

(1)设置时区,终端输入命令:sudo dpkg-reconfigure tzdata

选择Asia

下拉选择Shanghai

ok,时间校验成功。

方案4:启用 NTP 服务‌

1、安装 ntpdate 工具

控制台输入下面命令,进行安装

bash 复制代码
sudo apt-get update
sudo apt-get install ntpdate

2、配置 /etc/ntp.conf

控制台输入下面命令

bash 复制代码
sudo nano /etc/ntp.conf

在文件中添加或修改服务器列表,例如:

bash 复制代码
server ntp1.aliyun.com
server ntp2.aliyun.com
server ntp3.a.shifen.com

保存并关闭文件。注意,对于 ntpdate,通常不需要修改 /etc/ntp.conf 文件,因为你可以直接在命令行中指定服务器。

3. 使用 ntpdate 同步时间

直接使用 ntpdate 命令同步时间到指定的 NTP 服务器。例如,使用阿里云的 NTP 服务器:

sudo ntpdate ntp1.aliyun.com

4、重启服务后即可自动同步

bash 复制代码
sudo systemctl start ntp
sudo systemctl enable ntp

方案5:外接实时时钟(RTC)‌

外接 DS1302 等 RTC 模块,通过 WiringPi 驱动实现断网环境下时间保持。需注意 VCC 与 DAT 引脚间加 10KΩ 上拉电阻,并确保使用 3.3V 供电。 ‌