3.28. Đồng hồ thời gian thực¶
Đồng hồ mili giây của vi điều khiển -- đồng hồ đằng sau time.ticks_ms() và hệ thống bộ định thời -- đếm thời gian đã trôi qua kể từ khi khởi động. Đồng hồ thời gian thực (RTC) là phần cứng riêng biệt theo dõi thời gian thực tế -- năm, tháng, ngày, giờ, phút, giây -- và tiếp tục chạy qua các lần reset và cập nhật firmware. Trên các cam có pin sao lưu kết nối với nguồn cung RTC, nó tồn tại ngay cả khi mất điện hoàn toàn.
RTC là thứ mà một camera triển khai sử dụng để:
Đóng dấu thời gian cho các mục nhật ký và ảnh đã lưu với ngày thực.
Điều phối các tác vụ chạy dài không nên bị trôi qua nhiều tuần hoặc tháng.
3.28.1. Lớp machine.RTC¶
machine.RTC là singleton -- một RTC mỗi camera, không cần id:
from machine import RTC
rtc = RTC()
Ngày và giờ hiện tại được lưu trong datetime(). Gọi nó không có đối số sẽ trả về một tuple 8 phần tử:
>>> rtc.datetime()
(2026, 5, 27, 4, 14, 30, 15, 0)
Các trường là (year, month, day, weekday, hour, minute, second, subseconds). Để đặt đồng hồ, truyền lại một tuple 8 phần tử có cùng hình dạng:
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
Camera tiếp tục đếm từ thời điểm đó. Khi reset mềm, thời gian tiếp tục không bị gián đoạn; khi tắt nguồn hoàn toàn, RTC trở về thời gian mặc định trừ khi pin sao lưu giữ nó hoạt động.
3.28.2. Khi nào nên đặt RTC¶
RTC không có cách tích hợp sẵn để biết thời gian khi khởi động. Ba mẫu phổ biến để đặt nó:
Từ nguồn thời gian mạng. Các cam kết nối WiFi có thể lấy thời gian bằng
ntptimevà ghi vào RTC khi khởi động.Từ máy chủ qua USB. Một tập lệnh đồng hành trên laptop đẩy thời gian hiện tại khi cam được cắm vào.
Từ chip RTC bên ngoài có pin sao lưu. Một IC RTC chuyên dụng (thường trên shield, với pin đồng xu riêng) duy trì thời gian dài hạn tốt hơn RTC trên chip và có thể được đọc khi khởi động để khởi tạo
datetime().
Một số ứng dụng không cần đặt RTC bao giờ. Vòng lặp theo chu kỳ "thức dậy mỗi 60 giây và đọc số liệu" chỉ quan tâm đến khoảng thời gian đã trôi qua, mà time.ticks_ms() và các mẫu ngủ có tính giờ trong Các chế độ tiết kiệm điện và ngủ xử lý mà không cần tham khảo giá trị đồng hồ thực của RTC.