ขอคำแนะนำหน่อยครับ
สมมุติ วันนี้เก็บยอดค่าได้ i = 100;
เมื่อถึงเวลา 00.00 เที่ยงคืน จะให้ค่า i ที่มีอยู่ 100 รีเซ็ทให้เหลือ 0
แล้วเริ่มนับยอดใหม่ พอถึงเที่ยงืคนก็รีใหม่ วนๆ แบบนี้เรื่อยๆ
มันต้องเอาอะไรไปเช็คว่า ขึ้นวันใหม่แล้วโปรแกรมจะ reset ค่า i ให้เป็น 0 พอมีลิ้งให้ศึกษ่า หรือตัวอย่างไหมครับ
ผลลัพธ์ประมานนี้
วันที่ 1 : เก็บยอด i = 78 เที่ยงคืน รีเซ็ทใหม่
วันที่ 2 : เก็บยอด i = 22 เที่ยงคืน รีเซ็ทใหม่
///////////////// ตอนนี้ใช้ code เวลากับวันที่แบบนี้อยุ่ครับ เอาไว้แสดง //////////////////////////
String Date() {
time_t now = time(nullptr);
struct tm* newtime = localtime(&now);
String tmpNow = "";
tmpNow += String(newtime->tm_mday);
tmpNow += "/";
tmpNow += String(newtime->tm_mon + 1);
tmpNow += "/";
tmpNow += String(newtime->tm_year + 1900);
return tmpNow;
}
String Time() {
time_t now = time(nullptr);
struct tm* newtime = localtime(&now);
String tmpNow = "";
tmpNow += String(newtime->tm_hour);
tmpNow += ":";
tmpNow += String(newtime->tm_min);
tmpNow += ":";
tmpNow += String(newtime->tm_sec);
return tmpNow;
}
เขียน if เช็ค โดยเอาค่าจาก String Time() จะได้ค่าเวลามาเปรียบเที่ยบกัน
ถ้าใช้โมดูล RTC DS3231 ไลบารีมีฟังก์ชัน alarm ให้ทำงานเมื่อถึงเวลา ตัวอย่างดังนี้ครับ
https://github.com/jarzebski/Arduino-DS3231/blob/master/DS3231_alarm/DS3231_alarm.ino