#include <WiFi.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <HTTPClient.h>
#include <Adafruit_SSD1306.h>
#include "images.h"
#define TIME_BASEPOSITION 32
#define DATE_BASEPOSITION 48
#define X_BASEPOSITION 64
const char* ssid = "Wokwi-GUEST";
const char* password = "";
#define textSizeTime 2
#define textSizeDate 1
Adafruit_SSD1306 display(128, 64, &Wire, -1, 888888); // Define Display
String DuoDigit(String v) { return v.length() < 2 ? "0" + v : v; }
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Begin I2C Communication With Display
pinMode(19, INPUT);
display.clearDisplay(); // Clear Display Buffer
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print("Connecting to WiFi...");
display.display();
WiFi.begin(ssid, password, 64);
while (WiFi.status() != WL_CONNECTED) delay(400);
display.println("Connected Sucessfully");
display.display();
display.println(",kudgyvkjhg");
display.println("IP: " + WiFi.localIP());
display.display();
delay(500);
}
tmElements_t tm;
String currTime;
float a;
int s, ps;
void loop() {
s = digitalRead(19);
if (s < ps) { }
display.clearDisplay();
display.drawBitmap(0, 0, wifi, 16, 10, SSD1306_WHITE);
display.setCursor(15, 3);
display.print(WiFi.RSSI());
if (RTC.read(tm)) {
display.setCursor(98, 0);
display.print(DuoDigit(String(tm.Hour)) + ":" + DuoDigit(String(tm.Minute)));
} else {
display.drawBitmap(0, 0, warning, 72, 64, SSD1306_WHITE);
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(55, 0);
if (RTC.chipPresent()) {
display.println("RTC Module");
display.setCursor(61, 10);
display.print("Has Stopped");
} else {
display.print("RTC Not");
display.setCursor(61, 10);
display.print("Detected");
}
}
ps = s;
display.display();
delay(10);
}