20 fontnál több rendelés esetén ingyen szállítsák!

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 a Raspberry Pi számára, hogy kikapcsolt állapotban is nyomon kövesse az időt. Ez az útmutató végigvezeti Önt a beállítási folyamaton DS1307 RTC-modul a Raspberry Pi használatával a I2C protokoll.


Amire szükséged lesz

  1. Raspberry Pi
  2. DS1307 RTC modul
  3. CR2032 elem (a kikapcsolt állapotban történő időmegőrzéshez)
  4. Próbapanel és összekötő vezetékek
  5. Python telepítve a Raspberry Pi-on

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

A DS1307 I2C-n keresztül kommunikál, so we connect it to the Raspberry Pi’s I2C pins.

Csatlakozások (I2C mód)

DS1307 Pin Raspberry Pi tűs csatlakozó sáv (Pin)
VCC 3,3 V vagy 5 V (1-es vagy 2-es tű)
GND Földelés (6. érintkező)
SDA SDA (Pin 3, GPIO2)
SCL SCL (5. tű, GPIO3)

2. lépés: Az I2C engedélyezése a Raspberry Pi-n

  1. Nyissa meg a Raspberry Pi konfigurációs eszközt:
    sudo raspi-config
    
  2. Navigáljon ide: Interfész beállítások > I2C
  3. A Raspberry Pi újraindítása:
    sudo reboot
    
  4. Ellenőrizze, hogy a DS1307 észlelve az I2C buszon:
    sudo i2cdetect -y 1
    
    A DS1307 címen kell megjelennie 0x68.

3. lépés: A szükséges könyvtárak telepítése

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

4. lépés: Az idő beállítása és leolvasása a(z) DS1307

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

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

python
import time
import board
import busio
import adafruit_ds1307

# I2C busz és a DS1307
python
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307python
(i2c)

# Dátum és idő beállítása (Év, Hónap, Nap, Óra, Perc, Másodperc, Hét napja, Nyári időszámítás)
rtc.datetime = time.struct_time((2025, 1, 1, 12, 0, 0, 0, -1, -1))

print("RTC dátum és idő beállítva!")

python Python-kód az idő beolvasásához innen: DS1307

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

python
import time
import board
import busio
import adafruit_ds1307

# I2C busz és a DS1307
python
i2c = busio.I2C(board.SCL, board.SDA)
rtc = adafruit_ds1307.DS1307python
(i2c)

while True:
    current_time = rtc.datetime
    print(f"Dátum: {current_time.tm_year}-{current_time.tm_mon:02d}-{current_time.tm_mday:02d}")
    print(f"Idő: {current_time.tm_hour:02d}:{current_time.tm_min:02d}:{current_time.tm_sec:02d}")
    time.sleep(1)

5. lépés: Szinkronizálás DS1307 a Raspberry Pi rendszerórájával

A szinkronizáláshoz a DS1307 RTC idő a Raspberry Pi rendszeridejével:

  1. Olvassa el a DS1307 RTC idő
    sudo hwclock -r
    sudo hwclock -s
    
  2. Állítsa be a DS1307 RTC-idő a Raspberry Pi rendszeridőből:
    sudo hwclock -w
    

6. lépés: Alkalmazásai a DS1307 RTC modul

  1. Időmérés a kijelző nélküli (headless) Raspberry Pi eszközökön adatnaplózás projektek.
  2. Otthonautomatizálási rendszerek
  3. IoT projektek DS1307 részére időbélyegző adatok
  4. Időjárás-állomások hőmérsékleti és páratartalom-rekordok.

Hibaelhárítás

  1. DS1307 Nem észlelt (i2cdetect 0x68)

    • Gondoskodjon arról, hogy a SDA/SCL pinek helyesen vannak bekötve.
    • Ellenőrizze, hogy Az I2C engedélyezve van használatával sudo raspi-config.
  2. Helytelen dátum-/időértékek

    • Futtatás sudo hwclock -r a hardveres óra ellenőrzéséhez.
    • Az RTC óra visszaállítása a következővel: sudo hwclock -w.
  3. Az RTC-idő nem marad meg kikapcsolás után

    • Gondoskodjon arról, hogy a CR2032 elem telepítése sikeresen megtörtént.
    • Cserélje ki az elemet, ha lemerült vagy elhasználódott.

Összegzés

A DS1307 RTC modul biztosít pontos, valós idejű nyomon követés Raspberry Pi projektekhez, még kikapcsolt állapotban is. Ezt az útmutatót követve integrálhatja az RTC funkciót a IoT-, automatizálási és adatnaplózási alkalmazások. 🚀

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.

Hagyj egy megjegyzést