hello guys, shield working fine , need reset in each time interval. problem after reset stop working, don't receive more sms neither answer me.
sorry bad english.
here code.
#include "sim900.h"
#include <softwareserial.h>
//carrega biblioteca sms
#include "sms.h"
smsgsm sms;
boolean started = false;
char smsbuffer[160];
char n[20];
boolean estado = low;
boolean estado1 = high;
string msg_esperada("liga 13");
string msg_esperada1("desliga 13");
void setup()
{
//inicializa serial
serial.begin(9600);
//define porta 13 como saida
pinmode(13, output);
serial.print("ligando shield gsm sim900. ");
liga_desliga_gsmshield();
serial.println("testando gsm shield...");
//comunicacao com o shield gsm 2400 bauds
if (gsm.begin(2400))
{
serial.println("nstatus=ready");
started = true;
}
else serial.println("nstatus=idle");
}
void loop()
{
if (started)
{
//aguarda sms
serial.println("aguardando sms...");
if (gsm.readsms(smsbuffer, 160, n, 20))
{
string msg_recebida(smsbuffer);
msg_recebida.trim();
msg_esperada.trim();
if ((msg_recebida == msg_esperada) && (strstr(n, "031971774886")))
{
estado = !estado;
serial.println("sms recebido! ligando bomba...");
digitalwrite(13, estado);
sms.sendsms("031971774886", "sms recebido! ligando bomba.");
delay(50000);
}
delay(5000);
}
if (gsm.readsms(smsbuffer, 160, n, 20))
{
string msg_recebida(smsbuffer);
msg_recebida.trim();
msg_esperada1.trim();
if ((msg_recebida == msg_esperada1) && (strstr(n, "031971774886")))
{
estado1 = !estado1;
serial.println("sms recebido! desligando bomba.");
digitalwrite(13, estado1);
sms.sendsms("031971774886", "sms recebido! desligando bomba.");
delay(50000);
}
delay(5000);
}
}
delay(15000);
reset_gsmshield();
}
void liga_desliga_gsmshield()
{
serial.print(f("aguarde..."));
pinmode(6, output);
digitalwrite(6, low);
delay(1000);
digitalwrite(6, high);
delay(1000);
serial.println(f("ok!"));
digitalwrite(6, low);
delay(500);
}
void reset_gsmshield()
{
serial.print(f("aguarde..."));
digitalwrite(5, high);
delay(500);
digitalwrite(5, low);
delay(1000);
serial.println(f("ok!"));
delay(500);
}
sorry bad english.
here code.
#include "sim900.h"
#include <softwareserial.h>
//carrega biblioteca sms
#include "sms.h"
smsgsm sms;
boolean started = false;
char smsbuffer[160];
char n[20];
boolean estado = low;
boolean estado1 = high;
string msg_esperada("liga 13");
string msg_esperada1("desliga 13");
void setup()
{
//inicializa serial
serial.begin(9600);
//define porta 13 como saida
pinmode(13, output);
serial.print("ligando shield gsm sim900. ");
liga_desliga_gsmshield();
serial.println("testando gsm shield...");
//comunicacao com o shield gsm 2400 bauds
if (gsm.begin(2400))
{
serial.println("nstatus=ready");
started = true;
}
else serial.println("nstatus=idle");
}
void loop()
{
if (started)
{
//aguarda sms
serial.println("aguardando sms...");
if (gsm.readsms(smsbuffer, 160, n, 20))
{
string msg_recebida(smsbuffer);
msg_recebida.trim();
msg_esperada.trim();
if ((msg_recebida == msg_esperada) && (strstr(n, "031971774886")))
{
estado = !estado;
serial.println("sms recebido! ligando bomba...");
digitalwrite(13, estado);
sms.sendsms("031971774886", "sms recebido! ligando bomba.");
delay(50000);
}
delay(5000);
}
if (gsm.readsms(smsbuffer, 160, n, 20))
{
string msg_recebida(smsbuffer);
msg_recebida.trim();
msg_esperada1.trim();
if ((msg_recebida == msg_esperada1) && (strstr(n, "031971774886")))
{
estado1 = !estado1;
serial.println("sms recebido! desligando bomba.");
digitalwrite(13, estado1);
sms.sendsms("031971774886", "sms recebido! desligando bomba.");
delay(50000);
}
delay(5000);
}
}
delay(15000);
reset_gsmshield();
}
void liga_desliga_gsmshield()
{
serial.print(f("aguarde..."));
pinmode(6, output);
digitalwrite(6, low);
delay(1000);
digitalwrite(6, high);
delay(1000);
serial.println(f("ok!"));
digitalwrite(6, low);
delay(500);
}
void reset_gsmshield()
{
serial.print(f("aguarde..."));
digitalwrite(5, high);
delay(500);
digitalwrite(5, low);
delay(1000);
serial.println(f("ok!"));
delay(500);
}
do need call begin again after reset?
Arduino Forum > Using Arduino > Programming Questions > SIM900 Stop working after reset.
arduino
Comments
Post a Comment