Gamit ang DS1307 RTC kasama ang Raspberry Pi

Using the DS1307 RTC with the Raspberry Pi

Ang DS1307 Module ng DS1307 Real-Time Clock (RTC) Pinapayagan ang Raspberry Pi na subaybayan ang oras kahit na ito ay pinapagana. Ang gabay na ito ay lalakad sa iyo sa pamamagitan ng pag -set up ng DS1307 RTC Module Gamit ang Raspberry Pi gamit ang I2C Protocol.


Ano ang kakailanganin mo

  1. Raspberry Pi (Anumang modelo na may suporta sa GPIO at I2C, hal., PI 3, PI 4)
  2. DS1307 RTC Module
  3. Baterya ng CR2032 (para sa pagpapanatili ng oras kapag pinapagana)
  4. Mga wire ng tinapay at jumper
  5. Naka -install ang Python Sa Raspberry Pi

Hakbang 1: Ang mga kable ng DS1307 sa Raspberry Pi

Ang Ang DS1307 ay nakikipag -usap sa pamamagitan ng I2C, kaya ikinonekta namin ito sa mga pin ng Raspberry Pi's I2C.

Mga Koneksyon (I2C Mode)

DS1307 Pin Raspberry Pi Pin
VCC 3.3V o 5V (pin 1 o 2)
Gnd Ground (pin 6)
SDA SDA (PIN 3, GPIO2)
SCL SCL (Pin 5, GPIO3)

Hakbang 2: Paganahin ang I2C sa Raspberry Pi

  1. Buksan ang tool ng pagsasaayos ng Raspberry Pi:
    sudo raspi-config
    
  2. Mag -navigate sa Mga pagpipilian sa interface> i2c at paganahin ito.
  3. I -reboot ang Raspberry Pi:
    sudo reboot
    
  4. I -verify na ang Ang DS1307 ay napansin sa bus ng I2C:
    sudo i2cdetect -y 1
    
    Ang Ang DS1307 ay dapat lumitaw sa address 0x68.

Hakbang 3: I -install ang mga kinakailangang aklatan

  1. I -update ang listahan ng package ng Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. I -install ang kinakailangang mga tool ng I2C at mga aklatan ng Python:
    sudo apt install -y i2c-tools python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ds1307
    

Hakbang 4: Pagtatakda at Oras ng Pagbasa sa DS1307

Python code upang itakda ang petsa at oras

Patakbuhin ang script na ito nang isang beses upang itakda ang RTC orasan.

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!")

Python code upang mabasa ang oras mula sa DS1307

Matapos itakda ang oras, gamitin ang script na ito upang mabasa ang kasalukuyang petsa at oras.

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)

Hakbang 5: Pag -sync ng DS1307 kasama ang Raspberry Pi System Clock

Upang i -sync ang DS1307 oras ng RTC Gamit ang oras ng Raspberry Pi System:

  1. Basahin ang oras ng DS1307 RTC at itakda ito bilang oras ng system:
    sudo hwclock -r
    sudo hwclock -s
    
  2. Itakda ang oras ng DS1307 RTC mula sa oras ng Raspberry Pi System:
    sudo hwclock -w
    

Hakbang 6: Mga Aplikasyon ng DS1307 RTC Module

  1. Pagpapanatiling oras sa mga aparato na walang ulo na Raspberry Pi - kapaki -pakinabang para sa Pag -log ng Data Mga proyekto.
  2. Home Automation Systems - Tiyakin ang tumpak na naka -iskedyul na mga kaganapan kahit na matapos ang pagkawala ng kuryente.
  3. Mga proyekto ng IoT - Gumamit ng DS1307 para sa data ng timestamping sa mga naka -disconnect na kapaligiran.
  4. Mga istasyon ng panahon - Mag -imbak ng tumpak na mga timestamp para sa Mga talaan ng temperatura at kahalumigmigan.

Pag -aayos

  1. Hindi napansin ang DS1307 (i2cdetect hindi nagpapakita 0x68)

    • Tiyakin ang SDA/SCL pin ay wastong wired.
    • I -verify na Pinagana ang I2C Paggamit sudo raspi-config.
  2. Maling pagbabasa ng petsa/oras

    • Tumakbo sudo hwclock -r Upang suriin ang orasan ng hardware.
    • I -reset ang RTC Clock gamit sudo hwclock -w.
  3. Ang oras ng RTC ay hindi nagpapatuloy pagkatapos ng kapangyarihan

    • Tiyakin ang Baterya ng CR2032 ay naka -install nang tama.
    • Palitan ang baterya kung ito ay mababa o patay.

Konklusyon

Ang DS1307 RTC Module nagbibigay Tumpak na pagsubaybay sa real-time Para sa mga proyekto ng Raspberry Pi, kahit na pinalakas. Sa pamamagitan ng pagsunod sa gabay na ito, maaari mong pagsamahin ang pag -andar ng RTC sa IoT, automation, at mga application ng pag -log ng data. 🚀

Mag -iwan ng komento

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.