#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "RTClib.h"
RTC_DS1307 rtc;
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup(){
Serial.begin(57600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
display.display();
delay(2);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(0,5);
display.print(" Clock ");
display.display();
}
void loop() {
DateTime time = rtc.now();
//Serial.println(String("DateTime:: ")+time.timestamp(DateTime::TIMESTAMP_DATE));
//Serial.println(String("DateTime:: ")+time.timestamp(DateTime::TIMESTAMP_TIME));
display.clearDisplay();
display.setTextSize(2);
display.setCursor(0,0);
display.print(String(time.hour())+":"+String(time.minute())+":"+String(time.second()));
display.setTextSize(2);
display.setCursor(0,20);
display.print(String(time.year())+":"+String(time.month())+":"+String(time.day()));
display.setTextSize(2);
display.setCursor(0,40);
display.print(daysOfTheWeek[time.dayOfTheWeek()]);
display.display();
}