String device; int led = 13;//pin 13 as OUTPUT LED pin int resetPin = 12; void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial1.begin(9600); Serial.println("ready"); Serial1.write("ready"); digitalWrite(resetPin, HIGH); delay(200); // initialize the digital pin as an output. pinMode(led, OUTPUT); pinMode(resetPin, OUTPUT); } void loop() { // put your main code here, to run repeatedly: while (Serial1.available()){ //Check if there is an available byte to read delay(10); //Delay added to make things stable char c = Serial1.read(); //Conduct a serial read device += c; //build the string. } if (device.length() > 0) { Serial.println(device); if(device == "skype") { Serial.println("skype"); Serial1.write("skype"); reset(); } else if(device == "closeskyp3") { Serial.println("closeskyp3"); Serial1.write("closeskyp3"); reset(); } else if(device == "viber") { Serial.println("viber"); Serial1.write("viber"); reset(); } else if(device == "closevib3r") { Serial.println("closevib3r"); Serial1.write("closevib3r"); reset(); } else if(device == "chrome") { Serial.println("chrome"); Serial1.write("chrome"); reset(); } else if(device == "closechrom3") { Serial.println("closechrom3"); Serial1.write("closechrom3"); reset(); } else if(device == "keyboard") { Serial.println("keyboard"); Serial1.write("keyboard"); reset(); } else if(device == "closek3yboard") { Serial.println("closek3yboard"); Serial1.write("closek3yboard"); reset(); } else if(device == "lockpc") { Serial.println("lockpc"); Serial1.write("lockpc"); reset(); } else if(device == "shutdown") { Serial.println("shutdown"); Serial1.write("shutdown"); reset(); } else if(device == "abortshutdown") { Serial.println("abortshutdown"); Serial1.write("abortshutdown"); reset(); } else if(device =="logoff") { Serial.println("logoff"); Serial1.write("logoff"); reset(); } else if(device == "reset") { reset(); } else if(device == "controlStatus") { Serial.println("ready"); Serial1.write("ready"); } else if(device == "notepad") { Serial.println("notepad"); Serial1.write("notepad"); } else if(device == "eclipse") { Serial.println("eclipse"); Serial1.write("eclipse"); } else if(device == "mediaplayer") { Serial.println("mediaplayer"); Serial1.write("mediaplayer"); } else if(device == "ccleaner") { Serial.println("ccleaner"); Serial1.write("ccleaner"); } else if(device == "calculator") { Serial.println("calculator"); Serial1.write("calculator"); } delay(500); device=""; //Reset the variable } } void reset() { delay(10); digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) //Serial.println("on"); delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW //Serial.println("off"); delay(1000); // wait for a second //Serial.println("resetting"); delay(10); digitalWrite(resetPin, LOW); //Serial.println("this never happens"); //this never happens because Arduino resets }