A 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
- Raspberry Pi
- DS1307 RTC modul
- CR2032 elem (a kikapcsolt állapotban történő időmegőrzéshez)
- Próbapanel és összekötő vezetékek
- 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
- Nyissa meg a Raspberry Pi konfigurációs eszközt:
sudo raspi-config - Navigáljon ide: Interfész beállítások > I2C
- A Raspberry Pi újraindítása:
sudo reboot - Ellenőrizze, hogy a DS1307 észlelve az I2C buszon:
A DS1307 címen kell megjelenniesudo i2cdetect -y 10x68.
3. lépés: A szükséges könyvtárak telepítése
-
sudo apt update && sudo apt upgrade -y - 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:
-
Olvassa el a DS1307 RTC idő
sudo hwclock -r sudo hwclock -s -
Á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
- Időmérés a kijelző nélküli (headless) Raspberry Pi eszközökön adatnaplózás projektek.
- Otthonautomatizálási rendszerek
- IoT projektek DS1307 részére időbélyegző adatok
- Időjárás-állomások hőmérsékleti és páratartalom-rekordok.
Hibaelhárítás
-
DS1307 Nem észlelt (
i2cdetect0x68)- 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.
-
Helytelen dátum-/időértékek
- Futtatás
sudo hwclock -ra hardveres óra ellenőrzéséhez. - Az RTC óra visszaállítása a következővel:
sudo hwclock -w.
- Futtatás
-
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. 🚀





