diff --git a/index.ino b/index.ino new file mode 100644 index 0000000..b806aa1 --- /dev/null +++ b/index.ino @@ -0,0 +1,95 @@ +#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); + } +} +