0% found this document useful (0 votes)
46 views9 pages

GSM Codexczxczx

Download as docx, pdf, or txt
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 9

#include <EEPROM.

h>

#include <gprs.h>

#include <SoftwareSerial.h>

#include <String.h>

#define SOP "R"

//#define EOP '>'

bool started = false;

bool ended = false;

char inData[80];

byte index;

int addr = 0;

int i=0,j=0,value,k=1,truenum;

char lastCharRead[100];

#define TIMEOUT 5000

#define LED1 5

#define LED2 10

#define SIM800_RX_PIN 7

//SIM800 RX is connected to Arduino D7

#define SIM800_TX_PIN 8

//Create software serial object to communicate with SIM800

SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);

bool ledStatus1;

bool ledStatus2;

GPRS gprs;

void setup() {
Serial.begin(9600);

delay(1000);

pinMode(LED1,OUTPUT);

pinMode(LED2,OUTPUT);

digitalWrite(LED1,LOW);

digitalWrite(LED2,LOW);

while(!Serial);

Serial.println("Starting SIM800 SMS Command Processor");

gprs.preInit();

delay(1000);

while(0 != gprs.init())

delay(1000);

Serial.print("init error\r\n");

delay(40000);

//Set SMS mode to ASCII

if(0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1\r\n", "OK", TIMEOUT))

ERROR("ERROR:CNMI");

return;

//Start listening to New SMS Message Indications

if(0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0\r\n", "OK", TIMEOUT))


{

ERROR("ERROR:CNMI");

return;

Serial.println("Init success");

serialSIM800.println( "AT+CMGF=1");

serialSIM800.write("AT+CMGL=ALL");

serialSIM800.write("AT+CMGD=,4");

delay(500);

Serial.println("deleted");

for(int j=1;j<11;j++)

value = EEPROM.read(j);

Serial.print(value, DEC);

inData[80]=value;

//Variable to hold last line of serial output from SIM800

char currentLine[500] = "";

int currentLineIndex = 0;
//Boolean to be set to true if message notificaion was found and next

//line of serial output is the actual SMS message content

bool nextLineIsMessage = false;

void loop()

//Write current status to LED pin

digitalWrite(LED1,LOW);

digitalWrite(LED2,LOW);

//If there is serial output from SIM800

if(gprs.serialSIM800.available())

for(i=0;i<65;i++)

lastCharRead[i] = gprs.serialSIM800.read();

delay(5);

if(lastCharRead[51] == SOP)

for(i=0;i<11;i++)

Serial.println(lastCharRead[11+i]);

EEPROM.write(i,lastCharRead[11+i]-48);

}
}

//Read each character from serial output until \r or \n is reached (which denotes end of line)

if(lastCharRead[51]=='O' && lastCharRead[52]=='N')

for(i=0;i<50;i++)

lastCharRead[i];

delay(5);

numberVerify();

Serial.println("verify");

if(truenum == 1){

k=0;

digitalWrite(LED1, HIGH);

ledStatus1 = 1;

delay(3000);

digitalWrite(LED1, LOW);

ledStatus1 = 0;

delay(1000);

Serial.println("motor on");

//Sets the GSM Module in Text Mode

delay(1000);

gprs.serialSIM800.write("AT+CMGF=1\r\n");

delay(1000);

// Delay of 1000 milli seconds or 1 second


gprs.serialSIM800.write("AT+CMGS=\"+91");

for(int j=1;j<11;j++){

value = EEPROM.read(j);

gprs.serialSIM800.print(value);

delay(3);

gprs.serialSIM800.write("\"\r\n");

delay(1000);

gprs.serialSIM800.write("Motor activated");// The SMS text you want to send

delay(100);

gprs.serialSIM800.write((char)26);// ASCII code of CTRL+Z

delay(1000);

if(lastCharRead[51]=='O' && lastCharRead[52]=='F')

for(i=0;i<50;i++)

lastCharRead[i];

delay(5);

numberVerify();

Serial.println("verify");

if(truenum == 1){

k=0;
digitalWrite(LED2, HIGH);

ledStatus2 = 1;

delay(3000);

digitalWrite(LED2, LOW);

ledStatus2 = 0;

delay(1000);

Serial.println("motor off");

//Sets the GSM Module in Text Mode

delay(1000);

gprs.serialSIM800.write("AT+CMGF=1\r\n");

delay(1000);

// Delay of 1000 milli seconds or 1 second

gprs.serialSIM800.write("AT+CMGS=\"+91");

for(int j=1;j<11;j++){

value = EEPROM.read(j);

gprs.serialSIM800.print(value);

delay(3);

gprs.serialSIM800.write("\"\r\n");

delay(1000);

gprs.serialSIM800.write("Motor Deactivated");// The SMS text you want to send

delay(100);

gprs.serialSIM800.write((char)26);// ASCII code of CTRL+Z

delay(1000);

}
}

if(lastCharRead[51]=='T' && lastCharRead[52]=='E')

for(i=0;i<50;i++)

lastCharRead[i];

delay(5);

numberVerify();

Serial.println("ooohhn");

if(truenum == 1){

k=0;

gprs.serialSIM800.write("AT+CMGF=1\r\n");

delay(1000);

// Delay of 1000 milli seconds or 1 second

gprs.serialSIM800.write("AT+CMGS=\"+91");

for(int j=1;j<11;j++){

value = EEPROM.read(j);

gprs.serialSIM800.print(value);

delay(3);

gprs.serialSIM800.write("\"\r\n");

delay(1000);

gprs.serialSIM800.write("SYSTEM IS WORKING PROPERLY");// The SMS text you want to send

delay(100);
gprs.serialSIM800.write((char)26);// ASCII code of CTRL+Z

delay(1000);

}}}

void numberVerify(){

value = EEPROM.read(k);

if(lastCharRead[i]-48 == value){

k++;}

if(k>=9){

truenum = 1; }

if(k<5){

truenum = 0; }

You might also like