Arduino UNO R4 WiFi Bluetooth RTC Example Đồng Bộ Đồng Hồ Thời Gian Thực qua BLE Tutorial
Tổng quan
Ví dụ Bluetooth RTC cung cấp khả năng đồng bộ đồng hồ thời gian thực thông qua ứng dụng DIYables Bluetooth STEM. Được thiết kế cho Arduino UNO R4 WiFi sử dụng BLE (Bluetooth Low Energy) để đồng bộ hardware RTC tích hợp của board với đồng hồ smartphone và hiển thị thời gian. Arduino UNO R4 WiFi có module RTC tích hợp, làm cho nó trở nên lý tưởng cho các dự án về thời gian mà không cần hardware RTC ngoài. Hoàn hảo cho đồng hồ, ghi log dữ liệu với timestamp, tự động hóa theo lịch trình, và các dự án dựa trên thời gian.
Lưu ý: Arduino UNO R4 WiFi chỉ hỗ trợ BLE (Bluetooth Low Energy). Nó không hỗ trợ Classic Bluetooth. Ứng dụng DIYables Bluetooth hỗ trợ cả BLE và Classic Bluetooth trên Android, và BLE trên iOS. Vì board này sử dụng BLE, ứng dụng hoạt động trên cả Android và iOS.

Tính năng
- Hardware RTC Tích hợp: Sử dụng RTC onboard của Arduino UNO R4 WiFi — không cần module ngoài
- Đồng bộ Thời gian từ Điện thoại: Đồng bộ thời gian từ smartphone qua Unix timestamp hoặc các thành phần thời gian local
- Hiển thị Thời gian Thực: Hiển thị thời gian hiện tại trên app, cập nhật mỗi giây
- Yêu cầu Thời gian: App có thể yêu cầu thời gian hiện tại từ board
- Giữ Thời gian Bền vững: RTC giữ thời gian khi board được cấp nguồn
- Hoạt động trên Android & iOS: BLE được hỗ trợ trên cả hai nền tảng
- Không Cần Ghép nối: BLE tự động kết nối mà không cần ghép nối thủ công
Phần cứng Cần thiết
| 1 | × | Arduino UNO R4 WiFi | ||
| 1 | × | Alternatively, DIYables STEM V4 IoT | ||
| 1 | × | (Tùy chọn) DIYables STEM V4 IoT | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Power Splitter for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Lưu ý: Không cần module RTC ngoài! Arduino UNO R4 WiFi có hardware RTC tích hợp có thể truy cập qua thư viện RTC.h.
Code Arduino UNO R4 WiFi
Các Bước Nhanh
Thực hiện theo các hướng dẫn sau từng bước:
- Nếu đây là lần đầu bạn sử dụng Arduino UNO R4 WiFi, hãy tham khảo Arduino UNO R4 - Cài Đặt Phần Mềm.
- Kết nối board Arduino UNO R4 WiFi với máy tính của bạn bằng cáp USB.
- Khởi động Arduino IDE trên máy tính.
- Chọn board Arduino UNO R4 WiFi và COM port phù hợp.
- Điều hướng đến biểu tượng Libraries ở thanh bên trái của Arduino IDE.
- Tìm kiếm "DIYables Bluetooth", sau đó tìm thư viện DIYables Bluetooth của DIYables
- Nhấp nút Install để cài đặt thư viện.

- Bạn sẽ được hỏi về việc cài đặt một số thư viện phụ thuộc khác
- Nhấp nút Install All để cài đặt tất cả các thư viện phụ thuộc.

BLE Code
- Trên Arduino IDE, Vào File Examples DIYables Bluetooth ArduinoBLE_RTC example, hoặc sao chép code trên và dán vào editor của Arduino IDE
- Nhấp nút Upload trên Arduino IDE để upload code lên Arduino UNO R4 WiFi
- Mở Serial Monitor
- Kiểm tra kết quả trên Serial Monitor. Nó trông như bên dưới:
Ứng dụng Di động
Lưu ý: Ứng dụng DIYables Bluetooth hỗ trợ cả BLE và Classic Bluetooth trên Android, và BLE trên iOS. Vì Arduino UNO R4 WiFi sử dụng BLE, ứng dụng hoạt động trên cả Android và iOS. Không cần ghép nối thủ công cho BLE — chỉ cần scan và kết nối.
- Mở ứng dụng DIYables Bluetooth
- Khi mở ứng dụng lần đầu tiên, nó sẽ yêu cầu quyền. Vui lòng cấp các quyền sau:
- Quyền Nearby Devices (Android 12+) / quyền Bluetooth (iOS) - cần thiết để scan và kết nối với thiết bị Bluetooth
- Quyền Location (chỉ Android 11 trở xuống) - cần thiết cho các phiên bản Android cũ để scan thiết bị BLE
- Đảm bảo Bluetooth được bật trên điện thoại
- Trên màn hình chính, nhấp nút Connect. Ứng dụng sẽ scan thiết bị BLE.

- Tìm và nhấp "Arduino_RTC" trong kết quả scan để kết nối.
- Sau khi kết nối, ứng dụng tự động quay về màn hình chính. Chọn ứng dụng RTC từ menu ứng dụng.

Lưu ý: Bạn có thể nhấp biểu tượng cài đặt trên màn hình chính để ẩn/hiện ứng dụng trên màn hình chính. Để biết thêm chi tiết, xem Hướng dẫn Sử dụng Ứng dụng DIYables Bluetooth.
- Ứng dụng sẽ hiển thị thời gian hiện tại từ RTC của Arduino
- Sử dụng nút Sync để đồng bộ thời gian điện thoại với Arduino
- Thời gian cập nhật mỗi giây

Bây giờ hãy nhìn lại Serial Monitor trên Arduino IDE. Bạn sẽ thấy:
Tùy chỉnh Sáng tạo - Điều chỉnh Code cho Dự án của Bạn
Phương pháp Đồng bộ Thời gian
Ứng dụng có thể đồng bộ thời gian với Arduino sử dụng hai phương pháp:
Gửi Thời gian tới App
Xử lý Yêu cầu Thời gian
Sử dụng RTC Tích hợp
RTC tích hợp của Arduino UNO R4 WiFi được truy cập qua thư viện RTC.h:
Ví dụ Lập trình
Đồng hồ với Hiển thị Serial
Data Logger với Timestamp
Khắc phục Sự cố
Vấn đề Thường gặp
1. Không thể tìm thấy thiết bị trong ứng dụng
- Đảm bảo Arduino UNO R4 WiFi được cấp nguồn và sketch đã được upload
- Đảm bảo Bluetooth của điện thoại đã được bật
- Trên Android 11 trở xuống, cũng bật dịch vụ Location
2. Thời gian hiển thị 2000/01/01 hoặc thời gian không đúng
- RTC cần được đồng bộ ít nhất một lần sau khi cấp nguồn
- Sử dụng nút Sync trong ứng dụng để thiết lập thời gian
- RTC mất thời gian khi board bị tắt nguồn (không có sao lưu pin)
3. Thời gian không đồng bộ từ ứng dụng
- Xác minh các callback onTimeSync và onLocalTimeSync đã được thiết lập
- Kiểm tra Serial Monitor cho các thông báo sync
- Đảm bảo kết nối BLE ổn định
4. RTC trôi theo thời gian
- Tinh thể RTC tích hợp có độ chính xác hạn chế
- Đồng bộ lại định kỳ qua ứng dụng
- Đối với timing quan trọng, hãy xem xét sử dụng NTP qua WiFi
5. Vấn đề chuyển đổi tháng
- RTC Arduino UNO R4 WiFi sử dụng enum Month, không phải integer
- Sử dụng hàm chuyển đổi (như Month2int() trong ví dụ) cho tháng integer
- Tháng bắt đầu từ 1 (January = 1)
6. Upload thất bại hoặc board không được nhận diện
- Cài đặt gói board Arduino UNO R4 mới nhất qua Board Manager
- Thử cáp USB hoặc port khác
Ý tưởng Dự án
- Đồng hồ số với đồng bộ thời gian BLE
- Data logger với timestamp chính xác
- Tự động hóa nhiệm vụ theo lịch trình (bật/tắt vào thời gian cụ thể)
- Đồng hồ báo thức với điều khiển smartphone
- Ghi sự kiện có timestamp
Bước tiếp theo
Sau khi thành thạo ví dụ Bluetooth RTC, hãy thử:
- Bluetooth Monitor - Cho hiển thị trạng thái dựa trên text với timestamp
- Bluetooth Table - Cho dữ liệu có cấu trúc với trường thời gian
- Bluetooth Chat - Cho giao tiếp hai chiều
- Multiple Bluetooth Apps - Kết hợp RTC với các ứng dụng khác
Hỗ trợ
Để được hỗ trợ thêm:
- Kiểm tra tài liệu API Reference
- Thăm DIYables tutorials
- Diễn đàn cộng đồng Arduino