#define ir 21
#define trigger 18
#define echo 19
#define pir 4
#define buzzer 16
#define led 17
#define sai 5
float dist;
int vir; //valor de ir
int vpir;
String senhac="2605";
void setup() {
Serial.begin(115200);
pinMode(ir, INPUT);
pinMode(pir, INPUT);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
vir = digitalRead(ir);
vpir = digitalRead(pir);
dist = Ultrasonic(trigger,echo);
boolean violado1 = false;
boolean violado2 = false;
boolean violado3 = false;
if (vir == HIGH){
Serial.println("Nível 1 violado");
delay(1000);
}
if (violado1 == true && dist < 20){
Serial.println("nível 1 e 2 violados");
delay(1000);
}
if (violado2 == true && vpir == 1){
Serial.println("nível 1, 2 e 3 violados");
delay(1000);
}
if (Serial.available()) {
String senha = Serial.readStringUntil('\n');
senha.trim();
if (senhac==senha) {
digitalWrite(led, HIGH);
}else {
digitalWrite(buzzer, HIGH);
delay(5000);
digitalWrite(buzzer, LOW);
}
}
}
//Bloco de programação do sensor ultrassônico
float Ultrasonic(int a, int b){
int distancia = 0;
while(distancia == 0) {
digitalWrite(a, 0);//reset do pino trigger
delayMicroseconds(5);
digitalWrite(a, 1);//set do pino trigger
delayMicroseconds(5);
float tempo = pulseIn(b,1);//
distancia = (tempo/2/29.15);
}
return distancia;
}