คำอธิบาย
DS3231 RTC คืออะไร
DS3231 คือ โมดูลนาฬิกาเรียลไทม์ (RTC - Real Time Clock) ใช้สำหรับเก็บข้อมูล วันที่และเวลา อย่างแม่นยำ แม้ปิดเครื่องหรือ断ไฟ (เพราะมีแบตเตอรี่สำรองในตัว)
เหมาะสำหรับโปรเจกต์ที่ต้องการ บันทึกเวลา เช่น บันทึกข้อมูล, ปลุก, ตั้งเวลา, เปิดปิดอุปกรณ์
📊 สเปคของ DS3231 RTC
รายการ
|
รายละเอียด
|
แรงดันไฟฟ้าใช้งาน
|
3.3V – 5.5V (ใช้ได้ทั้ง Arduino และ Raspberry Pi)
|
การสื่อสาร
|
I2C (SCL, SDA)
|
ความแม่นยำ
|
±2 นาทีต่อปี (สูงกว่า DS1307 มาก)
|
แบตเตอรี่สำรอง
|
CR2032 (รักษาเวลาแม้ไม่มีไฟเลี้ยง)
|
ช่วงปีที่รองรับ
|
2000 – 2099
|
ขนาดโมดูล
|
ประมาณ 38 × 22 × 14 มม.
|
อื่น ๆ
|
มีวงจรชดเชยอุณหภูมิในตัว (Temp-compensated)
|
⚙️ การใช้งาน
✅ 3.1 การต่อกับ Arduino
ขา DS3231
|
ต่อกับ Arduino UNO
|
VCC
|
5V
|
GND
|
GND
|
SDA
|
A4
|
SCL
|
A5
|
Arduino รุ่นอื่นอาจใช้ขา I2C ต่างกัน เช่น Nano, Mega, ESP8266, ESP32
ตัวอย่างโค้ด Arduino:
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
Wire.begin();
rtc.begin();
// ตั้งเวลาเริ่มต้น (รันครั้งเดียวแล้วคอมเมนต์บรรทัดนี้ทิ้ง)
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
if (rtc.lostPower()) {
Serial.println("RTC lost power, setting default time!");
rtc.adjust(DateTime(2025, 4, 30, 15, 30, 0));
}
}
void loop() {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.println(now.second(), DEC);
delay(1000);
}
✅ 3.2 การใช้งานกับ Raspberry Pi
ติดตั้งไลบรารี:
sudo apt-get update
sudo apt-get install i2c-tools python3-smbus
เช็คว่าเจอโมดูล:
sudo i2cdetect -y 1
จะเห็นเลข 0x68 แสดงว่าเจอ DS3231 แล้ว
ใช้ไลบรารี Python (เช่น rtc หรือ adafruit-circuitpython-ds3231) เพื่ออ่าน/เขียนเวลา
💡 การประยุกต์ใช้งาน:
โปรเจกต์
|
การใช้งาน RTC
|
Data Logger
|
บันทึกค่าจากเซนเซอร์ พร้อมเวลา
|
ระบบปลุก/เตือน
|
ตั้งเวลาให้ Buzzer ดัง
|
เปิด-ปิดไฟอัตโนมัติ
|
เปิดไฟตอน 18:00 น. ปิด 06:00 น.
|
นาฬิกา DIY
|
แสดงเวลาบน OLED/LCD
|
ระบบรดน้ำอัตโนมัติ
|
รดน้ำเวลา 07:00 และ 17:00 ทุกวัน
|
✅ ข้อดี:
-
แม่นยำสูงกว่ารุ่นเก่า (เช่น DS1307)
-
มีแบตเตอรี่เก็บเวลาแม้ปิดเครื่อง
-
ใช้กับได้ทั้ง Arduino และ Raspberry Pi
-
ใช้สาย I2C ง่ายในการต่อหลายอุปกรณ์
