// Initialize sensors 
const int TriggerPin = 6;  
// Ultrasonic trigger pin D7
const int EchoPin = 10;     
// Ultrasonic echo pin D6 
const int LedPin = 5;      
// LED pin D5
const int BuzzerPin = 4;   
// Buzzer pin D4 
long distanceThreshold = 25; 
// Distance at which Ultrasonic activate 
void setup() 
{
  pinMode(TriggerPin, OUTPUT);
  //trig pin out
  pinMode(EchoPin, INPUT);
  //echo pin in
  pinMode(LedPin, OUTPUT);
  //led out
  pinMode(BuzzerPin, OUTPUT);
  Serial.begin(9600);
  // Serial Monitor begin at 9600 baud rate 
}
long getDistance() 
{
  digitalWrite(TriggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(TriggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TriggerPin, LOW);
  long duration = pulseIn(EchoPin, HIGH);
  long distance = duration * 0.034 / 2; 
  // Ultrasonic calculation to measure distance  
// Sensor does not receive echo signal 
  if (distance > 200)
  {
   Serial.println("Sensor can't Reach");
  }
 
  return distance;
}
void loop() {
  long distance = getDistance();
  Serial.print("Distance: ");
  Serial.print(distance);
  //distance measured 
  Serial.println(" cm");
  
  if (distance >= 0 && distance < distanceThreshold)
    // if condition for distance measured 
  {
    // Activate the alarm
    digitalWrite(LedPin, HIGH);
    tone(BuzzerPin, 2000); 
    // Frequency of buzzer tone 
    Serial.println("There's a Person Approaching Door"); 
    //notify user 
  } else {
    // Deactivate the alarm
    digitalWrite(LedPin, LOW);
    noTone(BuzzerPin);
  }
  delay(6000);
  // Delay in measured distance 
}