Skip to main content

RTC based Timer Cantrol - Arduino DS1307 Relay



#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;

int data[] = {0,0,2019,0,0,0};
boolean b = false , check = false;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  RTC.begin();
  pinMode(53,OUTPUT);
  digitalWrite(53, HIGH);
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
  }
}

void loop() {
  if(!b){
    Serial.println("Please Enter Time");
  }
  DateTime now = RTC.now();
  String s = "";
  if(Serial.available()>0){
    for(int i=0;i<6;i++){
        data[i] = Serial.readStringUntil('#').toInt();
    }
    b = true;
  }
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    Serial.println("Time For Off " + String(data[0]) + " " + String(data[1]) + " " + String(data[2]) + " " + String(data[3]) + " " + String(data[4]) + " " + String(data[5]) + " " ) ;
  if(b){
     if(now.month()==data[0] &&  now.day() == data[1] && now.year() == data[2] && now.hour()== data[3] && now.minute()==data[4]){
       digitalWrite(53, LOW);
       check = true;
     }
     if(check){
      Serial.println("Light is On");
     }
  }
  delay(1000);
}





Comments