/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: **Relay Control** - Source Code NOT compiled for: Arduino Nano - Source Code created on: 2024-11-06 12:45:27 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* Ek realy Jo float megnetic sensor high ho tab */ /* realy on rahe or sensor low hone ke 15 second bad */ /* off ho Jaye or 30 minutes ke baad automatic realy */ /* on ho jaye uske baad sensor ke according realy */ /* work kare */ /****** END SYSTEM REQUIREMENTS *****/ /* START CODE */ /****** DEFINITION OF LIBRARIES *****/ #include //https://github.com/khoih-prog/ESP_AT_WiFiManager #include //https://github.com/arduino-libraries/Arduino_APDS9960 #include // Required for Arduino functions like pinMode, digitalRead, etc. /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/ const int sensorPin = 2; // Sensor pin (digital) const int relayPin = 7; // Relay pin bool sensorState = false; bool relayState = false; unsigned long startTime = 0; unsigned long relayOffTime = 0; void setup(void) { // put your setup code here, to run once: Serial.begin(9600); pinMode(sensorPin, INPUT); pinMode(relayPin, OUTPUT); } void loop(void) { // put your main code here, to run repeatedly: int sensorValue = digitalRead(sensorPin); if (sensorValue == HIGH) { // Sensor value check sensorState = true; digitalWrite(relayPin, HIGH); relayState = true; startTime = millis(); // Reset start time when relay is turned on Serial.println("Relay On"); } else { sensorState = false; if (relayState) { if (millis() - startTime > 15000) { // 15 second timer digitalWrite(relayPin, LOW); relayState = false; relayOffTime = millis(); Serial.println("Relay Off"); } } if (!relayState && millis() - relayOffTime > 1800000) { // 30 minute timer digitalWrite(relayPin, HIGH); relayState = true; startTime = millis(); // Reset start time when relay is turned on automatically Serial.println("Relay On (Auto)"); } } delay(100); } /* END CODE */