3.28. Reaaliaikakello

Mikrokontrollerin millisekuntikello – se, joka on time.ticks_ms()-funktion ja ajastinalijärjestelmän takana – laskee kulunutta aikaa käynnistyksestä lähtien. Reaaliaikakello (RTC) on erillinen laitteisto, joka seuraa seinäkellon aikaa – vuosi, kuukausi, päivä, tunti, minuutti, sekunti – ja jatkaa käymistä nollausten ja laiteohjelmistopäivitysten yli. Kameroissa, joissa varmistusakku on kytketty RTC:n virtaan, se selviää myös täydellisestä virrankatkoksesta.

RTC on se, mitä käyttöön otettu kamera käyttää seuraaviin:

  • Lokimerkintöjen ja tallennettujen kuvien aikaleimaaminen oikealla päivämäärällä.

  • Pitkään kestävien tehtävien tahdistaminen niin, etteivät ne ajaudu pois viikkojen tai kuukausien aikana.

3.28.1. machine.RTC-luokka

machine.RTC on singleton – yksi RTC kameraa kohti, id:tä ei tarvita:

from machine import RTC

rtc = RTC()

Nykyinen päivämäärä ja kellonaika sijaitsevat datetime()-metodissa. Sen kutsuminen ilman argumentteja palauttaa 8-tuplen:

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

Kentät ovat (year, month, day, weekday, hour, minute, second, subseconds). Asettaaksesi kellon välitä takaisin saman muotoinen 8-tuple:

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

Kamera jatkaa laskemista siitä pisteestä. Pehmeässä nollauksessa aika jatkuu keskeytyksettä; täydellisessä virtasyklissä RTC palautuu oletusaikaansa, ellei varmistusakku pidä sitä virroitettuna.

3.28.2. Milloin RTC asetetaan

RTC:llä ei ole sisäänrakennettua tapaa tietää, mitä kello on käynnistyksessä. Kolme yleistä mallia asettaa sen:

  • Verkon aikalähteestä. Kamerat, jotka käynnistyvät WiFiin, voivat hakea ajan ntptime-moduulilla ja kirjoittaa sen RTC:hen käynnistyksessä.

  • Isäntäkoneelta USB:n yli. Kannettavalla oleva kumppaniskripti työntää nykyisen ajan, kun kamera kytketään.

  • Akkuvarmistetusta ulkoisesta RTC-sirusta. Erillinen RTC-piiri (usein laajennuskortilla, omalla nappiparistollaan) pitää parempaa pitkän aikavälin aikaa kuin sirun sisäinen RTC, ja se voidaan lukea käynnistyksessä datetime()-metodin alustamiseksi.

Jotkin sovellukset eivät koskaan tarvitse RTC:n asettamista lainkaan. Käyttösuhteistettu ”herää 60 sekunnin välein ja ota lukema” -silmukka välittää vain kuluneista väleistä, jotka time.ticks_ms() ja Pienitehoiset tilat ja lepotilat-dokumentin ajastetut lepomallit hoitavat koskaan kysymättä RTC:n seinäkellon arvoa.