Hello!
I 'm trying to do home alarm gsm system, what calls 3 times and after that send sms
or until the incoming call interrupt the process. code works to calling and sending sms put not interrupt the protsess if i call gsm modem. can somebody help me.
#include <SoftwareSerial.h>
char inchar;
char phone_no[] = "";
const int analogPin = A0 ;
const int threshold = 1000;
char sisu[] = "Alarm kaivitus";
int helistamine = 0;
int sms = 0;
void setup()
{
Serial.begin(9600);
delay(2000);
delay(2000);
delay(100);
}
void call()
{
Serial.print("AT+CLIP=1\r\n");
Serial.println("AT+CMGF=0\r");
delay(5000);
Serial.println("AT");
delay(1000);
Serial.println("ATD+3725805****;\r\n");
delay(9000);
Serial.println("ATH");
delay(1000);
helistamine = helistamine + 1;
delay (10000);
}
void sms1()
{
Serial.print("AT+CMGF=1\r\n");
delay(100);
Serial.println("AT+CMGS=\"+3725805****\"");
delay(100);
Serial.print(sisu);
delay(100);
Serial.println((char)26);
sms = sms + 1;
}
void doSomething()
{
helistamine = 5;
sms = 5;
}
void reset()
{
if (Serial.available() > 0)
{
inchar = Serial.read();
if (inchar == '3')
{
delay(10);
inchar = Serial.read();
if (inchar == '7')
{
delay(10);
inchar = Serial.read();
if (inchar == '2')
{
delay(10);
inchar = Serial.read();
if (inchar == '5')
{
delay(10);
inchar = Serial.read();
if (inchar == '8')
{
delay(10);
inchar = Serial.read();
if (inchar == '0')
{
delay(10);
inchar = Serial.read();
if (inchar == '5')
{
delay(10);
inchar = Serial.read();
if (inchar == '*')
{
delay(10);
inchar = Serial.read();
if (inchar == '*')
{
delay(10);
inchar = Serial.read();
if (inchar == '*')
{
delay(10);
inchar = Serial.read();
if (inchar == '*')
{
Serial.println("ATH");
delay(10);
doSomething();
delay(60);
}
}
}
}
}
}
}
}
}
}
}
}
}
void loop()
{
int analogValue = analogRead(analogPin);
if (helistamine < 3)
{
if (analogValue > threshold)
{
reset();
delay(10000);
call();
delay(50000);
reset();
if (helistamine > 2)
{
if (sms < 1)
{
if (analogValue > threshold)
{ reset();
sms1();
}
}
}
if (analogValue < threshold)
{
helistamine = 0;
sms = 0;
}
}
}
}