THE מודול DS1307 בזמן אמת (RTC) מאפשר ל- Raspberry Pi לעקוב אחר הזמן גם כאשר הוא מכבה. מדריך זה יעבור אותך בהגדרת מודול RTC DS1307 עם ה- Raspberry Pi באמצעות ה- פרוטוקול I2C.
מה תצטרך
- Raspberry Pi (כל דגם עם תמיכה ב- GPIO ו- I2C, למשל, pi 3, pi 4)
- מודול RTC DS1307
- CR2032 סוללה (לשמירה על זמן כאשר כבוי)
- חוטי לחם וגשר
- פיתון מותקן על ה- Raspberry Pi
שלב 1: חיווט DS1307 ל- Raspberry Pi
THE DS1307 מתקשר דרך i2cאז אנו מחברים אותו לסיכות ה- i2c של Raspberry Pi.
חיבורים (מצב I2C)
PIN DS1307 | סיכת פטל pi |
---|---|
VCC | 3.3V או 5V (סיכה 1 או 2) |
GND | קרקע (סיכה 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (סיכה 5, GPIO3) |
שלב 2: הפעל את i2c ב- Raspberry Pi
- פתח את כלי התצורה של Raspberry Pi:
sudo raspi-config
- נווט אל אפשרויות ממשק> i2c ולאפשר את זה.
- אתחל מחדש את ה- Raspberry Pi:
sudo reboot
- ודא ש- DS1307 מתגלה באוטובוס i2c:
THE DS1307 אמור להופיע בכתובתsudo i2cdetect -y 1
0x68
.
שלב 3: התקן ספריות נדרשות
- עדכן את רשימת החבילות של Raspberry Pi שלך:
sudo apt update && sudo apt upgrade -y
- התקן את כלי ה- I2C והספריות הפיתון הנדרשים:
sudo apt install -y i2c-tools python3-smbus python3-pip pip3 install adafruit-circuitpython-ds1307
שלב 4: הגדרת זמן קריאה ב- DS1307
קוד פייתון לקביעת התאריך והשעה
הפעל את סקריפט זה פעם אחת כדי להגדיר את שעון ה- RTC.
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!")
קוד פייתון לקריאת זמן מ- DS1307
לאחר קביעת השעה, השתמש בתסריט זה כדי לקרוא את התאריך והשעה הנוכחיים.
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: סנכרון DS1307 עם שעון מערכת Raspberry Pi
לסנכרן את זמן RTC DS1307 עם זמן מערכת ה- Raspberry Pi:
-
קרא את זמן ה- DS1307 RTC ולהגדיר אותו כזמן המערכת:
sudo hwclock -r sudo hwclock -s
-
קבע את זמן ה- DS1307 RTC משעת מערכת Raspberry Pi:
sudo hwclock -w
שלב 6: יישומים של מודול RTC DS1307
- שמירה על זמן במכשירי פטל PI ללא ראש - שימושי ל רישום נתונים פרויקטים.
- מערכות אוטומציה ביתיות - להבטיח אירועים מתוזמנים מדויקים גם לאחר הפסד חשמל.
- פרויקטים של IoT - השתמש ב- DS1307 עבור נתוני חותמת זמן בסביבות מנותקות.
- תחנות מזג אוויר - אחסן חותמות זמן מדויקות עבור רשומות טמפרטורה ולחות.
פתרון בעיות
-
DS1307 לא זוהה (
i2cdetect
לא מראה0x68
)- להבטיח את סיכות SDA/SCL מחווטות נכון.
- אמת את זה I2C מופעל באמצעות
sudo raspi-config
.
-
קריאות תאריך/זמן שגוי
- לָרוּץ
sudo hwclock -r
כדי לבדוק את שעון החומרה. - אפס את שעון ה- RTC באמצעות
sudo hwclock -w
.
- לָרוּץ
-
זמן RTC לא מתמיד לאחר כיבוי
- להבטיח את CR2032 סוללה מותקן כראוי.
- החלף את הסוללה אם היא נמוכה או מתה.
מַסְקָנָה
THE מודול RTC DS1307 מספק מעקב מדויק בזמן אמת לפרויקטים של Raspberry Pi, גם כאשר הם כבויים. על ידי ביצוע מדריך זה, באפשרותך לשלב פונקציונליות של RTC ב יישומי IoT, אוטומציה ויישומי רישום נתונים. 🚀