A DS1307 RTC használatával a Raspberry PI -vel

Using the DS1307 RTC with the Raspberry Pi

DS1307 valós idejű óra (RTC) modul Lehetővé teszi, hogy a Raspberry Pi nyomon kövesse az időt, még akkor is, ha ki van kapcsolva. Ez az útmutató végigvezeti a DS1307 RTC modul a Raspberry Pi segítségével a I2C protokoll.


Mire lesz szüksége

  1. Málna PI (Bármely modell GPIO és I2C támogatással, például PI 3, PI 4)
  2. DS1307 RTC modul
  3. CR2032 akkumulátor (az idő fenntartásáért, amikor kikapcsolják)
  4. Kenyérlemez és jumper vezetékek
  5. Python telepítve a málna pi -n

1. lépés: A DS1307 huzalozása a Raspberry PI -hez

A A DS1307 az I2C -n keresztül kommunikál, tehát összekapcsoljuk a Raspberry Pi I2C csapokkal.

Csatlakozások (I2C mód)

DS1307 PIN Málna pi tű
VCC 3,3 V vagy 5 V (1. vagy 2. érintkező)
GND Föld (6. érintkező)
SDA SDA (3. érintkező, GPIO2)
SCL SCL (5. érintkező, GPIO3)

2. lépés: Engedélyezze az I2C -t a Raspberry PI -n

  1. Nyissa meg a Raspberry PI konfigurációs eszközt:
    sudo raspi-config
    
  2. Navigál Interfész opciók> i2c és engedélyezze.
  3. Indítsa újra a Raspberry Pi -t:
    sudo reboot
    
  4. Ellenőrizze, hogy a DS1307 észlelhető Az I2C buszon:
    sudo i2cdetect -y 1
    
    A A DS1307 címen megjelenik a címen 0x68.

3. lépés: Telepítse a szükséges könyvtárakat

  1. Frissítse a Raspberry Pi csomaglistáját:
    sudo apt update && sudo apt upgrade -y
    
  2. Telepítse a szükséges I2C eszközöket és a Python könyvtárakat:
    sudo apt install -y i2c-tools python3-smbus python3-pip
    pip3 install adafruit-circuitpython-ds1307
    

4. lépés: A DS1307 beállítása és olvasási ideje

Python kód a dátum és az idő beállításához

Futtassa ezt a szkriptet egyszer az RTC óra beállításához.

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 kód, hogy elolvassa az időt a DS1307 -ből

Az idő beállítása után használja ezt a szkriptet az aktuális dátum és idő elolvasásához.

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)

5. lépés: A DS1307 szinkronizálása a Raspberry Pi System órával

Szinkronizálni a DS1307 RTC idő A Raspberry Pi rendszer időjével:

  1. Olvassa el a DS1307 RTC időt és állítsa be a rendszeridőként:
    sudo hwclock -r
    sudo hwclock -s
    
  2. Állítsa be a DS1307 RTC időt a Raspberry Pi rendszer időpontjáról:
    sudo hwclock -w
    

6. lépés: A DS1307 RTC modul alkalmazásai

  1. Tartsa az időt a fej nélküli málna PI eszközökön - Hasznos a adatnaplózás projektek.
  2. Otthoni automatizálási rendszerek - Biztosítsa a pontos ütemezett eseményeket még az energiavesztés után is.
  3. IOT projektek - Használja a DS1307 -et időbélyegző adatok leválasztott környezetben.
  4. Időjárási állomások - Tárolja a pontos időbélyegeket hőmérsékleti és páratartalom nyilvántartása.

Hibaelhárítás

  1. A DS1307 -et nem észlelték (i2cdetect nem mutat 0x68)

    • Gondoskodjon a SDA/SCL csapok helyesen vezetékes.
    • Ellenőrizze ezt Az I2C engedélyezve van felhasználás sudo raspi-config.
  2. Helytelen dátum/időolvasások

    • Fut sudo hwclock -r A hardver óra ellenőrzéséhez.
    • Állítsa vissza az RTC órát sudo hwclock -w.
  3. Az RTC idő nem tart fenn a kikapcsolás után

    • Gondoskodjon a CR2032 akkumulátor helyesen van telepítve.
    • Cserélje ki az akkumulátort, ha alacsony vagy halott.

Következtetés

A DS1307 RTC modul biztosít pontos valós idejű követés A Raspberry PI projektekhez, még akkor is, ha kikapcsolják. Az útmutató követésével integrálhatja az RTC funkcionalitást IoT, automatizálás és adatnaplózási alkalmazások. 🚀

Hagyj egy megjegyzést

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.