#include WiFiClient client; WiFiServer server(80); const char* ssid = "****"; const char* password = "*****"; String command =""; // Command received from Android device // Set Relay Pins int relay1 = 4; int relay2 = 5; int relay3 = 12; int relay4 = 14; void setup() { Serial.begin(115200); pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4, OUTPUT); digitalWrite(relay1,HIGH); digitalWrite(relay2,HIGH); digitalWrite(relay3,HIGH); digitalWrite(relay4,HIGH); connectWiFi(); server.begin(); } void loop() { client = server.available(); if (!client) return; command = checkClient (); if (command == "r1on" || command == "turn on device 1" || command == "device 1 on" || command == "11") digitalWrite(relay1,0); else if (command == "r1off" || command == "turn off device 1" || command == "device 1 off" || command == "10") digitalWrite(relay1,1); else if (command == "r2on" || command == "turn on device 2" || command == "device 2 on" || command == "21" ) digitalWrite(relay2,0); else if (command == "r2off" || command == "turn off device 2" || command == "device 2 off" || command == "xx") digitalWrite(relay2,1); else if (command == "r3on" || command == "turn on device 3" || command == "device 3 on" || command == "31") digitalWrite(relay3,0); else if (command == "r3off" || command == "turn off device 3" || command == "device 3 off" || command == "30") digitalWrite(relay3,1); else if (command == "r4on" || command == "turn on device 4" || command == "device 4 on" || command == "41") digitalWrite(relay4,0); else if (command == "r4off" || command == "turn off device 4" || command == "device 4 off" || command == "40") digitalWrite(relay4,1); else if (command == "allon" || command == "turn on all devices" || command == "all on" || command == "51") { digitalWrite(relay1,LOW); digitalWrite(relay2,LOW); digitalWrite(relay3,LOW); digitalWrite(relay4,LOW); } else if (command == "alloff" || command == "turn off all devices" || command == "all off" || command == "50") { digitalWrite(relay1,HIGH); digitalWrite(relay2,HIGH); digitalWrite(relay3,HIGH); digitalWrite(relay4,HIGH); } sendBackEcho(command); // send command echo back to android device command = ""; } /* connecting WiFi */ void connectWiFi() { Serial.println("Connecting to WIFI"); WiFi.begin(ssid, password); while ((!(WiFi.status() == WL_CONNECTED))) { delay(300); Serial.print(".."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("NodeMCU Local IP is : "); Serial.print((WiFi.localIP())); } /* check command received from Android Device */ String checkClient (void) { while(!client.available()) delay(1); String request = client.readStringUntil('\r'); request.remove(0, 5); request.remove(request.length()-9,9); return request; } /* send command echo back to android device */ void sendBackEcho(String echo) { client.println("HTTP/1.1 200 OK "); client.println("Content-Type: text/html"); client.println(""); client.println(""); client.println(""); client.println(echo); client.println(""); client.stop(); delay(1); }