#include <WiFi.h>
#include "time.h"
#define DO_PIN 35 // LDR DO output
#define LED_PIN 33 // LED pin
const char* ssid = "Wokwi-GUEST"; // WiFi SSID
const char* password = ""; // WiFi password
// NTP server and timezone
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 19800; // GMT+5:30 for India
const int daylightOffset_sec = 0;
void setup() {
Serial.begin(115200);
pinMode(DO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
// Connect to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
// Initialize NTP
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
}
void loop() {
// Get current time
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
Serial.println("Failed to obtain time");
return;
}
int hourNow = timeinfo.tm_hour;
int minuteNow = timeinfo.tm_min;
// Read LDR
int lightState = digitalRead(DO_PIN);
// Only between 6 PM and 6 AM
bool isNightTime = (hourNow >= 18 || hourNow < 6);
if (isNightTime && lightState == 0) { // dark + nighttime
digitalWrite(LED_PIN, HIGH);
Serial.printf("Time %02d:%02d → Dark + Night → LED ON\n", hourNow, minuteNow);
} else {
digitalWrite(LED_PIN, LOW);
Serial.printf("Time %02d:%02d → Day/Bright → LED OFF\n", hourNow, minuteNow);
}
delay(2000);
}