3.28. Годинник реального часу¶
Мілісекундний лічильник мікроконтролера – той, що стоїть за time.ticks_ms() та підсистемою таймерів – відраховує час, що минув з моменту завантаження. Годинник реального часу (RTC) – це окреме апаратне забезпечення, яке відстежує астрономічний час – рік, місяць, день, годину, хвилину, секунду – і продовжує роботу між скиданнями та оновленнями мікропрограми. На камерах із резервним акумулятором, підключеним до живлення RTC, він зберігає час навіть при повному відключенні живлення.
RTC використовується розгорнутою камерою для:
Позначення записів журналу та збережених зображень реальною датою.
Планування тривалих завдань, які не повинні відхилятися протягом тижнів або місяців.
3.28.1. Клас machine.RTC¶
machine.RTC є одинаком – один RTC на камеру, ідентифікатор не потрібен:
from machine import RTC
rtc = RTC()
Поточна дата та час зберігаються в datetime(). Виклик без аргументів повертає кортеж із 8 елементів:
>>> rtc.datetime()
(2026, 5, 27, 4, 14, 30, 15, 0)
Поля: (year, month, day, weekday, hour, minute, second, subseconds). Щоб встановити годинник, передайте кортеж тієї ж форми назад:
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
Камера продовжує відлік з цієї точки. При м’якому скиданні час продовжується без перерви; при повному відключенні живлення RTC повертається до свого стандартного часу, якщо резервний акумулятор не підтримує його живлення.
3.28.2. Коли встановлювати RTC¶
RTC не має вбудованого способу дізнатися точний час при завантаженні. Три поширені підходи для встановлення:
З мережевого джерела часу. Камери, що підключаються до WiFi, можуть отримати час за допомогою
ntptimeта записати його до RTC при запуску.З хоста через USB. Супровідний скрипт на ноутбуці передає поточний час при підключенні камери.
Від зовнішнього RTC-чіпа з резервним акумулятором. Спеціалізована мікросхема RTC (часто на щитку з власним акумулятором у вигляді монети) забезпечує кращий довгостроковий облік часу, ніж вбудований RTC, і може зчитуватися при завантаженні для ініціалізації
datetime().
Деякі застосунки взагалі не потребують встановлення RTC. Цикл із регульованим навантаженням «прокидатися кожні 60 секунд і знімати показання» дбає лише про прошлі інтервали, які time.ticks_ms() та шаблони сну з таймером у Режими низького споживання та сну забезпечують без звернення до астрономічного часу RTC.