#define pinoOut 12 
#define red 32
#define purple 14
#define trigger 18
#define echo 19
float distancia;
#define pinoPIR 23
const int buzzer = 6;
void setup(){
pinMode(pinoOut, INPUT); 
Serial.begin (115200); 
pinMode(trigger, OUTPUT); // trigger
pinMode(echo, INPUT); //echo
pinMode(pinoPIR,INPUT);
pinMode(buzzer,OUTPUT);
}
void loop(){   
if(digitalRead(pinoOut) == 0){ 
Serial.println ("nivel 1 violado"); 
delay (1000);
nivel2();
}
else { 
Serial.println ("nenhum nivel detectado"); 
delay (1000);
}
}

void nivel2()  
{
distancia = Ultrasonic(trigger,echo);
delay(10);
if (distancia < 20){
Serial.println ("nivel 1 e 2 violado");
Serial.println("Mais precisamente em:");
Serial.println(distancia);
delay(1000);
nivel3();
}
}
float Ultrasonic(int pintrigger, int pinecho){
  int distancia = 0;
  while(distancia == 0) {
    digitalWrite(pintrigger, 0);
    delayMicroseconds(5);
    digitalWrite(pintrigger, 1);
    delayMicroseconds(5);
    float tempo = pulseIn(pinecho,1);
    distancia = (tempo/2/29.15);
  }
  return distancia;
  
}
void nivel3() {    
if(digitalRead(pinoPIR) == 1){ 
Serial.println ("nivel 1,2 e 3 violado"); 
delay (1000);
}
else { 
Serial.println ("nenhum nivel detectado"); 
delay (1000);
}
}