Jaume
Published © CC BY-NC-SA

Touchless Door Opener

Touchless door handle mechanism that can be used in every door just replacing the standard handle. Very useful for people with disabilities.

AdvancedWork in progressOver 8 days2,195

Things used in this project

Hardware components

door handle
3d printed
×2
Stepper Motor
Digilent Stepper Motor
One for each side
×2
Proximity Sensor
Proximity Sensor
One for each side
×2
conical gears
3d printed
×2
door plate
3d printed
×2
Arduino Nano R3
Arduino Nano R3
or Arduino MKR wifi for smart functions
×1
LED (generic)
LED (generic)
Shows the status of the door, one for each side of the door
×2
batterie 18650
×4
wireless charger
×1
wheel
can be 3d printed
×1
housing cyber door truck
3d printed
×1
DC motor (generic)
×1

Software apps and online services

Fusion 360
Autodesk Fusion 360
Arduino IDE
Arduino IDE

Hand tools and fabrication machines

prusa mk3

Story

Read more

Schematics

Schema Door Handle with PIR Sensors

Notice that I am driving the 2 Steppers with only 4 PINS on Arduino, because the movement of the steppers is the same but with inverted sense of rotation, I’ve just inverted the connectors and works!
I’ve changed one of the sensors to use an ultrasonic one because I think it will be better to trigger the handle detecting the distance. I’ve included a DC Motor which can open and close the door.

First application with motor

Just to test the kinematic
File missing, please reupload.

Video with motor

The first test with the motor
File missing, please reupload.

Door handle with Stepper motor 28byj-48

Seems to be too weak, maybe we will need to use 2 steppers or one with more torque
File missing, please reupload.

Option with two steppers works!

an important target is achieved because using the two 28BYJ-48 steppers, this automatic door handle can be very affordable

Code

code

Arduino
I’ve just copied and pasted available routines adapting some lines. This helps me to test the system directly on the door.
The system works as following:
-first you introduce the desired number of steps (should be at least 500 to open the handle)
-The ultrasonic sensor calculates the distance to the object
-if the object distance is between 0 and 100cm activates the stepper 500 steps and the handle opens
-after 3 seconds the DC motor opens the door
-waits 2 seconds and closes the door again.

now I can improve the mechanical system again...
#include <Stepper.h>

Stepper motor1(2048, 4, 6, 5, 7);

int TRIG = 10;
int ECO = 9 ;
int DURATION;
int DISTANCE;
int IN1 = 2;      // IN1 de L298N to pin digital 2
int IN2 = 3;      // IN2 de L298N to pin digital 3
int ENA = 11;      // ENA de L298N to pin digital 11

void setup() {
 
  pinMode(TRIG, OUTPUT);
  pinMode(ECO, INPUT);
  pinMode(IN1, OUTPUT);   // pin 2 output
  pinMode(IN2, OUTPUT);   // pin 3 output 
  pinMode(ENA, OUTPUT);   // pin 11 output
  Serial.begin(9600);
  motor1.setSpeed(3);   // Stepper for door handle
  
}
  

void loop() {
  if (Serial.available()){     // system waits after you introduce a value of steps for the handle steppers
    
  digitalWrite(TRIG, HIGH);    // Ultrasonic sensor routine
  delay(1);
  digitalWrite(TRIG, LOW);
  DURATION = pulseIn(ECO, HIGH);
  DISTANCE = DURATION / 58.2;
  Serial.println (DISTANCE);      // end of Ultrasonic Sensor routine (shows the detected distance)
  delay(200);
  
  if (DISTANCE <= 100 && DISTANCE >=0){   //IF Distance is between 0 and 100cm then is true and handle starts      
  int steps = Serial.parseInt();
  Serial.println(steps);            // handle stepper moves to the number of steps introduced
  motor1.step(steps);
  
  delay(3000);               //wait for 3 seconds
  
  digitalWrite(ENA, HIGH);  // DC door motor  (turns cw)
  digitalWrite(IN1, LOW); // IN1 a 0
  digitalWrite(IN2, HIGH);  // IN2 a 1
  delay(3000);      // runs for 3 seg.

  digitalWrite(ENA, LOW); // ENA en 0 DC Motor off
  delay(3000);      // wait for 2 seg.

  digitalWrite(ENA, HIGH);  // DC door motor  (turns ccw)
  digitalWrite(IN1, HIGH);  // IN1 a 1
  digitalWrite(IN2, LOW); // IN2 a 0
  delay(3000);      // runs for 3 seg

  digitalWrite(ENA, LOW); //  DC Motor off
  delay(2000);      // wait for 2 seg.
  }
 }
 }

Credits

Jaume

Jaume

2 projects • 2 followers
I am an engineer who likes design, art and 3d printing, I am the founder of 3dthinks.

Comments

Add projectSign up / Login