#include const char* ssid = "WIFI NAME";// Enter you wifi connection name const char* password = "Password";//Enter your wifi password int relay1=D0;// SOlar to charge controller relay int relay2=D1;//Charge controller to battery relay int relay3=D2;//battery to inverter relay int relay4=D8;//main supply control relay int mainsupply=D6;// Main Supply deducting int solarvoltage=D7;//SOlar detucting int automaticswitch=D5;//Manual and automatic mode WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4,OUTPUT); pinMode(mainsupply,INPUT); pinMode(solarvoltage,INPUT); pinMode(automaticswitch,OUTPUT); digitalWrite(relay1, HIGH); digitalWrite(relay2, HIGH); digitalWrite(relay3, HIGH); digitalWrite(relay4,HIGH); digitalWrite(automaticswitch,LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { int mainsupplystatus=digitalRead(mainsupply); int solarvoltagestatus=digitalRead(solarvoltage); if(digitalRead(automaticswitch)==0) {// Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); if (request.indexOf("/automaticon") > 0) { digitalWrite(automaticswitch, HIGH);//mode selection } if (request.indexOf("/automaticoff") >0) { digitalWrite(automaticswitch,LOW); } if (request.indexOf("/relay1on") > 0) { digitalWrite(relay1, LOW);//relay here operates at the negative voltage } if (request.indexOf("/relay1off") >0) { digitalWrite(relay1, HIGH); } if (request.indexOf("/relay2on") > 0) { digitalWrite(relay2, LOW); } if (request.indexOf("/relay2off") >0) { digitalWrite(relay2, HIGH); } if (request.indexOf("/relay3on") >0) { digitalWrite(relay3, LOW); } if (request.indexOf("/relay3off") > 0) { digitalWrite(relay3, HIGH); } if (request.indexOf("/relay4on") > 0) { digitalWrite(relay4, LOW);//relay here operates at the negative voltage } if (request.indexOf("/relay4off") >0) { digitalWrite(relay4, HIGH); } // Set ledPin according to the request //digitalWrite(ledPin, value); // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println(""); client.println(""); client.println(""); client.println(""); client.println(""); client.println(""); client.println(""); client.println("

"); client.println("

Solar wireless Monitering and Control of my Home (MANUAL MODE)- By Aranganathan

"); client.println("

"); client.println("

"); client.println("

"); client.println("
"); client.println("AUTOMATIC MODE "); client.println(""); client.println("
"); client.println("
"); client.println("
"); client.println("Solar to Charge controller "); client.println(""); client.println("
"); client.println("
"); client.println("

"); client.println("
"); client.println("Charge controller to Battery"); client.println(""); client.println("
"); client.println("
"); client.println("

"); client.println("
"); client.println("Battery to Inverter"); client.println(""); client.println("
"); client.println("
"); client.println("
"); client.println("Main phase to inverter "); client.println(""); client.println("
"); client.println("
"); client.println("

"); client.println("
"); client.println(""); client.println(""); if (digitalRead(relay1)) { client.print("");// we write in reverse manner as the rely module operate in negative power supply } else { client.print(""); } client.println("
"); if (digitalRead(relay2)) { client.print(""); } else {client.print(""); } client.println(""); client.println(""); if (digitalRead(relay3)) { client.print(""); } else {client.print(""); } if (digitalRead(relay4)) { client.print(""); } else {client.print(""); } if (mainsupplystatus==1) { client.print(""); } else { client.print(""); } if (solarvoltagestatus==1) { client.print(""); } else { client.print(""); } client.println(""); client.println("
Solar panel disconnected from charge controller RELAY1 OFFSolar panel connected to charge controller RELAY1 ONBattery disconnected from charge controller RELAY2 OFFBattery connected to charge controller RELAY2 ON
Battery disconnected from inverter RELAY3 OFFBattery connected to inverter RELAY3 ONMain Phase disconnected from the Inverter RELAY4 OFFMain Phase connected to the Inverter RELAY4 ONMain supply is active SUPPLY ONMain supply is not present SUPPLY OFFSolar power available SOLAR YESSolar power unavailable SOLAR NO
"); client.println("
"); client.println(""); delay(1); Serial.println("Client disonnected"); Serial.println(""); } else { if(solarvoltagestatus==0 && mainsupplystatus==1) {digitalWrite(relay1,HIGH);//OFF digitalWrite(relay2,HIGH);//off digitalWrite(relay3,LOW); digitalWrite(relay4,LOW); } else if (solarvoltagestatus==1 && mainsupplystatus==1) { digitalWrite(relay1,LOW); digitalWrite(relay2,LOW); digitalWrite(relay3,HIGH); digitalWrite(relay4,HIGH); } else if (solarvoltagestatus==1 && mainsupplystatus==0) { digitalWrite(relay1,LOW); digitalWrite(relay2,LOW); digitalWrite(relay3,LOW); digitalWrite(relay4,LOW); } else //(solarvoltagestatus==0 && mainsupplystatus==0) { digitalWrite(relay1,HIGH); digitalWrite(relay2,LOW); digitalWrite(relay3,LOW); digitalWrite(relay4,LOW); } {// Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); if (request.indexOf("/automaticon") > 0) { digitalWrite(automaticswitch, HIGH);//mode selection } if (request.indexOf("/automaticoff") >0) { digitalWrite(automaticswitch,LOW); } {client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println(""); client.println(""); client.println(""); client.println(""); client.println(""); //newly added css client.println(""); client.println(""); client.println(""); client.println("

"); client.println("

Solar wireless Monitering and Control of my Home (AUTOMATIC MODE)- BY Aranganathan

"); client.println("

"); client.println("

"); client.println("

"); client.println("
"); client.println("AUTOMATIC MODE "); client.println(""); client.println("
"); client.println("
"); client.println(""); client.println(""); if (digitalRead(relay1)) { client.print("");// we write in reverse manner as the rely module operate in negative power supply } else { client.print(""); } client.println("
"); if (digitalRead(relay2)) { client.print(""); } else {client.print(""); } client.println(""); client.println(""); if (digitalRead(relay3)) { client.print(""); } else {client.print(""); } if (digitalRead(relay4)) { client.print(""); } else {client.print(""); } if (mainsupplystatus==1) { client.print(""); } else { client.print(""); } if (solarvoltagestatus==1) { client.print(""); } else { client.print(""); } client.println(""); client.println("
Solar panel disconnected from charge controller RELAY1 OFFSolar panel connected to charge controller RELAY1 ONBattery disconnected from charge controller RELAY2 OFFBattery connected to charge controller RELAY2 ON
Battery disconnected from inverter RELAY3 OFFBattery connected to inverter RELAY3 ONMain Phase disconnected from the Inverter RELAY4 OFFMain Phase connected to the Inverter RELAY4 ONMain supply is active SUPPLY ONMain supply is not present SUPPLY OFFSolar power available SOLAR YESSolar power unavailable SOLAR NO
"); client.println(""); client.println(""); delay(1); Serial.println("Client disonnected"); Serial.println(""); } } } }