hi
i am working on a project theft intimation of vehicles using gsm and tracking it by gps.
here i am getting stuck with the infinite loop used in gps as it is continuously sending the lattitude and longitude. i also have to check 4 ir sensors and a pir sensor continuously.
please help me urgently for how am i going to use two loops in a program, out of which one is infinite loop.
the codes i am using are
#include<SoftwareSerial.h>
#include<TinyGPS.h>
long lat, lon;
int ir1 = 4;
int ir2 = 5;
int ir3 = 6;
int ir4 = 7;
int pir = 8;
int out = 9;
SoftwareSerial gpsSerial(2,3);
TinyGPS gps;
void setup()
{
pinMode(ir1, INPUT);
pinMode(ir2, INPUT);
pinMode(ir3, INPUT);
pinMode(ir4, INPUT);
pinMode(pir, INPUT);
pinMode(out, OUTPUT);
Serial.begin(9600);
delay(100);
gpsSerial.begin(9600);
send_sms ("ANUPAM YOUR CAR IS BEING ACCESSED BY SOMEONE");
send_sms ("AND THE POSITION OF YOUR CAR IS :");
}
//void loop() {}
void send_sms (char msg[])
{
Serial.println("AT");
delay(2000);
Serial.println("ATE0");
Serial.println('\r');
delay(1000);
Serial.println("AT+CMGF=1");
Serial.println('\r');
delay(1000);
Serial.println("AT+CMGS=\"9453894151\"");
Serial.println('\r');
delay(1000);
Serial.println(msg);
Serial.println("\x1A");
delay(1000);
}
void send_sms2 (long x, long y)
{
Serial.println("AT");
delay(2000);
Serial.println("ATE0");
Serial.println('\r');
delay(1000);
Serial.println("AT+CMGF=1");
Serial.println('\r');
delay(1000);
Serial.println("AT+CMGS=\"9453894151\"");
Serial.println('\r');
delay(1000);
Serial.print("Position: ");
Serial.print("lat: ");Serial.print(x);Serial.print(" ");
Serial.print("lon: ");Serial.println(y);
Serial.println("\x1A");
delay(1000);
}
void loop()
{
while(gpsSerial.available())
{
if(gps.encode(gpsSerial.read()))
{
gps.get_position(&lat,&lon);
send_sms2(lat,lon);
}
}
}
and the code for sensors is
#define ir1 4
#define ir2 5
#define ir3 6
#define ir4 7
#define pir 8
#define out 9
boolean flag_1 = LOW;
void setup()
{
pinMode(ir1, INPUT);
pinMode(ir2, INPUT);
pinMode(ir3, INPUT);
pinMode(ir4, INPUT);
pinMode(pir, INPUT);
pinMode(out, OUTPUT);
}
void loop()
{
/* if((digitalRead(ir1) == HIGH) || (digitalRead(ir2) == HIGH) || (digitalRead(ir3) == HIGH) || (digitalRead(ir4) == HIGH) || (digitalRead(pir) == HIGH))
{
digitalWrite(out,HIGH);
flag_1 = HIGH;
}
else
{
digitalWrite(out,LOW);
}*/
if (digitalRead(ir1) == HIGH)
{
digitalWrite(out,HIGH);
}
else
{
digitalWrite(out,LOW);
}
if (digitalRead(ir2) == HIGH)
{
digitalWrite(out,HIGH);
}
else
{
digitalWrite(out,LOW);
}
if (digitalRead(ir3) == HIGH)
{
digitalWrite(out,HIGH);
}
else
{
digitalWrite(out,LOW);
}
if (digitalRead(ir4) == HIGH)
{
digitalWrite(out,HIGH);
}
else
{
digitalWrite(out,LOW);
}
if (digitalRead(pir) == HIGH)
{
digitalWrite(out,HIGH);
}
else
{
digitalWrite(out,LOW);
}
}
please help to merge these two codes in one