树莓派下 DS3231 时钟模块的配置(I2C接口)

下面介绍基于DS3231的RTC时钟模块的使用,这个模块自带纽扣电池,可以在树莓派掉电后系统时间能继续保持。

一、启用树莓派的I2C功能

sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools sudo raspi-config

按照下面的步骤设置开启 I2C 功能。

重启树莓派。

sudo reboot

添加 I2C 模块

sudo nano /etc/modules

添加以下两行内容:

i2c-bcm2708 i2c-dev

将DS3231的RTC时钟模块通过GPIO连接到树莓派。

二、安装 I2C 工具

sudo apt-get update

sudo apt-get install i2c-tools python-smbus

sudo reboot

重启后通过刚才安装的i2c-tools对 I2C 设备进行探测,输入以下命令,得到如下结果,说明检测到一个地址为0x68的I2C设备就是板上的DS3231。

sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: — — — — — — — — — — — — — 10: — — — — — — — — — — — — — — — — 20: — — — — — — — — — — — — — — — — 30: — — — — — — — — — — — — — — — — 40: — — — — — — — — — — — — — — — — 50: — — — — — — — — — — — — — — — — 60: — — — — — — — — 68 — — — — — — — 70: — — — — — — — —

三、测试时钟模块

下面我们通过i2c-tools来测试下DS3231的功能,并将DS3231这个掉电不丢失的时钟用于树莓派系统的时钟。

下面的测试必须在root权限下测试。

=== 如何启用 root 账户的分割线 开始===

debian里root账户默认没有密码,但账户锁定。

当需要root权限时,由默认账户经由sudo执行,Raspberry pi 系统中的Raspbian

默认用户是pi 密码为raspberry

重新开启root账号,可由pi用户登录后,在命令行下执行

sudo passwd root

执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后执行

sudo passwd –unlock root

这样就可以解锁root账户了。

现在就有两个账户 pi@raspberrypi 和 root@raspberrypi 两个账户可以来回切换:

在pi@raspberrypi 输入 su 然后输入刚才设置的密码进入 root 账户

在root@raspberrypi 输入su pi 进入 pi 账户

=== 如何启用 root 账户的分割线 结束===

su Password: modprobe i2c-dev echo ds3231 0x68 > sudo tee /sys/class/i2c-adapter/i2c-1/new_device hwclock -r Sat Jan 1 00:00:12 2000 -0.120717 seconds

将系统时钟设定为当前时间,然后将系统时钟写入到DS3231硬件时钟里面

date 062120352014.00 备注:6月21日 20点35分 2014年 Sat Jun 21 20:35:00 UTC 2014 hwclock -w date Sat Jun 21 20:35:21 UTC 2014

四、设置开机自动读取时间

编辑启动文件

sudo nano /etc/rc.local

将以下内容加入“exit 0”行之前

sudo modprobe i2c-dev echo ds3231 0x68 > sudo tee /sys/class/i2c-adapter/i2c-1/new_device hwclock -r hwclock -s

ctrl+x退出

过几分钟拔掉网线,重启树莓派,输入“date”看看时间是否正确。