Olá pessoal.

Preciso de separar os dados que contem nessa linha abaixo.

"REC READ","+5516000000000","","12/05/21,12:21:43-12"Ligar

Preciso Separar o 5516000000000

Preciso Separar o 12/05/21,12:21:43

Preciso Separar o Ligar

Sem espaço antes e depois de cada um deles

Recebo o valor dessa linha após dar o comando  Serial2.println("AT+CMGR=1");

Ele retorna a Linha de baixo

"REC READ","+5516000000000","","12/05/21,12:21:43-12"

Ligar

Tenho um modelo que está dando dor de cabeça e já faz 4 dias que estou com essa questão, então como o código está dando problema prefiro fazer do zero com a sugestão de um modelo se algum puder Ajudar, mais segue um modelo que eu estou usando para separa que não está dando muito certo.

void lesms()
{

Serial.println("|");
Serial.println("|");
Serial.println("|");
Serial.println("|");
Serial.println("-------------------------- LENDO SMS --------------------------");
Serial.println("|");
Serial.println("|");

Serial2.println("AT+CMGR=1"); //Reads the first SMS
Serial2.flush();
for (x=0;x < 255;x++){
data[x]='\0';
}
x=0;
do{
while(Serial2.available()==0);
data[x]=Serial2.read();
x++;




//if(data[x-1]=='+'){ // remove o cabeçalho +CMGR: "REC READ","+ vc quer verificar aqui ou criar uma funçao fora?pode ser ai
//x=0;
//}

//if(data[x-2]=='7'){ // remove o cabeçalho "REC READ","+5516000000000","","12/05/21,12:21:43-12"Ligar aqui separo o numero do fone

// x=0;
//}
if(data[x-1]=='+'&&data[x-2]=='"'){ // remove o cabeçalho +CMGR: "REC READ","xxxx","","12/05/21,12:21:43-12"
x=0;
}
}
//while(!(data[x-1]=='K'&&data[x-2]=='O')); // enquanto não encontrar o ok não para
while(!(data[x-1]=='K'&&data[x-2]=='O')); // enquanto não encontrar o ok não para
data[x-3]='\0'; //finish the string before the OK
Serial.println(data); //shows the message
//splitString(data);
delay(2000);
Serial.println("|");
Serial.println("|");
Serial.println("---------------------------- F I M ----------------------------");
Serial.println("|");
Serial.println("|");
Serial.println("|");
Serial.println("|");


}

void validasms()
{
j=0;
i=0;
Serial.println("---------------------VALIDANDO MENSAGEM SMS ---------------------");//executa comando

Serial.println("|");
Serial.println("|");

strcpy (msg1, data);
strcpy (msg2, data);

//###########################
for(i=0; i!=12; i++)
{
nremetente[i]=msg1[i];
}
nremetente[12]='\0';

//###########################

j=0;
i=0;
char codremetente[] = " ";

for(i=41; i!=45; i++)
{
codremetente[j]=msg2[i];
j++;
}
codremetente[5]='\0';

///###########################

Serial.print("NUMERO DO REMETENTE: "); 
Serial.println(nremetente);  ///aqui é o 5516000000000
Serial.print("CODIGO ENVIADO : ");
Serial.println(codremetente); // aqui é o Ligar


if (!strcmp(nremetente, ncadastrado))
{
Serial.println("O REMETENTE E' IGUAL AO CADASTRADO");

} else {
Serial.println("O REMETENTE NAO IGUAL AO CADASTRADO");

}

if (!strcmp(codremetente, codcadastrado))
{
Serial.println("O CODIGO E IGUAL AO CADASTRADO");

} else {
Serial.println("O CODIGO ENVIADO DIFERENTE DO CADASTRADO");

}

Serial.println("---------------------------- F I M ----------------------------");
delay(60000);

}

Por favor Pessoal Ajuda aee..

Exibições: 194

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço