Arduino:
การแปลงวันที่เป็นสตริง
วิธีการ:
นี่คือตัวอย่างง่ายๆ ในการแปลงวันที่เป็นสตริงบน Arduino:
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
DateTime now = rtc.now();
char dateString[11]; // พื้นที่เพียงพอสำหรับ "DD/MM/YYYY"
sprintf(dateString, "%02d/%02d/%04d", now.day(), now.month(), now.year());
Serial.println(dateString);
}
void loop() {
// ไม่จำเป็นต้องทำการแปลงซ้ำ
}
ผลลัพธ์ตัวอย่าง:
23/03/2023
ลงลึกเพิ่มเติม
ตั้งแต่อดีต การแสดงเวลาได้เป็นเรื่องซับซ้อนของการเขียนโปรแกรม เนื่องจากมีรูปแบบและเขตเวลาที่แตกต่างกัน Arduino มีฟังก์ชันที่เกี่ยวข้องกับเวลาดูแลความซับซ้อนเหล่านี้ ช่วยให้เราสามารถมุ่งเน้นไปที่การทำให้ข้อมูลเวลามีความหมาย
แม้เราจะใช้ไลบรารี RTClib
แต่ทางเลือกอื่นๆ เช่น TimeLib.h
ก็มีฟังก์ชันเฉพาะที่คล้ายคลึงกัน การเลือกใช้ขึ้นอยู่กับความชอบและคุณสมบัติเฉพาะ เช่น การจัดการเขตเวลาภายใน
ฟังก์ชันหลัก sprintf
ที่ใช้ที่นี่ใช้เพื่อจัดรูปแบบข้อมูลเป็นสตริง มันอิงจากฟังก์ชันไลบรารีมาตรฐานของภาษา C ซึ่งแข็งแกร่งแต่อาจใช้หน่วยความจำเยอะสำหรับการใช้งานที่ซับซ้อน ทางเลือกที่เบากว่าและพื้นฐานกว่าคือ snprintf
ซึ่งช่วยให้แน่ใจว่าคุณจะไม่เกินขนาดของ buffer และปลอดภัยกว่าจาก overflow ของ buffer
ดูเพิ่มเติม
- Arduino’s Time library: http://playground.arduino.cc/Code/Time
- DateFormat: https://www.arduino.cc/reference/en/libraries/date-format/
- RTClib Documentation: https://github.com/adafruit/RTClib