ESP32 RTC
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng ESP32 với Module Real-Time Clock DS3231. Cụ thể, chúng ta sẽ tìm hiểu các chủ đề sau:
- Cách kết nối module RTC DS3231 với ESP32.
- Cách lập trình ESP32 để đọc ngày và giờ từ module RTC DS3231 (giây, phút, giờ, thứ, ngày, tháng và năm)
Linh Kiện Cần Thiết
| 1 | × | mô-đun phát triển ESP-WROOM-32 | ||
| 1 | × | Alternatively, ESP32 Uno-form board | ||
| 1 | × | Alternatively, ESP32 S3 Uno-form board | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | Module Real-Time Clock DS3231 | ||
| 1 | × | Pin CR2032 | ||
| 1 | × | Dây Jumper | ||
| 1 | × | breadboard | ||
| 1 | × | DC Power Jack (Tùy chọn) | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Breakout Expansion Board for ESP32 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP32 |
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Module Real-Time Clock DS3231
Bản thân ESP32 có một số chức năng liên quan đến thời gian như millis(), micros(). Tuy nhiên, chúng không thể cung cấp ngày tháng và thời gian (giây, phút, giờ, thứ, ngày, tháng và năm). Để lấy ngày tháng và thời gian, chúng ta cần sử dụng module Real-Time Clock (RTC) như DS3231, DS1370. Module DS3231 có độ chính xác cao hơn DS1370. Xem DS3231 vs DS1307
Pinout
Module Real-Time Clock DS3231 bao gồm 10 chân:
- Chân 32K: xuất tín hiệu đồng hồ tham chiếu ổn định (được bù nhiệt độ) và chính xác.
- Chân SQW: xuất sóng vuông đẹp ở tần số 1Hz, 4kHz, 8kHz hoặc 32kHz và có thể được điều khiển bằng lập trình. Điều này có thể được sử dụng như một ngắt do điều kiện báo thức trong nhiều ứng dụng dựa trên thời gian.
- Chân SCL: là chân xung nhịp cho giao tiếp I2C.
- Chân SDA: là chân dữ liệu cho giao tiếp I2C.
- Chân VCC: cung cấp nguồn cho module. Có thể từ 3.3V đến 5.5V.
- Chân GND: là chân nối đất.
Để sử dụng bình thường, cần sử dụng 4 chân: VCC, GND, SDA, SCL

Module DS3231 cũng có một khe cắm pin.
- Nếu chúng ta lắp pin CR2032, nó sẽ giữ thời gian trên module chạy khi nguồn chính bị tắt.
- Nếu chúng ta không lắp pin, thông tin thời gian sẽ bị mất khi nguồn chính bị tắt và bạn cần thiết lập lại thời gian.
Sơ Đồ Kết Nối

This image is created using Fritzing. Click to enlarge image
Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.
ESP32 - Module RTC DS3231
| Module RTC DS1307 | ESP32 |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
Cách Lập Trình Cho Module RTC DS3231
- Khai báo thư viện:
- Khai báo đối tượng RTC:
- Khởi tạo RTC:
- Lần đầu tiên, thiết lập RTC theo ngày và giờ trên PC khi sketch được biên dịch
- Đọc thông tin ngày và giờ từ module RTC
Code ESP32 – Cách lấy ngày và giờ
Các Bước Nhanh
- Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
- Thực hiện kết nối như hình trên.
- Kết nối board ESP32 với PC của bạn qua cáp micro USB
- Mở Arduino IDE trên PC của bạn.
- Chọn đúng board ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
- Mở Library Manager bằng cách nhấp vào biểu tượng Library Manager trên thanh điều hướng bên trái của Arduino IDE
- Tìm kiếm "RTClib", sau đó tìm thư viện RTC của Adafruit
- Nhấp vào nút Install để cài đặt thư viện RTC.

- Bạn có thể được yêu cầu cài đặt các dependencies cho thư viện
- Cài đặt tất cả dependencies cho thư viện bằng cách nhấp vào nút Install All.

- Sao chép code trên và dán vào Arduino IDE
- Biên dịch và upload code lên board ESP32 bằng cách nhấp vào nút Upload trên Arduino IDE
- Mở Serial Monitor trên Arduino IDE
- Xem kết quả trên Serial Monitor.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.