const int ldrPin = 34;
const int relayPin = 2;
const int ledPin = 25;
int ldrThreshold = 40;
bool manualMode = false;
void setup() {
pinMode(ldrPin, INPUT);
pinMode(relayPin, OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(relayPin, LOW);
digitalWrite(ledPin, LOW);
Serial.begin(115200);
Serial.println("Smart Light Control System Initialized");
Serial.println("Enter 'AUTO' for automatic control or 'ON'/'OFF' for manual control");
}
void loop() {
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
command.trim();
if (command == "ON") {
manualMode = true;
digitalWrite(relayPin, HIGH);
digitalWrite(ledPin, HIGH);
Serial.println("Light is ON (Manual Mode)");
} else if (command == "OFF") {
manualMode = true;
digitalWrite(relayPin, LOW);
digitalWrite(ledPin, LOW);
Serial.println("Light is OFF (Manual Mode)");
} else if (command == "AUTO") {
manualMode = false;
Serial.println("Switched to Automatic Mode");
} else {
Serial.println("Invalid command. Use 'ON', 'OFF', or 'AUTO'.");
}
}
if (!manualMode) {
int ldrValue = analogRead(ldrPin);
Serial.print("LDR Value: ");
Serial.println(ldrValue);
if (ldrValue < ldrThreshold) {
digitalWrite(relayPin, HIGH);
digitalWrite(ledPin, HIGH);
Serial.println("Light is ON (Automatic)");
} else {
digitalWrite(relayPin, LOW);
digitalWrite(ledPin, LOW);
Serial.println("Light is OFF (Automatic)");
}
delay(1000);
}
}