รบกวนสอบถามหน่อยค่ะ
ในกรณีใช้ร่วมกับการเปิดปิดไฟ
ถ้าต้องการset ตั้งเวลาให้ไฟติดที่เวลาหนึ่ง (HH:MM:SS)
เเละไฟดับที่อีกเวลาหนึ่ง (HH:MM:SS)
รบกวนเเนะนำตัวอย่างใช้งาน วิธีเขียนคำสั่งโคดว่าใช้คำสั่งอะไรค่ะ
(ขอบคุณค่ะ)
#include "Wire.h"
#include "SPI.h"
#include "RTClib.h"
RTC_DS3231 RTC;
DateTime Time;
//----------------------------------------------------
void setup ()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(18, 3, 20, 24, 00, 10));
//----------------------------------------------------
void loop ()
{
Time = RTC.now();
Serial.print("DATE(DD/MM/YY): ");
Serial.print(Time.day(), DEC);
Serial.print('/');
Serial.print(Time.month(), DEC);
Serial.print('/');
Serial.print(Time.year(), DEC);
Serial.println();
Serial.print("TIME(Hour): ");
Serial.print(Time.hour());
Serial.print(':');
Serial.print(Time.minute());
Serial.print(':');
Serial.print(Time.second());
Serial.println();
Serial.print("Tempeature = ");
Serial.print(RTC.getTemperature()); // ดึงอุณหภูมิออกมาแสดง
Serial.println(" Celsius");
delay(1000);
}
ทำตามนี้ครับ
1. ให้ดึงค่าเวลาออกมาให้ได้ก่อน เก็บไว้ในตัวแปร string เช่น "15:30:00"
2. ใช้ if เช็ค string ว่าเป็นเวลาที่กำหนด เช่นตัวอย่างนี้
if (timer= "15:30:00") {
Serial.println("Do this");
}
หรือเเนะนำเว็บตัวอย่างการใช้ string เก็บค่าจากเวลาก็ได้นะคะ
(ขอบคุณมากค่ะ)
แบบนี้หรือเปล่าค่ะ รบกวนด้วยนะคะ
#include "Wire.h"
#include "SPI.h"
#include "RTClib.h"
int ledPin = 2;
RTC_DS3231 RTC;
DateTime Time;
//----------------------------------------------------
void setup ()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(21, 3, 18, 12, 10, 00));
pinMode(ledPin, OUTPUT);
}
//----------------------------------------------------
void loop ()
{
DateTime now = RTC.now();
Serial.print("DATE(DD/MM/YY): ");
Serial.print(Time.day(), DEC);
Serial.print('/');
Serial.print(Time.month(), DEC);
Serial.print('/');
Serial.print(Time.year(), DEC);
Serial.println();
Serial.print("TIME(Hour): ");
Serial.print(Time.hour());
Serial.print(':');
Serial.print(Time.minute());
Serial.print(':');
Serial.print(Time.second());
Serial.println();
Serial.print("Tempeature = ");
Serial.print(RTC.getTemperature()); // ดึงอุณหภูมิออกมาแสดง
Serial.println(" Celsius");
delay(500);
String timer = "12:12:00";
if (timer= "12:12:00") {
digitalWrite(ledPin,HIGH);
Serial.println("Light ON");
}
if (timer= "12:13:00") {
digitalWrite(ledPin,LOW);
Serial.println("Light OFF");
}
}
เอาค่าเวลาแต่ละตัวมารวมกันให้ครบทุกตัวครับ
เช่น String ss = Time.second();
String hh = Time.hour();
คำสั่งเชื่อม String ใช้เครื่่องหมาย + เช่น
String time = ss+":";
time = time+hh;