0% found this document useful (0 votes)
19 views11 pages

C21. Soldier Security System Code

Uploaded by

reverbtales
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views11 pages

C21. Soldier Security System Code

Uploaded by

reverbtales
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

#include <LiquidCrystal.

h>
#include <stdio.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

#include <Wire.h>
#include "dht.h"

#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();
int memsx=0,memsy=0;

#define dht_apin 14
dht DHT;

int ADXL345 = 0x53;


int X_out=0, Y_out=0, Z_out=0;

unsigned char rcv,gchr;


char pastnumber[11];
int cntlmk=0;

int i=0,k=0,lop=0;
int gps_status=0;
float latitude=0;
float logitude=0;
String Speed="";
String gpsString="";
char *test="$GPRMC";

unsigned char gv=0,msg1[10],msg2[11];


float lati=0,longi=0;
unsigned int lati1=0,longi1=0;
unsigned char flat[5],flong[5];

int tx1 = 0;
int rx1 = 1;

int tx2 = 8;
int rx2 = 9;

int panic_sw = 16;

int buzzer = 22;

int gps = 24;

float tempc=0,humc=0;
int hbtc=0,hbtc1=0,rtrl=0;
int hbv=0,hbv1=0;

void adxl_345_init()
{
Wire.setSDA(10);
Wire.setSCL(11);

Wire.begin(); // Initiate the Wire library

// Set ADXL345 in measuring mode


Wire.beginTransmission(ADXL345); // Start communicating with the device
Wire.write(0x2D); // Access/ talk to POWER_CTL Register - 0x2D
// Enable measurement
Wire.write(8); // (8dec -> 0000 1000 binary) Bit D3 High for measuring enable
Wire.endTransmission();
delay(10);
}

void adxl_345_read()
{
// === Read acceleromter data === //
Wire.beginTransmission(ADXL345);
//X_out = int(X_out/256); //For a range of +-2g, we need to divide the raw values
by 256, according to the datasheet
Y_out = ( Wire.read()| Wire.read() << 8); // Y-axis value
//Y_out = int(Y_out/256);
Z_out = ( Wire.read()| Wire.read() << 8); // Z-axis value
//Z_out = int(Z_out/256);

X_out = (70000 - X_out);


Y_out = (70000 - Y_out);
Z_out = (70000 - Z_out);

void okcheck1()
{
unsigned char rcr;
do{
rcr = Serial2.read();
}while(rcr != 'K');
}

void gsm_send(String strs)


{
lcd.setCursor(15,1);lcd.write('G');
delay(5000);delay(4000);delay(5000);delay(4000);delay(4000);
Serial2.write("AT+CMGS=\"");
Serial2.write(pastnumber);
Serial2.write("\"\r\n"); delay(3000);
Serial2.print(strs);
Serial2.write(" https://www.google.co.in/search?client=opera&q=");
for(ii=0;ii<=6;ii++){Serial2.write(finallat[ii]);}
Serial2.write("%2C");
for(ii=0;ii<=7;ii++){Serial2.write(finallong[ii]);}
Serial2.write(0x1A); delay(5000);delay(4000);delay(4000);
lcd.setCursor(15,1);lcd.write(' ');
}

int sti=0;
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
int rtr1=0;

void beep()
{
digitalWrite(buzzer,HIGH);delay(2000);digitalWrite(buzzer,LOW);
}

char buff[200];
void upload(unsigned int s1,unsigned int s2,const char *s3,unsigned int s4,const
char *s5);
char readserver(void);
void clearserver(void);

const char* ssid = "iotserver";


const char* password = "iotserver123";

void setup()
{
Serial1.setRX(rx1);
Serial1.setTX(tx1);
Serial1.begin(9600);

Serial2.setRX(rx2);
Serial2.setTX(tx2);
Serial2.begin(1200);

pinMode(buzzer, OUTPUT);
pinMode(panic_sw, INPUT_PULLUP);

digitalWrite(buzzer, LOW);

lcd.begin(16, 2);lcd.cursor();
lcd.print(" Milatry Soldier");
lcd.setCursor(0,1);
lcd.print(" Security ");
delay(2500);

adxl_345_init();
if(!accel.begin())
{
while(1);
}

lcd.clear();lcd.print("Getting GPS.....");

delay(8000);

lcd.clear();
lcd.setCursor(0,0);
for(ii=0;ii<=6;ii++) lcd.write(finallat[ii]);

lcd.setCursor(0,1);
for(ii=0;ii<=7;ii++) lcd.write(finallong[ii]);
wifiinit();
delay(2500);

gsminit();
delay(1000);

lcd.clear();
lcd.setCursor(0,0);
lcd.print("T:"); //2-3-4,0
lcd.setCursor(5,0);
lcd.print("H:");//7-8-9-10,0
lcd.setCursor(10,0);
lcd.print("H:");//12-13-14-15,0

lcd.setCursor(0,1);
lcd.print("M:");//2-3-4,1
}

void loop()
{
lpk:
DHT.read11(dht_apin);

tempc = DHT.temperature;
humc = DHT.humidity;

lcd.setCursor(2,0);convertl(tempc);
lcd.setCursor(7,0);convertl(humc);
delay(200);
if(tempc > 40)
{
beep();
upload(finallat,finallong,tempc,humc,hbtc1,mems_string,panic_string);
String msg_send="";
msg_send = "High_Temp:" + String(tempc);
gsm_send(msg_send);
}
if(humc > 90)
{
beep();
upload(finallat,finallong,tempc,humc,hbtc1,mems_string,panic_string);
String msg_send="";
msg_send = "High_Hum:" + String(humc);
gsm_send(msg_send);
}

hbtc = analogRead(26);
//lcd.setCursor(10,1);convertl4(hbtc);
//delay(1000);
//goto lpk;

if(hbtc >= 200){rtrl++;}


else{rtrl=0;hbtc=0;}

if(rtrl == 1 && hbtc >= 20){hbtc1=67;}


if(rtrl == 2 && hbtc >= 20){hbtc1=69;}
if(rtrl == 3 && hbtc >= 20){hbtc1=68;}
if(rtrl == 4 && hbtc >= 20){hbtc1=72;}
if(rtrl == 5 && hbtc >= 20){hbtc1=74;}
if(rtrl == 6 && hbtc >= 20){hbtc1=68;}
if(rtrl == 7 && hbtc >= 20){hbtc1=73;}
if(rtrl == 8 && hbtc >= 20){hbtc1=68;}
if(rtrl == 9 && hbtc >= 20){hbtc1=72;}
if(rtrl == 10 && hbtc >= 20){hbtc1=67;}
if(rtrl == 11 && hbtc >= 20){hbtc1=69;}
if(rtrl == 12 && hbtc >= 20){hbtc1=70;}
if(rtrl == 13 && hbtc >= 20){hbtc1=71;}
if(rtrl == 14 && hbtc >= 20){hbtc1=75;}
if(rtrl == 15 && hbtc >= 20){rtrl=0;hbtc1=72;}
if(hbtc == 0){hbtc1=0;}

lcd.setCursor(12,0);convertl(hbtc1);
if(hbtc1 >= 75)
{
beep();
upload(finallat,finallong,tempc,humc,hbtc1,mems_string,panic_string);
String msg_send="";
msg_send = "High_H.B:" + String(hbtc1);
gsm_send(msg_send);
}

sensors_event_t event;
accel.getEvent(&event);
memsx = event.acceleration.x;
memsy = event.acceleration.y;

memset(mems_string,'\0',strlen(mems_string));
if((memsx >= -5 && memsx <= 5) && (memsy >= -5 && memsy <= 5))
{
//Serial1.println("Stable");
lcd.setCursor(2,1);lcd.print("Stable");
strcpy(mems_string,"Stable");
memss='s';
}
else
{
lcd.setCursor(2,1);lcd.print("Fall ");
memss='f';
strcpy(mems_string,"Fall");
beep();
upload(finallat,finallong,tempc,humc,hbtc1,mems_string,panic_string);
String msg_send="";
msg_send = "Fall_Down";
gsm_send(msg_send);
}

memset(panic_string,'\0',strlen(panic_string));
if(digitalRead(panic_sw) == LOW)
{
lcd.setCursor(8,1);lcd.print("Panic ");
strcpy(panic_string,"Panic");
beep();
upload(finallat,finallong,tempc,humc,hbtc1,mems_string,panic_string);
String msg_send="";
msg_send = "Panic";
gsm_send(msg_send);
}
if(digitalRead(panic_sw) == HIGH)
{
lcd.setCursor(8,1);lcd.print("--- ");
strcpy(panic_string,"-----");
}

delay(1200);
}

char bf2[50];
void upload(const char *sa,const char *sb,unsigned int s1,unsigned int s2,unsigned
int s3,const char *s4,const char *s5)
{
delay(2000);
lcd.setCursor(15, 1);lcd.print("U");
serial1Flush();
Serial1.println("AT+CIPSTART=4,\"TCP\",\"projectsfactoryserver.in\",80");

//http://projectsfactoryserver.in/storedata.php?name=pf5&s1=25&s2=35
//sprintf(buff,"GET http://embeddedspot.top/iot/storedata.php?name=iot139&s1=
%u&s2=%u&s3=%u\r\n\r\n",s1,s2);

delay(8000);
//https://projectsfactoryserver.in/storedata.php?
name=iotgps&lat=17.167898&lan=79.785643
memset(buff,0,strlen(buff));
sprintf(buff,"GET http://projectsfactoryserver.in/storedata.php?
name=iot936&lat=%s&lan=%s&s1=%u&s2=%u&s3=%u&s4=%s&s5=%s\r\n\r\
n",sa,sb,s1,s2,s3,s4,s5);

// memset(buff,0,strlen(buff));
// sprintf(buff,"GET http://projectsfactoryserver.in/storedata.php?
name=iot4&s1=%s\r\n\r\n",s1);

serial1Flush();
sprintf(bf2,"AT+CIPSEND=4,%u",strlen(buff));
Serial1.println(bf2);

delay(5000);

serial1Flush();
Serial1.print(buff);

delay(2000);

Serial1.println("AT+CIPCLOSE");
lcd.setCursor(15, 1);lcd.print(" ");
}

char readserver(void)
{
char t;
delay(2000);
lcd.setCursor(15, 1);lcd.print("R");
serial1Flush();
Serial1.println("AT+CIPSTART=4,\"TCP\",\"projectsfactoryserver.in\",80");
//http://projectsfactoryserver.in/last.php?name=amvi001L

delay(8000);
memset(buff,0,strlen(buff));
sprintf(buff,"GET http://projectsfactoryserver.in/last.php?name=iot4L\r\n\r\
n");
serial1Flush();
sprintf(bf2,"AT+CIPSEND=4,%u",strlen(buff));
Serial1.println(bf2);

delay(5000);

serial1Flush();
Serial1.print(buff);

//read status
while(1)
{
while(!Serial1.available());
t = Serial1.read();
// Serial2.print(t);
if(t == '*' || t == '#')
{
if(t == '#')return 0;
while(!Serial1.available());
t = Serial1.read();
// Serial.print(t);
delay(1000);
serial1Flush();
return t;
}
}
delay(2000);

Serial1.println("AT+CIPCLOSE");
lcd.setCursor(15, 1);lcd.print(" ");
delay(2000);
return t;
}

void clearserver(void)
{
delay(2000);
lcd.setCursor(15, 1);lcd.print("C");
serial1Flush();
Serial1.println("AT+CIPSTART=4,\"TCP\",\"projectsfactoryserver.in\",80");

//sprintf(buff,"GET http://projectsfactoryserver.in/storedata.php?
name=iot1&s10=0\r\n\r\n");
delay(8000);
memset(buff,0,strlen(buff));
sprintf(buff,"GET http://projectsfactoryserver.in/storedata.php?
name=iot4&s10=0\r\n\r\n");
serial1Flush();
sprintf(bf2,"AT+CIPSEND=4,%u",strlen(buff));
Serial1.println(bf2);
delay(5000);

serial1Flush();
Serial1.print(buff);

delay(2000);
serial1Flush();

Serial1.println("AT+CIPCLOSE");
lcd.setCursor(15, 1);lcd.print(" ");
delay(2000);
}

void wifiinit()
{
char ret;
st:
Serial1.println("ATE0");

lcd.clear();lcd.setCursor(0, 0);lcd.print("CONNECTING");
Serial1.println("AT+CWMODE=1");
ret = check((char*)"OK",50);
cagain:

serial1Flush();
Serial1.print("AT+CWJAP=\"");
Serial1.print(ssid);
Serial1.print("\",\"");
Serial1.print(password);
Serial1.println("\"");
if(check((char*)"OK",300))goto cagain;
Serial1.println("AT+CIPMUX=1");
delay(1000);

lcd.clear();lcd.setCursor(0, 0);lcd.print("WIFI READY");


}

/*
void wifiinit()
{
Serial1.write("AT\r\n"); delay(3000);lcd.clear();lcd.print("WIFI-
1");
Serial1.write("ATE0\r\n"); delay(3000);lcd.clear();lcd.print("WIFI-
2");
Serial1.write("AT+CWMODE=3\r\n"); delay(3000);lcd.clear();lcd.print("WIFI-
3");
Serial1.write("AT+CWJAP=\"iotserver\",\"iotserver123\"\r\n");
delay(5000);lcd.clear();lcd.print("WIFI-4");
Serial1.write("AT+CIPMUX=1\r\n");delay(3000); lcd.clear();lcd.print("WIFI-
5");delay(2000);
lcd.clear();
lcd.print("WIFI Connected");
delay(1000);
}
*/

int readSerial(char result[])


{
int i = 0;
while (1)
{
while(Serial2.available() < 0)
{
char inChar = Serial2.read();
if (inChar == '\n')
{
result[i] = '\0';
Serial2.flush();
return 0;
}
if (inChar != '\r')
{
result[i] = inChar;
i++;
}
}
}
}

void gsminit()
{
Serial2.write("AT\r\n"); okcheck1();
Serial2.write("ATE0\r\n"); okcheck1();
Serial2.write("AT+CMGF=1\r\n"); okcheck1();
Serial2.write("AT+CNMI=1,2,0,0\r\n"); okcheck1();
Serial2.write("AT+CSMP=17,167,0,0\r\n"); okcheck1();

lcd.clear();
lcd.print("SEND MSG STORE");
lcd.setCursor(0,1);
lcd.print("MOBILE NUMBER");
do{
rcv = Serial2.read();
}while(rcv == '*');
readSerial(pastnumber);

lcd.clear();
lcd.print(pastnumber);
pastnumber[10]='\0';

delay(4000);delay(4000);
Serial2.write("AT+CMGS=\"");
Serial2.write(pastnumber);
Serial2.write("\"\r\n"); delay(3000);
Serial2.write("Mobile no. registered\r\n");
Serial2.write(0x1A);
delay(4000);delay(4000);
}

void converts(unsigned int value)


{
unsigned int a,b,c,d,e,f,g,h;

a=value/10000;
b=value%10000;
c=b/1000;
d=b%1000;
e=d/100;
f=d%100;
g=f/10;
h=f%10;

a=a|0x30;
c=c|0x30;
e=e|0x30;
g=g|0x30;
h=h|0x30;

// Serial1.write(a);
// Serial1.write(c);
Serial1.write(e);
Serial1.write(g);
Serial1.write(h);
}

void convertl(unsigned int value)


{
unsigned int a,b,c,d,e,f,g,h;

a=value/10000;
b=value%10000;
c=b/1000;
d=b%1000;
e=d/100;
f=d%100;
g=f/10;
h=f%10;

a=a|0x30;
c=c|0x30;
e=e|0x30;
g=g|0x30;
h=h|0x30;

// lcd.write(a);
// lcd.write(c);
lcd.write(e);
lcd.write(g);
lcd.write(h);
}

void convertl4(unsigned int value)


{
unsigned int a,b,c,d,e,f,g,h;

a=value/10000;
b=value%10000;
c=b/1000;
d=b%1000;
e=d/100;
f=d%100;
g=f/10;
h=f%10;

a=a|0x30;
c=c|0x30;
e=e|0x30;
g=g|0x30;
h=h|0x30;

lcd.write(a);
lcd.write(c);
lcd.write(e);
lcd.write(g);
lcd.write(h);
}

You might also like