3.28. Realtidsklocka¶
Mikrokontrollerns millisekundklocka – den bakom time.ticks_ms() och timersubsystemet – räknar förfluten tid sedan uppstart. Realtidsklockan (RTC) är separat hårdvara som spårar väggklockans tid – år, månad, dag, timme, minut, sekund – och fortsätter gå tvärs över återställningar och uppdateringar av fast programvara. På kameror med ett backup-batteri kopplat till RTC-matningen överlever den även fullständig strömförlust.
RTC:n är vad en utplacerad kamera använder för att:
Tidsstämpla loggposter och sparade bilder med ett verkligt datum.
Reglera takten på långkörande uppgifter som inte ska driva över veckor eller månader.
3.28.1. machine.RTC-klassen¶
machine.RTC är en singleton – en RTC per kamera, inget id behövs:
from machine import RTC
rtc = RTC()
Aktuellt datum och tid finns i datetime(). Att anropa den utan argument returnerar en 8-tupel:
>>> rtc.datetime()
(2026, 5, 27, 4, 14, 30, 15, 0)
Fälten är (year, month, day, weekday, hour, minute, second, subseconds). För att ställa klockan, skicka tillbaka en 8-tupel av samma form:
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
Kameran fortsätter räkna från den punkten. Vid en mjuk återställning fortsätter tiden oavbrutet; vid en fullständig strömcykel faller RTC:n tillbaka till sin standardtid om inte ett backup-batteri håller den strömförsörjd.
3.28.2. När RTC:n ska ställas¶
RTC:n har inget inbyggt sätt att veta vad klockan är vid uppstart. Tre vanliga mönster ställer den:
Från en nätverkstidkälla. Kameror som kommer upp på WiFi kan hämta tiden med
ntptimeoch skriva den till RTC:n vid start.Från en värd över USB. Ett kompanjonsskript på en bärbar dator skickar aktuell tid när kameran kopplas in.
Från ett batteribackat externt RTC-chip. En dedikerad RTC-IC (ofta på en sköld, med sitt eget knappcellsbatteri) håller bättre långsiktig tid än den inbyggda RTC:n och kan läsas vid uppstart för att initiera
datetime().
Vissa tillämpningar behöver aldrig ställa RTC:n alls. En arbetscykelstyrd ”vakna var 60:e sekund och gör en avläsning”-loop bryr sig bara om förflutna intervall, vilket time.ticks_ms() och de tidsstyrda vilomönstren i Lågeffekts- och viloläge hanterar utan att någonsin konsultera RTC:ns väggklockvärde.