#include <Servo.h>
#define triggerPin 12
#define echoPin 13
#define ledPin 2
#define speakerPin 10
#define pitch 260
#define pitch1 400
int Pir = 8;
int statusPir = 0;
Servo myservo;
double duration, distance;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(speakerPin, OUTPUT);
Serial.println("Smart Door");
myservo.attach(6);
pinMode(Pir, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if (analogRead(A0) < 200) {
tone(speakerPin, pitch1);
delay(300);
} else {
noTone(speakerPin);
delay(300);
}
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
duration = pulseIn(echoPin,HIGH);
distance = (duration/2) * 0.0343;
if(distance<200){
digitalWrite(ledPin, HIGH);
tone(speakerPin, pitch);
delay(300);
digitalWrite(ledPin, LOW);
noTone(speakerPin);
delay(300);
}else{
digitalWrite(ledPin, LOW);
noTone(speakerPin);
}
statusPir = digitalRead(Pir);
if(statusPir == HIGH){
myservo.write(45);
delay(1000);
myservo.write(0);
delay(3000);
myservo.write(90);
delay(1000);
Serial.println("Door open");
delay(1000);
}else {
Serial.println("Door closed");
}
}