#include #include #include #include #include #define i2c_Address 0x3c const char* ssid = "Nothing Phone (2)"; const char* password = "1234567890#"; const char* ntpServer = "pool.ntp.org"; const long gmtOffset_sec = 19800; const int daylightOffset_sec = 0; #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); struct tm timeinfo; void printLocalTime() { struct tm timeinfo; if (!getLocalTime(&timeinfo)) { Serial.println("Failed to obtain time"); return; } Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); } void showTime(struct tm timeinfo){ display.setCursor(0, 0); display.setTextSize(1); display.setTextColor(SH110X_WHITE); display.println(" /)/)"); display.println("(^_^)"); display.println("/>"); display.setCursor(SCREEN_WIDTH / 4, 6); display.setTextSize(1); display.println(" Hello Takshak"); display.setCursor(4, SCREEN_HEIGHT / 2); display.setTextSize(4); display.println(&timeinfo, "%H:%M"); display.display(); } void setup() { Serial.begin(9600); delay(250); display.begin(i2c_Address, true); display.display(); display.clearDisplay(); WiFi.mode(WIFI_STA); //Optional WiFi.begin(ssid, password); Serial.println("\nConnecting"); display.setTextSize(3); display.setTextColor(SH110X_WHITE); display.println("/)_/)"); display.println("(^_^)"); display.print("/>"); display.setTextSize(2); display.print("wait.."); display.display(); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(100); } display.clearDisplay(); Serial.println("\nConnected to the WiFi network"); Serial.print("Local ESP32 IP: "); Serial.println(WiFi.localIP()); configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); printLocalTime(); WiFi.disconnect(true); WiFi.mode(WIFI_OFF); } void loop() { display.clearDisplay(); delay(1000); printLocalTime(); if (getLocalTime(&timeinfo)) { showTime(timeinfo); } }