Boas amigo,
O codigo que criei, nao garanto que funciona nao o testei gosto de testar e se estiver mal ir a procura do erro, parece-me que deste modo da mas so tu o podes testar.
codigo
|
|
v
if (dados == 'a') { // Se o byte lido for igual a 'a'
caracter = 1;
}
if ((dados == 'b') && (caracter == 1)) { // Se o byte lido for igual a 'b' depois do 'a'
caracter = 2;
}
if ((dados == 'c') && (caracter == 2)) { // Se o byte lido for igual a 'c' depois do 'a' e do 'b'
caracter = 3;
}
if ((dados == 'd') && (caracter == 3)) { // Se o byte lido for igual a 'd' depois do 'a' do 'b' e do 'c'
caracter = 4;
}
if (caracter == 4) { //palavra passe 'abcd' foi recebida
digitalWrite(RELE, LOW); // Liga o relé e aciona o motor
}
if ((dados != 'a') || (dados != 'b') || (dados != 'c') || (dados != 'd') || (dados !== 'f'))// Se o byte lido for diferente de qualquer um dos da passe ou igual a 'f'
{
digitalWrite(RELE, HIGH); // Desliga o relé
caracter = 0;
}
//comentarios
|
|
v
Acho que consegues aplicar isto mas para isso nao podes enviar a pass toda junta, deves enviar um caracter da password de cada vez tipo teres um keypad com os varios numeros e letras na app e cada vez que carregas num numero ou letra esse e enviado para o arduino, eu penso que da maneira que o codigo esta so se fizeres a sequencia certa toda seguida e que ele ativa o motor, caso contrario desliga o rele.
Repara que tens de criar uma varialvel caracter
int caracter=0;
fora de qualquer void ();
esta e responsavel por ir verificando se a sequencia esta correta e se for inserido um valor errado tambem esta e resetada e a password tera de ser inserida do inico.
Neste codigo nao se esta a retribuir ao utilizador da app que a passe foi mal inserida mas tambem o e possivel fazer mas isso ja sao apenas algo para ficar melhor, boa sorte espero ter ajudado.
Dá-me feedback.