Learn the working of DS3231 Real Time Clock in Raspberry Pi. Raspberry Pi only shows the correct time when it is connected to the internet as it doesn’t have battery-powered RTC. DS3231 RTC module is used to provide real-time to raspberry even when it is not connected to the internet. So, let’s start.
Operating Voltage: 3.3 – 5V
Current: 15mA
Accuracy: ±2ppm at 0°C to +40°C and ±3.5ppm at -40°C to +85°C
Digital Temp Sensor Output: ±3°C Accuracy
Alarms: Two times of a day
Battery Backup for continuous timekeeping
Step 1: Required Components
DS3231 RTC Module x 1
Raspberry Pi x 1
Jumper Wires
Step 2: Circuit Time
Make the circuit as per the given diagram. Six pins are available in the RTC module. We will be using only four pins. Connect VCC to 3.3V and GND pin to Ground of Raspberry Pi. Now, connect the SDA pin to the SDA pin of Raspberry Pi (GPIO3) and connect the SCL pin to the SCL pin of Raspberry Pi (GPIO2).
Step 3: Code Time
Follow the below-given steps to add DS3231 Real Time Clock in Raspberry Pi.
-
- Open /boot/config.txt by typing the following in a terminal
sudo nano /boot/config.txt
- Edit the file to add device tree overlay for RTC.
dtoverlay=i2c-rtc,ds1307
- Now, reboot your Raspberry Pi and detect the i2c device.
sudo reboot
sudo i2cdetect -y 1
You should see the UU at 68. - Disable the fake hardware clock
sudo apt-get -y remove fake-hwclock
sudo update-rc.d -f fake-hwclock remove
- To start the original hardware clock, comment following lines in a file located at:
sudo nano /lib/udev/hwclock-set
The to comment are:
#if [ -e /run/systemd/system ] ; then
# exit 0
#fi - Now, connect your Raspberry Pi to the internet and sync the proper time according to your time zone.
- Use the following command to Write time from Raspberry Pi to the RTC module.
sudo hwclock -w
- Open /boot/config.txt by typing the following in a terminal
- Use the following command to Read time from RTC.
sudo hwclock -r
Step 4: Run code to Raspberry Pi
Make the circuit as per the given diagram and perform instructions given in Code Time. By performing write command RTC will be initialized with the time given by Raspberry Pi. To get the time to RTC use commandsudo hwclock -r
.
Learn basic hardware information of Raspberry Pi 3.