Project tutorial
COVID - 19 Touchless Hand Wash Timer

COVID - 19 Touchless Hand Wash Timer © GPL3+

A simple timer to ensure the duration of hand washing is 20 seconds

  • 3,985 views
  • 1 comment
  • 16 respects

Components and supplies

Apps and online services

About this project

Touchless Hand Wash Timer

Regular hand washing and use of sanitizer is the only way to remove the corona viruses from our hand. The health experts recommends the 20 seconds hand wash. 20 seconds ?. It is not possible to check the clock while washing the hand. The common stopwatch or timer is not suitable here. So here I am going to build a custom touchless 20 second timer.

How it works ?

Here I use a distance sensor to detect presence of hand. Then the microcontroller(here Arduino Uno) start the servo motor from 180 to 0. This rotation will take 20 seconds to complete. Here servo motor arm act as a pointer.

Let's start!!!

Buy electronic components with free shipping on utsource.net

Step - 1

First I am going create the sketch

Open Arduino IDE.

Here we use the servo motor. so we need to use the "servo.h" library for better communication. Now I define twopins, trigPin on 4 and echoPin on 5. And Then declare two variables. One is "duration" and other is "distance". If you don't know the purpose of this variable read my previous article "Interface ultrasonic sensor with Arduino". Then declare another variable "Myservo" for communicate between Arduino board and servo motor. Next declare another variable "pos" as loop variable.

#include<Servo.h>
#define echoPin 4
#define trigPin 5
Servo Myservo;
int pos;
int long duration;
int distance;

Step - 2

Now we need to code setup part.

First set the pinMode of trigPin as "OUTPUT" and echoPin as "INPUT". And set the attach pin of servo motor. Here we are using pin number 3 of Arduino board.

void setup(){ 
Myservo.attach(3);
pinMode(echoPin,INPUT);
pinMode(trigPin,OUTPUT);
}

Setup part is completed.

Step - 3

Next we need to code the loop part.

First set the trigPin as "LOW" for 2 microseconds. Then set the same pin to "HIGH" for 10 microseconds. Next set it back to "LOW". Then read the echoPin and store the time to "duration" by using "pulseIn()" function. Then calculate the distance with this duration.

Next we need to use a "if" and "else" to control servo with condition. In the if condition we need to use a for() loop. Three arguments are used in "for()" loop. First is the initial value of loop variable here loop variable is "pos". This value is 180. The second argument is maximum value of loop variable. This value is 0. ( why the initial value is 0 ? and maximum is 180? See the calibration part ). The third argument is "pos--" or "pos-1". Then write the value in "pos" to servo motor. Now add a delay function. The value is 111.11 milliseconds. Why it is 111.11 ?. Because, we need to rotate the servo motor 180 degree in 20 seconds or 20000 milliseconds. So 20000/180=111.11. Next code the else part. In "else" part, set the servo position in 180 degree. Then wait 200 milliseconds and repeat this step. For this purpose add another delay function.

void loop()
{
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
duration=pulseIn(echoPin,HIGH);
distance=(duration*0.034/2);

if(distance<=80){
for(pos=180;pos>=0;pos--){
Myservo.write(pos);
delay(111.1);
}

}
else{
Myservo.write(180);
}
delay(200);

The coding part is complete. the complete code is given in the code section. Upload the code to Arduino board.

Step - 4

Next is some craft work. We need to create a scale or a dial for understand the servo position or time.

You can either print above image or create your own. I strongly recommend the second option. You can get the Photoshop files from the end of this article. This shape paste on a cardboard piece. Then cut the outlines. Now paste it to the servo motor. Use the small arm as pointer or needle.(see the calibration part).

Step - 5

Hardware connections

Arduino Digital Pin 3 - Servo signal pin

Arduino Digital Pin 4 - HC-SR 04 trig pin

Arduino Digital Pin 5 - HC-SR 04 echo pin

Arduino 5V pin - HC-SR 04 Vcc

Arduino 5V pin - Servo motor Vcc

Arduino GND - Servo motor GND

Arduino GND - HC-SR 04 GND

Here some same pins are used to different devices. You can use "T" connection for this purpose.

Step - 6

Calibration

For calibrate the servo motor, turn on the Arduino after complete the the hardware connections. Then don't place your hand or any object in front of the distance sensor. Now the position of Servo motor is 180 degree. Then put the small arm on the shaft which points to least position (left hand side )of the scale.

Now mound the distance sensor near the servo. And connect adapter. The device is completed.

Please don't copy paste my code. Understand each lines and it's purpose. Then make your own.

You can join our telegram group here or search INNOVATION.

STAY HOME, STAY SAFE, STAY CREATIVE. Let break the chain.

Follow me on,

Instagram : five_volt_player

Facebook : Akshay Joseph

Github : akshayjoseph666

Share your experience and suggestions on the comment box.

Previous articles

Code

Untitled fileArduino
//Sketch created by Akshay Joseph
#include<Servo.h>
#define echoPin 4
#define trigPin 5
Servo Myservo;
int pos;
int long duration;
int distance;
void setup(){ 
Myservo.attach(3);
pinMode(echoPin,INPUT);
pinMode(trigPin,OUTPUT);
void setup(){ 
Myservo.attach(3);
pinMode(echoPin,INPUT);
pinMode(trigPin,OUTPUT);

}
void loop()
{
digitalWrite(trigPin,LOW);
delayMicroseconds(2); 
digitalWrite(trigPin,HIGH);
delayMicroseconds(10); 
digitalWrite(trigPin,LOW);
duration=pulseIn(echoPin,HIGH);
distance=(duration*0.034/2);
  
  if(distance<=80){
    for(pos=180;pos>=0;pos--){
      Myservo.write(pos);
      delay(111.1);
    }
    
}
  else{
      Myservo.write(180);
  }
  delay(200);

}

Custom parts and enclosures

blackandwhite_LP4eeolEaK.psd
blackandwhite_LP4eeolEaK.psd
blackandwhite_eoyu66spg0.psd
blackandwhite_eoyu66spg0.psd

Schematics

dazzling_snicket_(1)_VxO9zpKika.png
Dazzling snicket (1) vxo9zpkika

Comments

Similar projects you might like

Corona Hand Wash Timer

Project tutorial by Team Random Stuff We Make!

  • 6,889 views
  • 12 comments
  • 64 respects

COVID - 19 Automatic Water Tap

Project tutorial by Akshay Joseph

  • 544 views
  • 0 comments
  • 9 respects

Touchless Washing Hands Timer

by rjconcepcion

  • 2,154 views
  • 0 comments
  • 13 respects

DIY Hand Sanitizer Dispenser Using Arduino

Project tutorial by Mission Critical

  • 1,971 views
  • 0 comments
  • 3 respects

Fight Coronavirus: Simple Handwash Timer

Project tutorial by The Tech Lab

  • 3,222 views
  • 0 comments
  • 6 respects

Touchless Automatic Motion Sensor Trash Can

Project showcase by Will Su

  • 45,712 views
  • 33 comments
  • 78 respects
Add projectSign up / Login