การรับวันที่ปัจจุบัน

Arduino:
การรับวันที่ปัจจุบัน

วิธีการ:

Arduino เองไม่มีวิธีการในตัวเพื่อดึงวันที่ปัจจุบันโดยตรง เนื่องจากไม่มีนาฬิกาจริง (RTC) อย่างไรก็ตาม สามารถทำได้โดยใช้โมดูล RTC ภายนอก เช่น DS3231 และไลบรารี่เช่น RTClib ที่พัฒนาโดย Adafruit ซึ่งทำให้การเชื่อมต่อกับโมดูลเหล่านี้เป็นเรื่องง่าย

ก่อนอื่น ตรวจสอบว่าได้ติดตั้งไลบรารี RTClib ใน Arduino IDE ของคุณแล้ว จากนั้น เชื่อมต่อโมดูล RTC ของคุณกับ Arduino ตามคู่มือการใช้งาน

นี่คือตัวอย่างง่ายๆเพื่อเริ่มต้น:

#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);

  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, let's set the time!");
    // เมื่อต้องการตั้งเวลาให้กับอุปกรณ์ใหม่หรือหลังจากที่สูญเสียพลังงาน คุณสามารถตั้งเวลาได้ที่นี่
    // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  DateTime now = rtc.now();

  Serial.print("วันที่ปัจจุบัน: ");
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.println(now.day(), DEC);

  delay(3000); // หน่วงเวลา 3 วินาทีเพื่อลดการรบกวนของข้อมูลจากซีเรียล
}

ตัวอย่างผลลัพธ์ (สมมติว่าคุณได้ตั้งเวลา RTC ของคุณก่อนหน้านี้แล้ว):

วันที่ปัจจุบัน: 2023/4/15

โค้ดนี้เริ่มต้นโมดูล RTC และจากนั้นในลูป จะดึงและพิมพ์วันที่ปัจจุบันไปยัง Serial Monitor ทุกๆ 3 วินาที จำไว้ว่า บรรทัด rtc.adjust(...) สามารถเอาคอมเมนต์ออกและแก้ไขเพื่อตั้งวันที่และเวลาของ RTC ใหม่หรือหลังจากที่มันสูญเสียพลังงาน