Sunteți pe pagina 1din 4

/* ARDUINO COLEGIO PROFESSOR FRANSISCO TORRES CONTROLE AUTOMATICO DE RESIDENCIA POR DMTF COM SENHA Acionamento de comandos via

senha previamente informada A senha dever ser do tipo '*senha#'. No exemplo a senha *1234# */ int numero; #define #define #define #define #define #define #define int int int int int int int int int int int int int int int int int RELE1 9 RELE1 10 RELE1 11 RELE1 12 RELE1 13 RELE1 14 LEDBLOQUEIO A0 LOW; LOW; LOW; LOW; LOW; LOW;

RELE1_STATE = RELE2_STATE = RELE3_STATE = RELE4_STATE = RELE5_STATE = RELE6_STATE = pinBit01 = 7; pinBit02 = 6; pinBit03 = 5; pinBit04 = 4; pinBitSts= 3; bit01 = 0; bit02 = 0; bit03 = 0; bit04 = 0; bitSts= 0; bloqueio = 0;

boolean proceed = false; //Flag que habilita o funcionamento dos comandos median te senha digitada corretamente - inicializa falso! String tmpPass =""; //Armazenamento da senha digitada no celular!

void setup() { Serial.begin(9600); pinMode(RELE1, OUTPUT); digitalWrite(RELE1, LOW); pinMode(LEDBLOQUEIO, OUTPUT); digitalWrite(LEDBLOQUEIO, HIGH); Serial.println("Aguardando comando..."); } void loop() {

if (bloqueio > 5) { proceed = false; digitalWrite(LEDBLOQUEIO, HIGH); } //caso o bloqueio seja maior do que 5 tentativas o sistema travar a proceed e m false desabilitanto o sistema

String password = "1234"; // Defina sua senha aqui - pode ser de quaisquer nmer os de digitos! bitSts= bit01 = bit02 = bit03 = bit04 = numero digitalRead(pinBitSts); digitalRead(pinBit01); digitalRead(pinBit02); digitalRead(pinBit03); digitalRead(pinBit04); = (bit01 * 1) + (bit02 * 2) + (bit03 * 4) + (bit04 * 8);

if (bitSts == HIGH && numero < 13) { Serial.print("Recebido: "); switch (numero){ case 1: Serial.println("1"); tmpPass += "1"; /* COMANDO PARA RELE1 */ if (proceed == true) { RELE1_STATE = !RELE1_STATE; digitalWrite(RELE1, RELE1_STATE); } break; case 2: Serial.println("2"); tmpPass += "2"; if (proceed == true) { RELE2_STATE = !RELE2_STATE; digitalWrite(RELE2, RELE2_STATE); } break; case 3: Serial.println("3"); tmpPass += "3"; if (proceed == true) { RELE3_STATE = !RELE3_STATE; digitalWrite(RELE3, RELE3_STATE); } break; case 4:

Serial.println("4"); tmpPass += "4"; if (proceed == true) { RELE4_STATE = !RELE4_STATE; digitalWrite(RELE4, RELE4_STATE); } break; case 5: Serial.println("5"); tmpPass += "5"; if (proceed == true) { RELE5_STATE = !RELE5_STATE; digitalWrite(RELE5, RELE5_STATE); } break; case 6: Serial.println("6"); tmpPass += "6"; if (proceed == true) { RELE6_STATE = !RELE6_STATE; digitalWrite(RELE6, RELE6_STATE); } break; case 7: Serial.println("7"); tmpPass += "7"; break; case 8: Serial.println("8"); tmpPass += "8"; break; case 9: Serial.println("9"); tmpPass += "9"; break; case 10: Serial.println("0"); tmpPass += "0"; break; case 11: // Caractere '*' Serial.println("*"); tmpPass =""; break; case 12: // Caractere '#' Serial.println("#");

tmpPass.trim();//Retira os espaos em branco - ver caractere '*'! if (bloqueio > 5) { Serial.println("O sistema esta bloqueado reset e digite a senha corr eta!"); } else { if (tmpPass == password) { // proceed = !proceed; //Habilita todos os comandos via telemvel if (proceed == false) { Serial.println("Senha correta! ligando sistema..."); proceed = true; digitalWrite(LEDBLOQUEIO, LOW); bloqueio = 0; } else { Serial.println("Senha correta! desligando sistema..."); proceed = false; digitalWrite(LEDBLOQUEIO, HIGH); bloqueio = 0; } } else { Serial.print("Senha ERRADA! voce tem "); Serial.print(5 - bloqueio); Serial.println(" tentativas"); proceed = false;//Desabilita todos os comandos via telemvel bloqueio = bloqueio +1; //incrementa +1 no bloqueio } } Serial.print("Senha digitada = "); Serial.println(tmpPass); Serial.print("password = "); Serial.println(password); Serial.print("Tentativas incorretas = "); Serial.println(bloqueio); break; } numero = 0; bit01 = 0; bit02 = 0; bit03 = 0; bit04 = 0; bitSts= 0; delay (500); } }

S-ar putea să vă placă și