Ola pessoal.
Estou desenvolvendo um medidor de energia com comunicacao SMS.
A ideia é que o o medidor me responda com os parametros de medicao apos receber uma requisicao por sms.
O codigo que desenvolvi recebe a mensagem e me envia a resposta. No entanto, quando eu faco o upload do codigo para o hardware (Arduino + SIM800L), o hardware comeca a e enviar mensagens instantaneamente e initerruptamente. Me parece que a funcao de condicao nao esta funcionando.
Ou seja, meu codigo nao esta verificando se recebeu uma mensagem escrito a palavra "CONSULTA". Ele inicia automaticamente a enviar mensagens sem parar.
Alguem poderia me ajudar a solucionar isso?
#include <SoftwareSerial.h>
#define TX 8
#define RX 7
int fatura = 415;
int consumo = 876;
char message[180];
String textSms;
char inchar = 0;
SoftwareSerial serialSIM800(TX, RX);
void setup() {
Serial.begin(9600);
serialSIM800.begin(2400);
while (!Serial);
delay(1000);
serialSIM800.println("AT+CMGF=1\r\n");
delay(1000);
}
void loop ()
{
serialSIM800.println("AT+CMGR=1");
delay(2000);
inchar = serialSIM800.read();
if (serialSIM800.available() > 4) {
if (inchar == 'CONSULTA')
{
Serial.println(inchar);
serialSIM800.println("AT+CMGS=\"+5531985644009\"\r\n");
delay(1000);
//Send SMS content
serialSIM800.println("Fatura: R$");
serialSIM800.println(fatura);
serialSIM800.println("Consumo: kwh");
serialSIM800.println(consumo);
delay(1000);
//Send Ctrl+Z / ESC to denote SMS message is complete
serialSIM800.println((char)26);
delay(1000);
serialSIM800.println("AT+CMGD=1,4");
Serial.println("SMS Sent!");
}
}
}
Tags:
Estranho, não vejo pq entrar direto no laço. Tenta if (serialSIM800.available() > 4 &&
inchar == 'CONSULTA'
) {
}
pra ver no que dá
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por