bubulindo:
Ok... bom, podes contar o numero de aspas até à senha... ou ver quando é que é dado um \r ou \n.while (Serial.read() != ','); //encontrar a virgula.
for (int i= 0; i <= 7; i++) {
phone_number[i] = Serial.read(); //passar o numero de telefone para a variavel.
}
//encontrar o caracter de new line.
while (Serial.read() != '\n'); //aqui vais ter de experimentar para ver se o telemóvel envia \n ou \r.
//estamos prontos para testar a palavra passe...
char temp;
for (int i = 0; i <= 7; i++) { //a senha tem no máximo 8 caracteres.
if ((temp = Serial.read()) != '\n') { //aqui tambëm tens de ver qual e o caracter enviado...
senha[i] = temp;
} else {
//senha encontrada
//d\a um termino na string
senha [i] = '\0';
break; //sai do for
}
}
if (strcmp ("SENHA", senha) == 0){
//password correcta
} else {
//password errada
}
Modifiquei um código para que o arduino envie comando 'AT+CMGR=1' apenas quando a a tx do gsm enviar '+CMTI: "SM",1', mas qualquer coisa que chega na rx do arduino ele responde enviando 'AT+CMGR=1', no código abaixo troquei o comando pelo texto "CHEGOU SMS",
É possível fazer que uma parte do código espere que o módulo envie o comando '+CMTI: "SM",1' na porta rx do arduino e quando este comando chegar, e somente este, o código continua executando outra parte de código?
#include <SoftwareSerial.h> //Include the NewSoftSerial library to send serial commands to the cellular module.
#include <string.h> //Used for string manipulations
char incoming_char=0; //Will hold the incoming character from the Serial Port.
SoftwareSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.
void setup()
{
//Initialize serial ports for communication.
cell.begin(9600);
//Let's get started!
cell.println("Iniciando...");
}
void loop() {
//If a character comes in from the cellular module...
if(cell.available() >0)
{
if(cell.read() =='+CMTI: "SM",1'); //waiting sms from the cellular serial port. (GOSTARIA DE ESPERAR ESSE COMANDO E SOMENTE QUANDO CHEGAR PASSO A EXECUTAR O RESTO)
{
cell.println("CHEGOU SMS"); //Print text
cell.flush();
}
}
}