3.28. Gerçek zamanlı saat¶
Mikrodenetleyicinin milisaniye saati – time.ticks_ms() ve zamanlayıcı alt sisteminin arkasındaki saat – önyüklemeden bu yana geçen süreyi sayar. Gerçek zamanlı saat (RTC) ise duvar saati zamanını – yıl, ay, gün, saat, dakika, saniye – izleyen ve sıfırlamalar ile aygıt yazılımı (firmware) güncellemeleri boyunca çalışmaya devam eden ayrı bir donanımdır. RTC besleme hattına bağlı yedek pile sahip kameralarda, tam güç kaybından da sağ kurtulur.
RTC, dağıtılmış bir kameranın şunlar için kullandığı şeydir:
Günlük girişlerini ve kaydedilen görüntüleri gerçek bir tarihle zaman damgalamak.
Haftalar veya aylar boyunca kaymaması gereken uzun süre çalışan görevlerin temposunu ayarlamak.
3.28.1. machine.RTC sınıfı¶
machine.RTC bir tekildir (singleton) – kamera başına bir RTC, id gerekmez:
from machine import RTC
rtc = RTC()
Mevcut tarih ve saat datetime() içinde yaşar. Argümansız çağrılması 8 elemanlı bir demet döndürür:
>>> rtc.datetime()
(2026, 5, 27, 4, 14, 30, 15, 0)
Alanlar (year, month, day, weekday, hour, minute, second, subseconds) şeklindedir. Saati ayarlamak için aynı şekle sahip bir 8 elemanlı demeti geri geçirin:
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
Kamera o noktadan itibaren saymaya devam eder. Yazılım sıfırlamasında zaman kesintisiz devam eder; tam bir güç çevriminde, bir yedek pil onu beslemeye devam etmezse RTC varsayılan zamanına geri döner.
3.28.2. RTC ne zaman ayarlanır¶
RTC’nin önyüklemede saatin kaç olduğunu bilmenin yerleşik bir yolu yoktur. Onu ayarlayan üç yaygın desen vardır:
Bir ağ zaman kaynağından. WiFi üzerinde açılan kameralar, zamanı
ntptimeile alıp başlangıçta RTC’ye yazabilir.USB üzerinden bir ana bilgisayardan. Bir dizüstü bilgisayardaki yardımcı bir betik, kamera takıldığında mevcut zamanı gönderir.
Pille yedeklenmiş harici bir RTC yongasından. Özel bir RTC entegre devresi (çoğu zaman kendi düğme piliyle bir kalkan üzerinde) yonga üzerindeki RTC’den daha iyi uzun vadeli zaman tutar ve
datetime()değerini tohumlamak için önyüklemede okunabilir.
Bazı uygulamaların RTC’yi hiç ayarlaması gerekmez. Görev döngülü bir “her 60 saniyede bir uyan ve bir okuma yap” döngüsü yalnızca geçen aralıklarla ilgilenir; bunu time.ticks_ms() ve Düşük güç ve uyku modları içindeki zamanlamalı uyku desenleri, RTC’nin duvar saati değerine hiç başvurmadan halleder.