Itu Modul DS1307 Real-Time Clock (RTC) Memungkinkan Raspberry Pi untuk melacak waktu bahkan saat dimatikan. Panduan ini akan memandu Anda dengan menyiapkan DS1307 Modul RTC dengan raspberry pi menggunakan Protokol I2C.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan GPIO dan I2C, mis., Pi 3, pi 4)
- DS1307 Modul RTC
- Baterai CR2032 (untuk mempertahankan waktu saat dimatikan)
- Papan tempat memotong papan dan kabel jumper
- Python terpasang di raspberry pi
Langkah 1: Pengkabelan DS1307 ke Raspberry Pi
Itu DS1307 berkomunikasi melalui I2C, jadi kami menghubungkannya ke pin i2c Raspberry Pi.
Koneksi (mode I2C)
Pin DS1307 | Raspberry Pi Pin |
---|---|
Vcc | 3.3V atau 5V (pin 1 atau 2) |
Gnd | Ground (pin 6) |
SDA | SDA (Pin 3, GPIO2) |
Scl | SCL (pin 5, gpio3) |
Langkah 2: Aktifkan I2C di Raspberry Pi
- Buka alat konfigurasi Raspberry Pi:
sudo raspi-config
- Navigasikan ke Opsi Antarmuka> I2C dan mengaktifkannya.
- Reboot Raspberry Pi:
sudo reboot
- Pastikan itu DS1307 terdeteksi di bus I2C:
Itu DS1307 akan muncul di alamatsudo i2cdetect -y 1
0x68
.
Langkah 3: Instal perpustakaan yang diperlukan
- Perbarui Daftar Paket Raspberry Pi Anda:
sudo apt update && sudo apt upgrade -y
- Instal I2C Tools dan Python Libraries yang diperlukan:
sudo apt install -y i2c-tools python3-smbus python3-pip pip3 install adafruit-circuitpython-ds1307
Langkah 4: Mengatur dan Membaca Waktu di DS1307
Kode Python untuk mengatur tanggal dan waktu
Jalankan skrip ini sekali untuk mengatur jam 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!")
Kode Python untuk membaca waktu dari DS1307
Setelah mengatur waktu, gunakan skrip ini untuk membaca tanggal dan waktu saat ini.
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)
Langkah 5: Menyinkronkan DS1307 dengan jam sistem Raspberry Pi
Untuk menyinkronkan Waktu RTC DS1307 Dengan waktu sistem Raspberry Pi:
-
Baca Waktu RTC DS1307 dan atur sebagai waktu sistem:
sudo hwclock -r sudo hwclock -s
-
Atur waktu RTC DS1307 dari waktu sistem Raspberry Pi:
sudo hwclock -w
Langkah 6: Aplikasi modul DS1307 RTC
- Menjaga waktu di perangkat raspberry pi tanpa kepala - berguna untuk Pencatatan Data proyek.
- Sistem Otomatisasi Rumah - Pastikan acara terjadwal yang akurat bahkan setelah kehilangan daya.
- Proyek IoT - Gunakan DS1307 untuk Data Cap Timest di lingkungan yang terputus.
- Stasiun cuaca - Simpan cap waktu yang akurat untuk catatan suhu dan kelembaban.
Pemecahan masalah
-
DS1307 tidak terdeteksi (
i2cdetect
tidak menunjukkan0x68
)- Pastikan Pin SDA/SCL terhubung dengan benar.
- Pastikan itu I2C diaktifkan menggunakan
sudo raspi-config
.
-
Bacaan Tanggal/Waktu Salah
- Berlari
sudo hwclock -r
untuk memeriksa jam perangkat keras. - Setel ulang jam RTC menggunakan
sudo hwclock -w
.
- Berlari
-
Waktu RTC tidak bertahan setelah dimatikan
- Pastikan Baterai CR2032 diinstal dengan benar.
- Ganti baterai jika rendah atau mati.
Kesimpulan
Itu DS1307 Modul RTC menyediakan Pelacakan real-time yang akurat Untuk proyek Raspberry PI, bahkan saat dimatikan. Dengan mengikuti panduan ini, Anda dapat mengintegrasikan fungsionalitas RTC ke dalam Aplikasi IoT, Otomasi, dan Data. 🚀