#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup()
{
if (! rtc.begin()) {
oled.setCursor(0, 1);
oled.println("RTC is missing"); // checking for our RTC module is connected or not
while (1);
}
if (! rtc.isrunning()) {
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 1);
oled.println("RTC not working");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
Serial.begin(9600);
// initialize OLED display with address 0x3C for 128x64
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
while (true);
}
delay(1000);
oled.clearDisplay();
}
void loop()
{
DateTime now = rtc.now();
oled.setTextSize(3);
oled.setTextColor(WHITE);
oled.setCursor(0, 0);
oled.print(now.hour());
oled.print(":");
oled.print(now.minute());
oled.setTextSize(2);
oled.print(":");
oled.print(now.second());
oled.setTextSize(2);
oled.setCursor(0, 28);
oled.print(now.day());
oled.print("/");
oled.print(now.month());
oled.print("/");
oled.print(now.year());
oled.setTextSize(2);
oled.setCursor(0, 48);
oled.print("Temp:");
oled.display();
oled.clearDisplay();
}