3.28. שעון זמן-אמת

שעון המילי-שניות של המיקרו-בקר – זה שמאחורי time.ticks_ms() ותת-מערכת הטיימרים – סופר את הזמן שחלף מאז האתחול. שעון זמן-האמת (RTC) הוא חומרה נפרדת שעוקבת אחר זמן שעון-הקיר – שנה, חודש, יום, שעה, דקה, שנייה – וממשיך לפעול לאורך resets ועדכוני קושחה. במצלמות עם סוללת גיבוי המחווטת לאספקת ה-RTC, הוא שורד גם איבוד חשמל מלא.

ה-RTC הוא מה שמצלמה פרוסה משתמשת בו כדי:

  • להטביע חותמת זמן על רשומות יומן ותמונות שמורות עם תאריך אמיתי.

  • לקצב משימות ארוכות-טווח שלא אמורות לסטות לאורך שבועות או חודשים.

3.28.1. המחלקה machine.RTC

machine.RTC הוא singleton – RTC אחד לכל מצלמה, ללא צורך ב-id:

from machine import RTC

rtc = RTC()

התאריך והשעה הנוכחיים נמצאים ב-datetime(). קריאה לה ללא ארגומנטים מחזירה tuple בן 8 איברים:

>>> rtc.datetime()
(2026, 5, 27, 4, 14, 30, 15, 0)

השדות הם (year, month, day, weekday, hour, minute, second, subseconds). כדי להגדיר את השעון, העבירו בחזרה tuple בן 8 איברים באותו מבנה:

rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))

המצלמה ממשיכה לספור מאותה נקודה. ב-reset רך הזמן ממשיך ללא הפרעה; במחזור חשמל מלא ה-RTC חוזר לזמן ברירת המחדל שלו אלא אם סוללת גיבוי שומרת עליו מופעל.

3.28.2. מתי להגדיר את ה-RTC

ל-RTC אין דרך מובנית לדעת מה השעה באתחול. שלוש תבניות נפוצות מגדירות אותו:

  • ממקור זמן ברשת. מצלמות שעולות על WiFi יכולות להביא את הזמן עם ntptime ולכתוב אותו ל-RTC בהפעלה.

  • ממארח דרך USB. סקריפט מלווה במחשב נייד דוחף את הזמן הנוכחי כשהמצלמה מחוברת.

  • משבב RTC חיצוני מגובה-סוללה. רכיב RTC ייעודי (לעיתים קרובות על shield, עם תא-מטבע משלו) שומר זמן ארוך-טווח טוב יותר מה-RTC שעל-גבי השבב וניתן לקרוא אותו באתחול כדי לזרוע את datetime().

חלק מהיישומים לעולם אינם צריכים להגדיר את ה-RTC כלל. לולאת ”התעורר כל 60 שניות וקח קריאה“ במחזור-עבודה אכפת לה רק ממרווחי הזמן שחלפו, שאותם time.ticks_ms() ותבניות השינה המתוזמנת ב-מצבי צריכת חשמל נמוכה ושינה מטפלות בלי להיוועץ אי-פעם בערך שעון-הקיר של ה-RTC.