Automatic Door Opener using Arduino

Published  July 12, 2015   96
S Saddam
Author
PIR Sensor based Automatic Door Opener Project using PIR Sensor

You must have seen automatic door openers in shopping malls and other commercial buildings. They open the door when someone comes near the entrance and close it after sometime. A number of technologies are available to make such kinds of systems like PIR sensors, Radar sensors,  Laser sensors, Infrared sensors, etc. In this arduino based project, we have tried to replicate the same system by using a PIR sensor. 

 

It uses a motion-detecting sensor (PIR sensor) to open or close the door which detects the infrared energy omitted from human's body. When someone comes in front of the door, the infrared energy detected by the sensor changes and it triggers the sensor to open the door whenever someone approaches the door. The signal is further sent to arduino uno that controls the door. 

 

Circuit Components

  1. Arduino UNO
  2. 16x2 LCD
  3. PIR Sensor
  4. Connecting wires
  5. Bread board
  6. 1 k resistor
  7. Power supply
  8. Motor driver
  9. CD case (DVD Troly)

 

PIR Sensor

PIR sensor detects any change in heat, and whenever it detects any change, its output PIN becomes HIGH. They are also referred as Pyroelectric or IR motion sensors.

Here we should note that every object emits some amount of infrared when heated. Human also emits infrared because of body heat. PIR sensors can detect small amount of variation in infrared. Whenever an object passes through the sensor range, it produces infrared because of the friction between air and object, and get caught by PIR.

 

The main component of PIR sensor is Pyroelectric sensor shown in figure (rectangular crystal behind the plastic cap). Along with BISS0001 ("Micro Power PIR Motion Detector IC"), some resistors, capacitors and other components used to build PIR sensor. BISS0001 IC take the input from sensor and does processing to make the output pin HIGH or LOW accordingly.

PIR Sensor

Pyroelectric sensor divide in two halves, when there is no motion, both halves remain in same state, means both senses the same level of infrared. As soon as somebody enters in first half, the infrared level of one half becomes greater than other, and this causes PIRs to react and makes the output pin high.

 

Pyroelectric sensor is covered by a plastic cap, which has array of many Fresnel Lens inside. These lenses are curved in such a manner so that sensor can cover a wide range.

 

Circuit Diagram and Explanation

Automatic Door Opener Circuit Diagram

Connections for arduino based door opener circuit are shown in the above diagram. Here a PIR sensor is used for sensing human motion which has three terminals Vcc, GND and Dout. Dout is directly connected to pin number 14 (A0) of arduino uno. A 16x2 LCD is used for displaying the status. RS, EN pins of LCD connected to 13 and 12 of arduino and data pins D0-D7 are connected to arduino digital pin numbers 11, 10, 9, 8. RW is directly connected to ground. L293D motor driver is connected to arduino pin 0 and 1 for opening and closing the gate. Here in circuit we have used a motor for gate.

 

Programming Explanation

The concept used here for programming is very simple.  In program we have only used digital input output.  

DigitalRead is used for reading output of PIR sensor.

DigitalRead

After that, if PIR sensor senses any motion then program sends an command to open gate, stop gate, closing gate and stop gate.

commands to open the gate

See below the complete code for arduino based automatic door opener.

Code

#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

#define PIR_sensor 14
#define m11 0
#define m12 1

void setup() 
{
  lcd.begin(16, 2);
  pinMode(m11, OUTPUT);
  pinMode(m12, OUTPUT);
  pinMode(PIR_sensor, INPUT);
  lcd.print("    Automatic    ");
  lcd.setCursor(0,1); 
  lcd.print("   Door Opener   ");
  delay(3000);
  lcd.clear();
  lcd.print("CIRCUIT DEGEST ");
  delay(2000);
}

void loop() 
{
  if(digitalRead(PIR_sensor))
  {
    lcd.setCursor(0,0);
    lcd.print("Movement Detected");
    lcd.setCursor(0, 1);
    lcd.print("    Gate Opened    ");
    digitalWrite(m11, HIGH);         // gate opening
    digitalWrite(m12, LOW);
    delay(1000);
    digitalWrite(m11, LOW);          // gate stop for a while
    digitalWrite(m12, LOW);
    delay(1000);
    lcd.clear();
    lcd.print("   Gate Closed    ");
    digitalWrite(m11, LOW);           // gate closing
    digitalWrite(m12, HIGH);
    delay(1000);
    digitalWrite(m11, LOW);            // gate closed
    digitalWrite(m12, LOW);
    delay(1000);
  }
  
  else 
  {
    lcd.setCursor(0,0);
    lcd.print("   No Movement   ");
    lcd.setCursor(0,1);
    lcd.print("   Gate Closed   ");
    digitalWrite(m11, LOW);
    digitalWrite(m12, LOW);
  }
}

Video

Have any question realated to this Article?

Ask Our Community Members

Comments

Submitted by arvind maurya on Wed, 12/30/2015 - 10:17

Permalink

i want to chhosse topic but i have no ppt so pls send me mail ppt

Submitted by Jamiu on Wed, 02/03/2016 - 19:46

Permalink

Great job. I want to do this same project, so my questions are what programming language did you used and how were you able to put the code inside the ardino uno. I would really appreciate your help and guidance. Thanks.

Arduino simply supports C/C++ language, and Arduino language itself derived from C/C++. Means it supports all the C++'s OOPS concept, operators, conditions statements etc. And there is a Arduino IDE, which is used to verify and upload the code to the Arduino, you just need to connect Arduino board to the PC using USB. Arduino IDE (Arduino Nightly) can be downloaded from here: https://www.arduino.cc/en/Main/Software

Submitted by jb on Mon, 02/29/2016 - 10:36

Permalink

what type of should i use in this project please tell me i m interested to make this project

Submitted by jsk jyothish on Sat, 04/02/2016 - 21:51

Permalink

Please any one help me to make a project report on this topic

Submitted by Marilyn Woodman on Fri, 04/08/2016 - 00:25

Permalink

Could you please enlarge a little on the type of motor you used? Geared, stepper, servo, etc., and also its specifications?

Submitted by Vaias on Fri, 04/08/2016 - 06:52

Permalink

How can I connectthe L293D on the motor? My dvd troly is from an actual dvd and I cant figure out how to connect it because it has 4 pins

Submitted by sefa on Thu, 04/14/2016 - 22:22

Permalink

If I use ultrasonic sensor instead of PIR sensor,which parts should I change of the program? Also could you tell the kind of the motor used?

Submitted by sefa on Thu, 04/21/2016 - 22:53

Permalink

As tharun said nothing works for now. Same program,same proteus connections,same materials,but there is a mistake which I do not understand. There is power on the LCD,but the sentences are not seen. Motor rotates almost independent from the PIR sensor :/ ıf there is a extra code or something else,please uniform us

Submitted by adil on Wed, 04/27/2016 - 16:57

Permalink

sir
can we use pins other than 0 and 1 for motor...because i need pin 0 and 1 to connect bluetooth module.

Submitted by aabish on Fri, 04/29/2016 - 17:06

Permalink

my pir sensor is getting high no matter how far i go from it...it is written somewhere in the internet that the range of a pir sensor is 15 - 20 feet..can you please tell me what to do...

Submitted by Sandy on Thu, 06/02/2016 - 14:56

Permalink

WHat type of motor have you used? And please tell me how to choose a motor to operate a door that is @kgs heavy.

We have used DVD Trolley from the computer here, but you can use simple DC motor, attached to gate. You can choose the DC Motor accordingly and need to provide the power supply accordingly.

Submitted by deep agarwal on Mon, 07/11/2016 - 19:37

Permalink

actually i am thinking of a project where i am using barrier instead of door and when vehicle will come nearer then pir sensor will work n open up the barrier. now i want to achieve linear motion in vertical plane (as of a bollard) can u guide how i can achieve it. i would appreciate ur help....

Submitted by Dipu on Tue, 07/12/2016 - 20:37

Permalink

I want to add a counter for how many people are enter /out in the door? is it possible in this project? how? plz let me know if its possible

Submitted by Andrew on Thu, 07/14/2016 - 13:48

Permalink

I've done this project left out the LCD added a motor driver and servo motor but can't get it to run the TX keeps flashing for some reason any ideas

Submitted by Andrew on Mon, 07/25/2016 - 17:43

Permalink

I can't get this to work at all
I don't have the screen attached sour tried with the code the same and changed to delete it limes of code related to screen
Doesn't work
I changed motors I added a stepper motor
Changed code again to include stepper code still don't work
Changed it all back again and it runs full sequence with out the regard for timing

Submitted by kousar on Thu, 07/28/2016 - 00:17

Permalink

dear brother i want to try this project simulation on proteus but i did't find some equipment like arduino uno,pir sensor u use in this simulation

Submitted by Yirvin on Thu, 09/29/2016 - 18:51

Permalink

There is no display in the lcd, how do the wirings work?

Submitted by Wasif Mukaddam on Wed, 10/26/2016 - 09:37

Permalink

Can u please upload or mail me he actual circuit images from different angles ... since i am new to this and cant do it by the graphical circuit diagram ... and i have seen a few differences in the first pic and the one in the video... please help

Submitted by raymond stelter on Mon, 11/07/2016 - 07:11

Permalink

just a quick question i'm not sure if anyone asked this but what about using 2 pir sensors

Submitted by Jyotish Upadhaya on Fri, 11/25/2016 - 20:51

Permalink

I didn't get how you connect the cd rom with the motor driver...please let me know the connection of cd drive to motor driver

Submitted by Sufyan on Thu, 01/12/2017 - 23:53

Permalink

Sir I made this project but the sensor is not working. Door automatically opens after some delay. Plz solve this issue I've tried every possible solution.

Submitted by md yusuf on Sun, 01/15/2017 - 19:16

Permalink

sir, your helping nature is fantastic and i really thank u for the project.
i have a doubt sir... that.. which type of motors can i use instead of cd driver because i don't have it.

Submitted by md yusuf on Sun, 01/15/2017 - 19:18

Permalink

sir where should we give power supply.. like 9v battery so that i can carry to my clg

Submitted by bunty on Sat, 01/21/2017 - 09:53

Permalink

I am interested about this project.But i have a small doubt about this ,I can't find a perfect schematic on this project.could you guys help me out

Submitted by Jesus Castro on Wed, 01/25/2017 - 23:44

Permalink

Can I connect 2 sensors to the same pins and still perform as intended?
This is so that the door can open from both sides.

thanks

Submitted by Kad greg on Sun, 06/11/2017 - 17:54

Permalink

can this project configured to use from a browser?

Submitted by harshitha on Thu, 06/22/2017 - 15:03

Permalink

hello,
we are using PIR sensor, Arduino, cd disc drive for this project.will you please, help me how to connect because I tried it with LCD but couldn't complete this project.

Submitted by jennifer on Sat, 09/16/2017 - 09:36

Permalink

instead of PIR sensor, we will use bluetooth sensor because we will make a face detection application and then we will have to connect it with bluetooth. any suggestions?

Submitted by Rakesh rajbhar on Sun, 10/08/2017 - 19:47

Permalink

in my project the the pir is not getting stable, the error occurs with pir is its sensitivity,in my case i have used arduino code to run pir but the pir is continious sensing the motion even when there is no movement ahead of the pir.
How i can remove this erro??????

Submitted by Hamdan zeid al… on Wed, 04/11/2018 - 20:50

Permalink

How can i lower the speed of my dc motor, and reduce the time of the motor spinning