#include <Wire.h>
#include <RTClib.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SPI.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
RTC_DS1307 rtc;
void setup() {
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;) {
// Loop indefinitely if display initialization fails
}
}
// Set the date and time to January 1, 2023, 12:00:00
DateTime setTime(2023, 1, 1, 12, 0, 0);
rtc.adjust(setTime);
}
void loop() {
DateTime now = rtc.now();
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("TIME");
display.setTextSize(2);
display.setCursor(0, 10);
display.println(String(now.hour()) + ":" + String(now.minute()) + ":" + String(now.second()));
display.setTextSize(1);
display.setCursor(0, 30);
display.println("DATE");
display.setTextSize(2);
display.setCursor(0, 41);
display.println(String(now.day()) + "/" + String(now.month()) + "/" + String(now.year()));
display.display();
delay(1000);
}
Loading
ssd1306
ssd1306