Ir para o conteúdo
manuelbarreto

Problema Arduino a devolver SMS

Mensagens Recomendadas

manuelbarreto

Boa noite!

Tou a fazer o controlo de um rela por sms!

O que acontece é o seguinte se eu tiver so a controlar o rela funciona bem consigo ligar e desligar o problema e quando coloco o codigo para me devolver uma sms porque ele comeca a enviar sms e não para!

Vou deixar aqui o cod haver se alguem me consegue dar uma dica!!

Obg

#include <SoftwareSerial.h>

char inchar; // Will hold the incoming character from the GSM shield

SoftwareSerial SIM900(7, 8);

int porta = 13;

int x,y;

String textForSMS;

void SIM900power()

// software equivalent of pressing the GSM shield "power" button

{

digitalWrite(9, HIGH);

delay(100);

digitalWrite(9, LOW);

delay(100);

}

void setup()

{

pinMode(porta,OUTPUT);

digitalWrite(porta,HIGH);

Serial.begin(19200);

// wake up the GSM shield

SIM900power();

SIM900.begin(19200);

delay(200); // give time to log on to network.

SIM900.print("AT+CMGF=1\r"); // set SMS mode to text

delay(100);

SIM900.print("AT+CNMI=2,2,0,0,0\r");

// blurt out contents of new SMS upon receipt to the GSM shield's serial out

Serial.println("Ready...");

}

void loop()

{

//If a character comes in from the cellular module...

if(SIM900.available() >0)

{

inchar=SIM900.read();

if (inchar=='L')

{

digitalWrite(porta,HIGH);

Serial.println("Luz Ligada ");

delay(100);

SIM900.println("AT + CMGS = \"003519382*****\""); // recipient's mobile number, in international format

delay(100);

SIM900.println("Luz Ligada Sr. Custodio!!"); // message to send

delay(100);

SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26

delay(100);

SIM900.println();

delay(5000); // give module time to send SMS

}

if (inchar=='D')

{

digitalWrite(porta,LOW);

Serial.println("Luz Desligada");

delay(100);

SIM900.println("AT + CMGS = \"003519382****\""); // recipient's mobile number, in international format

delay(100);

SIM900.println("Luz Desligada Sr. Custodio!!"); // message to send

delay(100);

SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26

delay(100);

SIM900.println();

delay(5000); // give module time to send SMS

}

}

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Não esvaziaste o buffer da mensagem....

Antes de saires do ciclo deves ler tudo o que o modulo tem para receber ate o metodo .available ser igual a zero.


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Ok, ver o fórum com sono e no iPad não resulta muito bem.

Já testaste ler uma mensagem do telemóvel para o Serial Port? Poderá haver mais do que um L ou D na mensagem?

Depois olhando a mais exemplos com o mesmo módulo na internet fiquei um pouco confuso com as tuas temporizações.

Outra coisa que também me parece estranha é não haver configuração do módulo.

http://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules/

Já viste isso?

Outra coisa, que mensagem é que recebes? A de luz ligada ou luz desligada? Podes tirar o código de envio de SMS's e colocar código para fazeres debug do que se passa?

Editado por bubulindo

include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.