Search

How to Make Computer on off device at home




Circuit:



Download Programming....


#include <SoftwareSerial.h>


//sender phone number with country code

const String PHONE = "ENTER_YOUR_PHONE_HERE";


//GSM Module RX pin to Arduino 3

//GSM Module TX pin to Arduino 2

#define rxPin 2

#define txPin 3

SoftwareSerial sim800(rxPin,txPin);


#define PC 7


String smsStatus,senderNumber,receivedDate,msg;

boolean isReply = false;


void setup() {

digitalWrite(PC, HIGH);

delay(7000);

Serial.begin(115200);

Serial.println("Arduino serial initialize");

sim800.begin(9600);

Serial.println("SIM800L software serial initialize");


pinMode(PC, OUTPUT);


smsStatus = "";

senderNumber="";

receivedDate="";

msg="";


sim800.print("AT+CMGF=1\r"); //SMS text mode

delay(1000);

//delete all sms

sim800.println("AT+CMGD=1,4");

delay(1000);

sim800.println("AT+CMGDA= \"DEL ALL\"");

delay(1000);

}


void loop() {

//////////////////////////////////////////////////

while(sim800.available()){

parseData(sim800.readString());

}

//////////////////////////////////////////////////

while(Serial.available()) {

sim800.println(Serial.readString());

}

//////////////////////////////////////////////////

} //main loop ends


//***************************************************

void parseData(String buff){

Serial.println(buff);


unsigned int len, index;

//////////////////////////////////////////////////

//Remove sent "AT Command" from the response string.

index = buff.indexOf("\r");

buff.remove(0, index+2);

buff.trim();

//////////////////////////////////////////////////

//////////////////////////////////////////////////

if(buff != "OK"){

index = buff.indexOf(":");

String cmd = buff.substring(0, index);

cmd.trim();

buff.remove(0, index+2);

if(cmd == "+CMTI"){

//get newly arrived memory location and store it in temp

index = buff.indexOf(",");

String temp = buff.substring(index+1, buff.length());

temp = "AT+CMGR=" + temp + "\r";

//get the message stored at memory location "temp"

sim800.println(temp);

}

else if(cmd == "+CMGR"){

extractSms(buff);

if(senderNumber == PHONE){

doAction();

//delete all sms

sim800.println("AT+CMGD=1,4");

delay(1000);

sim800.println("AT+CMGDA= \"DEL ALL\"");

delay(1000);

}

}

//////////////////////////////////////////////////

}

else{

//The result of AT Command is "OK"

}

}


//************************************************************

void extractSms(String buff){

unsigned int index;

index = buff.indexOf(",");

smsStatus = buff.substring(1, index-1);

buff.remove(0, index+2);

senderNumber = buff.substring(0, 13);

buff.remove(0,19);

receivedDate = buff.substring(0, 20);

buff.remove(0,buff.indexOf("\r"));

buff.trim();

index =buff.indexOf("\n\r");

buff = buff.substring(0, index);

buff.trim();

msg = buff;

buff = "";

msg.toLowerCase();

}


void doAction(){

if(msg == "pc off"){

digitalWrite(PC, HIGH);

delay(50);

digitalWrite(PC, LOW);

delay(50);

Reply("Your PC has been OFF");

}

else if(msg == "pc on"){

digitalWrite(PC, HIGH);

delay(50);

digitalWrite(PC, LOW);

delay(50);

Reply("Your PC has been ON");

}


smsStatus = "";

senderNumber="";

receivedDate="";

msg="";

}


void Reply(String text)

{

sim800.print("AT+CMGF=1\r");

delay(1000);

sim800.print("AT+CMGS=\""+PHONE+"\"\r");

delay(1000);

sim800.print(text);

delay(100);

sim800.write(0x1A); //ascii code for ctrl-26 //sim800.println((char)26); //ascii code for ctrl-26

delay(1000);

Serial.println("SMS Sent Successfully.");

}



Demo Video:




166 views1 comment

Recent Posts

See All