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.