Se DS1307 Reaaliaikainen kello (RTC) -moduuli Mahdollistaa Raspberry Pi seurata aikaa, vaikka se olisi virta. Tämä opas opastaa sinut läpi perustamisen DS1307 RTC -moduuli Raspberry Pi I2C -protokolla.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO- ja I2C -tuki, esim. Pi 3, pi 4)
- DS1307 RTC -moduuli
- CR2032 akku (Ajan ylläpitämistä varten, kun se virtaa pois)
- Leipälevy- ja hyppyjohdot
- Python asennettu Raspberry Pi
Vaihe 1: DS1307: n johdotus Raspberry Pi: hen
Se DS1307 kommunikoi I2C: n kautta, joten yhdistämme sen Raspberry Pi: n I2C -nastaihin.
Yhteydet (I2C -tila)
DS1307 -nasta | Raspberry Pi -tappi |
---|---|
VCC | 3,3 V tai 5 V (nasta 1 tai 2) |
Hölynpöly | Maa (nasta 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (nasta 5, GPIO3) |
Vaihe 2: Ota I2c käyttöön Raspberry Pi
- Avaa Raspberry Pi -määritystyökalu:
sudo raspi-config
- Siirtyä jhk Käyttöliittymävaihtoehdot> I2C ja ota se käyttöön.
- Käynnistä Raspberry Pi uudelleen:
sudo reboot
- Varmista, että DS1307 havaitaan I2C -bussissa:
Se DS1307: n tulisi näkyä osoitteessasudo i2cdetect -y 1
0x68
.
Vaihe 3: Asenna vaadittavat kirjastot
- Päivitä Raspberry Pi: n pakettiluettelo:
sudo apt update && sudo apt upgrade -y
- Asenna tarvittavat I2C -työkalut ja Python -kirjastot:
sudo apt install -y i2c-tools python3-smbus python3-pip pip3 install adafruit-circuitpython-ds1307
Vaihe 4: DS1307: n asettaminen ja lukeminen
Python -koodi asettaa päivämäärä ja aika
Suorita tämä skripti kerran asettaaksesi RTC -kello.
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 -koodi lukemaan aikaa DS1307: stä
Ajan asettamisen jälkeen tämän komentosarjan lukeminen nykyinen päivämäärä ja aika.
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)
Vaihe 5: DS1307: n synkronointi Raspberry Pi System Clock -kellon kanssa
Synkronoida DS1307 RTC -aika Vadelma Pi -järjestelmän kanssa:
-
Lue DS1307 RTC -aika ja aseta se järjestelmäaikana:
sudo hwclock -r sudo hwclock -s
-
Aseta DS1307 RTC -aika Raspberry Pi -järjestelmän ajasta:
sudo hwclock -w
Vaihe 6: DS1307 RTC -moduulin sovellukset
- Pidä aikaa päättömillä Raspberry Pi -laitteilla - hyödyllinen tietojen kirjaus projektit.
- Kodin automaatiojärjestelmät - Varmista tarkkoja aikataulun mukaisia tapahtumia myös virranhäviön jälkeen.
- Internet -projektit - Käytä DS1307: tä aikaleiman tiedot irrotetuissa ympäristöissä.
- Sääasemat - Säilytä tarkkoja aikaleimoja Lämpötila- ja kosteustiedot.
Vianetsintä
-
DS1307: tä ei havaittu (
i2cdetect
ei näy0x68
)- Varmistaa SDA/SCL -nastat ovat oikein johdotettuja.
- Varmistaa, että I2C on käytössä käyttäminen
sudo raspi-config
.
-
Virheelliset päivämäärä-/aikatiedot
- Juoksua
sudo hwclock -r
Tarkista laitteistokello. - Nollaa RTC -kello käyttämällä
sudo hwclock -w
.
- Juoksua
-
RTC -aika ei pysy voiman jälkeen
- Varmistaa CR2032 akku on asennettu oikein.
- Vaihda akku, jos se on matala tai kuollut.
Johtopäätös
Se DS1307 RTC -moduuli tarjoaa tarkka reaaliaikainen seuranta Raspberry Pi -projekteihin, jopa silloin, kun se poistuu. Seuraamalla tätä opasta, voit integroida RTC -toiminnallisuuden IoT-, automaatio- ja tietojen kirjaussovellukset. 🚀