You are on page 1of 5

#include <LiquidCrystal.

h>
LiquidCrystal lcd(6, 7, 2, 3, 4, 5); // LCD PIN OUT

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9);
SoftwareSerial gpsSerial(10, 11);

#include "TinyGPS++.h"
TinyGPSPlus gps;

int i=0;
int led=6;
char str[15];
int val=0;
int t=0, h=0;
int x=0;
int count=0,k=0,rate=0;
unsigned long time2,time1;
unsigned long time;
String strTemp;
float temp;
float frht;

int in = A0; // HEART BEAT SENSOR PIN

char* lati = new char[20];


char* longi = new char[20];
float latitude,longitude;

void setup()
{

mySerial.begin(9600); // Setting the baud rate of GSM Module


Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino)
gpsSerial.begin(9600);

pinMode(A3,OUTPUT);
digitalWrite(A3,LOW);

delay(100);
Serial.println("SOLDIER HEALTH MONITORING USING HB, TEMP, GPS AND GSM");

// LCD 2X16 SETUP

lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print(" SOLDIER HEALTH ");
lcd.setCursor(0, 1);
lcd.print("MONITORING USING");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HEART BEAT,TEMP");
lcd.setCursor(0, 1);
lcd.print("* GPS AND GSM* ");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SYNC WITH HBEAT");
lcd.setCursor(0, 1);
lcd.print("AND PRESS START");
delay(1000);
while(1)
{
x=digitalRead(A2);
if(x==HIGH)
break;
}
}

void loop()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MONITORNG DEVICE");
lcd.setCursor(0, 1);
lcd.print(" STARTED ");
delay(1000);

while(1)
{

k=0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Monitoring - HB ");
lcd.setCursor(0, 1);
lcd.print("Taking 7-9 Pulse");

// HEART BEAT SENSOR CALCULATION

while(k<5)
{
if(digitalRead(in))
{
if(k==0)
time1=millis();
k++;
while(digitalRead(in));
}
}
time2=millis();
rate=time2-time1;
rate=rate/5;
rate=60000/rate;

int val = 0;
for(int i = 0; i < 10; i++)
{
val += analogRead(A1);
delay(30);
}

temp = val*50.0f/1023.0f;
frht = (temp*1.8000)+32; // (C * 1.800)+32 = F
// convert to string
char buf[16];
strTemp = dtostrf(frht, 4, 1, buf);

lcd.clear();

lcd.setCursor(0, 0);
lcd.print("TEMP = ");
lcd.setCursor(7, 0);
lcd.print(strTemp);

lcd.setCursor(0,1);
lcd.print("HEART BEAT = ");
lcd.setCursor(13,1);
lcd.print(rate);

delay(1000);

if((frht<40)|(frht>102)|(rate>120)(rate<40))
{
digitalWrite(A3,HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" CHANGE IN BODY ");
lcd.setCursor(0, 1);
lcd.print(" PARAMETERS ");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SENDING DETAILS");
lcd.setCursor(0, 1);
lcd.print(" TO ARMY ");
delay(1000);
digitalWrite(A3,LOW);
getlat();
}

void getlat() // GET LOCATION, SEND SMS AND CALL TO REGISTERED NUMBER
{

gpsSerial.begin(9600);
mySerial.end();

while(1)
{
while(gpsSerial.available()>0)
{
if(gps.encode(gpsSerial.read()))
{

// READING LATITUDE AND LONGITUDE

Serial.println(gps.location.lat(), 6); // Latitude in degrees (double)


Serial.println(gps.location.lng(), 6); // Longitude in degrees (double)
Serial.print("LAT=");
latitude = gps.location.lat();
dtostrf(latitude,7,5,lati);
Serial.println(lati); // LATITUDE IN DEGREE

Serial.print("LONG=");
longitude = gps.location.lng();
dtostrf(longitude,7,5,longi);
Serial.println(longi); // LONGITUDE IN DEGREE
delay(1000);

gpsSerial.end();
mySerial.begin(9600);

// SMS 1

mySerial.println("AT+CMGF=1");
delay(1000);
mySerial.println("AT+CMGS=\"+916300123987\"\r"); // ENTER REPLY NUMBER
delay(1000);
mySerial.print("SOLDIER AT DANGER, CHANGE IN BODY PARAMETER DETECTED :");
delay(100);
mySerial.print("http://www.google.com/maps/place/"); // GMAP LINK
delay(100);
mySerial.print(lati); // LATITUDE
delay(100);
mySerial.print(",");
delay(100);
mySerial.print(longi); // LONGITUDE
delay(100);

mySerial.println((char)26); // CTRL+Z
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LOCATION SENT");
lcd.setCursor(0, 1);
lcd.print("REGISTERED U - 1");
delay(4000);

// SMS 2

mySerial.println("AT+CMGF=1");
delay(1000);
mySerial.println("AT+CMGS=\"+916300693365\"\r"); // ENTER REPLY NUMBER
delay(1000);
mySerial.print("SOLDIER AT DANGER, CHANGE IN BODY PARAMETER DETECTED :");
delay(100);
mySerial.print("http://www.google.com/maps/place/"); // GMAP LINK
delay(100);
mySerial.print(lati); // LATITUDE
delay(100);
mySerial.print(",");
delay(100);
mySerial.print(longi); // LONGITUDE
delay(100);

mySerial.println((char)26); // CTRL+Z
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LOCATION SENT");
lcd.setCursor(0, 1);
lcd.print("REGISTERED U - 2");
delay(5000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" MESSAGES SENT ");
lcd.setCursor(0, 1);
lcd.print(" TO ARMY ");
while(1);
}
}
}
}

You might also like