3.28. Sat stvarnog vremena¶
Milisekundni sat mikrokontrolera – onaj iza time.ticks_ms() i podsustava mjerača vremena – broji proteklo vrijeme od podizanja sustava. Sat stvarnog vremena (RTC) zasebni je hardver koji prati vrijeme zidnog sata – godinu, mjesec, dan, sat, minutu, sekundu – i nastavlja raditi kroz resetiranja i ažuriranja ugrađenog programa (firmware). Na kamerama s rezervnom baterijom spojenom na RTC napajanje, preživljava i potpuni gubitak napajanja.
RTC je ono što razmještena kamera koristi za:
Vremensko označavanje zapisa dnevnika i spremljenih slika stvarnim datumom.
Tempiranje dugotrajnih zadataka koji ne bi smjeli odstupati tijekom tjedana ili mjeseci.
3.28.1. Klasa machine.RTC¶
machine.RTC je singleton – jedan RTC po kameri, nije potreban id:
from machine import RTC
rtc = RTC()
Trenutni datum i vrijeme nalaze se u datetime(). Pozivanje bez argumenata vraća 8-torku:
>>> rtc.datetime()
(2026, 5, 27, 4, 14, 30, 15, 0)
Polja su (year, month, day, weekday, hour, minute, second, subseconds). Za postavljanje sata proslijedite natrag 8-torku istog oblika:
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
Kamera nastavlja brojati od te točke. Pri mekom resetiranju vrijeme se nastavlja neprekinuto; pri potpunom ciklusu napajanja RTC se vraća na svoje zadano vrijeme osim ako ga rezervna baterija drži napajanim.
3.28.2. Kada postaviti RTC¶
RTC nema ugrađen način da zna koliko je sati pri podizanju sustava. Tri uobičajena obrasca ga postavljaju:
Iz mrežnog izvora vremena. Kamere koje se podignu na WiFi mogu dohvatiti vrijeme pomoću
ntptimei upisati ga u RTC pri pokretanju.Iz hosta preko USB-a. Pomoćna skripta na prijenosnom računalu šalje trenutno vrijeme kada se kamera priključi.
Iz vanjskog RTC čipa s rezervnom baterijom. Namjenski RTC IC (često na shieldu, s vlastitom dugmastom baterijom) održava bolje dugoročno vrijeme od RTC-a na čipu i može se očitati pri podizanju sustava kako bi se inicijalizirao
datetime().
Nekim aplikacijama uopće nikada nije potrebno postaviti RTC. Petlja s radnim ciklusom „probudi se svakih 60 sekundi i obavi očitanje” brine samo o proteklim intervalima, kojima time.ticks_ms() i obrasci tempiranog spavanja u Načini rada s niskom potrošnjom i spavanjem rukuju a da nikada ne konzultiraju RTC-ovu vrijednost zidnog sata.