// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include "RTClib.h"

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>             // for Display
#include <Adafruit_SSD1306.h>         // for display

#include <AccelStepper.h>

AccelStepper motorA(AccelStepper::DRIVER, 8, 9, 10, 11);

#include "Button.h"
#include "AlarmTone.h"
#include "Clock.h"
#include "config.h"

Button hourButton(A0);
Button minuteButton(A1);
Button alarmButton(A2);
//const int COLON_PIN = 13;
#define RLY_PIN 2


Adafruit_SSD1306 display(128, 64, &Wire);

RTC_DS1307 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {
  Serial.begin(57600);
  pinMode(RLY_PIN, OUTPUT);

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
 
  display.display();

#ifndef ESP8266
  while (!Serial); // wait for serial port to connect. Needed for native USB
#endif

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

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running, let's set the time!");
    // When time needs to be set on a new device, or after a power loss, the
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  // When time needs to be re-set on a previously configured device, the
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop () {



    DateTime now = rtc.now();
    DateTime time = rtc.now();

    
  display.display();
  display.clearDisplay();  
  display.setTextSize(1);
  display.setTextColor(WHITE,0);
  display.setCursor(2,10);
  display.print(String("DateTime::TIMESTAMP_FULL:\t")+time.timestamp(DateTime::TIMESTAMP_FULL));

if (now.hour() == 00 && now.minute() == 02)
  { 
    //display.clearDisplay();
    display.setCursor(2,25);
    digitalWrite(RLY_PIN,HIGH);
    display.print("Light ON");
    //motorA.setSpeed(0);
    //motorA.runSpeed();

  }

if (now.hour() == 00 && now.minute() == 03)
  { 
    //display.clearDisplay();
    display.setCursor(2,25);
    digitalWrite(RLY_PIN,LOW);
    display.print("Light OFF");
    //motorA.setSpeed(720);
    //motorA.runSpeed();
  }

    
}
GND5VSDASCLSQWRTCDS1307+
A4988