C21. Soldier Security System Code
C21. Soldier Security System Code
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 i=0,k=0,lop=0;
int gps_status=0;
float latitude=0;
float logitude=0;
String Speed="";
String gpsString="";
char *test="$GPRMC";
int tx1 = 0;
int rx1 = 1;
int tx2 = 8;
int rx2 = 9;
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);
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);
void okcheck1()
{
unsigned char rcr;
do{
rcr = Serial2.read();
}while(rcr != 'K');
}
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);
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;
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);
/*
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);
}
*/
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);
}
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);
}
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);
}
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);
}