Arduino দিয়ে Auto Hand Sanitizer Spray তৈরি

Arduino Aditta today1 July, 2020 63 5

Background
share close

করোনা ভাইরাস এর কারণে পুরো পৃথিবীর জনগণ হুমকির মুখে। আর এই Corona ভাইরাস এর COVID-19 নামক রোগ থেকে বাঁচার জন্য মানুষ প্রতিঘন্টায় হ্যান্ড স্যানিটাইজার দিয়ে হাত ধুচ্ছে, মাস্ক পড়ছে, পিপিই পরিধান করছে এবং সেই সাথে আরোও অনেক নিরাপত্তা দিয়ে নিজেকে বাঁচানোর সর্বোচ্চ চেষ্টা চালিয়ে যাচ্ছে।

আমরা হ্যান্ড স্যানিটাইজারের বোতল ধরে ছিপি খুলে হাত ওয়াশ করি। আবার সেই বোতলটি ধরে ছিপি লাগিয়ে নেই। যদি সেই বোতলে করোনা ভাইরাস থেকে থাকে তাহলে তো আবার হাতেই লেগে গেল। তাই হাত ওয়াশ করে কোনো লাভ তো আমাদের হলো না। আর এই সমস্যা সমাধানের জন্য আমরা ব্যবহার করতে পারি Auto Hand Sanitizer Spray । এই অটো স্প্রে মেশিন/ডিভাইস ব্যবহার করে আমরা বোতলকে টাচ না করেই ওয়াশ করে নিতে পারি আমাদের হাত। এই ডিভাইসটি অনেক বছর আগে থেকেই উন্নত দেশগুলোতে ব্যবহার হয়ে আসছে। আমাদের বাংলাদেশেও কর্পোরেট এবং সরকারি অফিসগুলোতে আছে। কিন্তু এই ডিভাইসটি স্বল্প পরিসরে থাকায় আমরা অনেকেই বিষয়টি জানিনা। আর বাজারে এর দামও কিন্তু আকাশচুম্বী। এটিও আরেক সমস্যা।

তাই আমি আপনাদের দেখাব- কিভাবে Arduino দিয়ে Auto Hand Sanitizer Spray মেশিন ঘরে বসে স্বল্প মূল্যে বানিয়ে নেওয়া যায়। তাহলে চলুন কথা না বাড়িয়ে আমরা মাঠে নেমে পড়ি।

প্রথমেই জেনে নেই আমাদের কি কি হার্ডওয়্যার টুলস লাগবে-

Serial Image Product Name Quantity
01 Arduino Nano V3.0 1p
02 Ultrasonic sensor HC- SR04 1p
03 Ultrasonic Sensor Acrylic Mounting Bracket 1p
04 Towerpro MG995 Servo Motor 1p/2p
05 Mini Breadboard (50 Pins) 1p
06 Rechargeable 6V Battery 1p
07 ON OFF Switch 1p
08 LED Indicator 1p
09 1K Ohm Registor 1p
10 Male to Male Jumper Wires 1 set

এবার আসি আমাদের যেসব সফ্টওয়্যার লাগবে-

  1. Arduino IDE 

হার্ডওয়্যার এবং সফ্টওয়্যার এর লিষ্ট তো করা হয়ে গেল। তাহলে আমরা হার্ডওয়্যার কানেকশনগুলো দিয়ে ফেলি নিচের ডায়াগ্রাম দেখে দেখে।

চিত্রের কানেকশনগুলো বিস্তারিত বলি। প্রথমে ব্যাটারির পজিটিভ (লাল তার) প্রান্তের সাথে On/Off Switch টি চিত্রের মত করে লাগিয়ে Arduino Nano board এর VIN পিন এর সাথে যুক্ত করুন। আর ব্যাটারি এর অপর নেগেটিভ (কালো তার) প্রান্ত Arduino Nano board এর VIN এর পাশে GND পিনের সাথে যুক্ত করুন। তাহলে আরডুইনো বোর্ডের সাথে Power এর কানেকশন কমপ্লিট। তবে আপনি চাইলে রিচার্জেবল ব্যাটারি ব্যবহার না করে একটি 12V Power Adapter ব্যবহার করতে পারেন।

এবার LED Indicator এর একপ্রান্তের সাথে 1K Registor এর একপ্রান্ত যুক্ত করুন। আর Registor এর অপরপ্রান্ত GND এর সাথে যুক্ত করে দিন। LED Indicator এর বাকি থাকা অপরপ্রান্ত যুক্ত করে দিন D13 পিন এর সাথে। এই LED Indicator এর কাজ হলো World Health Organization (WHO) এর নির্দেশনা ২০ সেকেন্ড হ্যান্ড স্যানিটাইজার দিয়ে হাত ধোওয়ার জন্য ২০ সেকেন্ড করে LED ব্লিঙ্ক করা। যেন আপনি বুঝতে পারেন হাত ধোওয়ার সময় ২০ সেকেন্ড হয়েছে কিনা।

এবার আপনি Servo Motor এর সাথে Arduino এর কানেকশন দিতে ৩ টি ক্যাবল দেখতে পাবেন। একটি কমলা রং, মাঝেরটি লাল রং এবং শেষেরটি ক্ষয়েরী বা কালো রং এর। কমলা রং এর ক্যাবলটি Arduino বোর্ড এর D9 পিন এর সাথে যুক্ত করবেন। লাল ক্যাবলটি 5V পিন এর সাথে যুক্ত করবেন। বাকি থাকা ক্ষয়েরী বা কালো ক্যাবলটি Digital Pin এর সিরিয়ালে থাকা GND পিন এর সাথে যুক্ত করে দিন। Servo Motor এর কানেকশন সম্পন্ন হয়েছে। তবে আপনি চাইলে ১টির পরিবর্তে ২টি Servo Motor ব্যবহার করতে পারবেন। এটি নির্ভর করবে আপনার স্প্রে মেশিন এর বডির ধরণ এর উপর। যদি আপনি লোশন টাইপের বোতল ব্যবহার করেন বা সেলুনের স্প্রে যা চুল ভিজিয়ে নেয় এমন টাইপের বোতল ব্যবহার করেন তাহলে ১টি Servo Motor দিয়ে হয়ে যাবে। আর যদি আপনি এমন কোন বোতল ব্যবহার করেন যা ১টি Servo Motor এর পক্ষে load নেওয়া বা প্রেস করানো কষ্টসাধ্য হয় তাহলে আপনি ২টি Servo Motor ব্যবহার করবেন। ২টি মোটর সংযোগ এর ক্ষেত্রেও কানেকশন এবং কোড একই রকম থাকবে। 

সর্বশেষ বাকি রইল Ultrasonic Sensor । এখানে আপনি ৪টি পিন দেখতে পাবেন- Vcc, Trig, Echo Gnd । Vcc পিন এর সাথে Arduino বোর্ড এর 5V পিনের কানেশন যুক্ত করুন। Trig এর সাথে D8 পিন এর কানেকশন যুক্ত করুন। Echo এর সাথে D7 পিনের কানেকশন ‍যুক্ত করুন। আর সর্বশেষ Gnd পিন এর সাথে Arduino বোর্ড এর Analog Serial এর GND পিন এর সাথে কানেকশন যুক্ত করুন।

উপরের ডায়াগ্রাম দেখে আর বর্ণনা পড়ে যদি আপনি সকল কানেকশন সঠিকভাবে যুক্ত করতে পারেন তাহলে আপনাকে অভিনন্দন। আপনি সফলভাবে হার্ডওয়্যার কানেকশন এর সম্পূর্ণ কাজ সম্পন্ন করেছেন। এবার পালা সফটওয়্যার এর।

প্রথমেই আপনি Arduino IDE ওপেন করে New File নিবেন। সেখানে নিচের কোডটি কপি পেষ্ট করে ছেড়ে দিবেন। তারপর কোড Compile করবেন।

#include <Servo.h>  // SG90 servomotor driving program

#define echoPin 7   // U/S sensor Echo Pin
#define trigPin 8   // U/S sensor Trigger Pin
#define LEDPin 13   // Onboard LED


Servo servo;
int angle = 180;          // servo test
int maximumRange = 200;   // Maximum range needed U/S sensor
int minimumRange = 0;     // Minimum range needed U/S sensor
long duration, distance;  // Duration used to calculate distance -  U/S sensor

void setup() {

  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(LEDPin, OUTPUT); // Use LED indicator

  servo.attach(9);
  servo.write(angle);
  Serial.begin(9600);
  delay(500);
}


void loop() {
  digitalWrite(LEDPin, LOW);  // LED starts OFF

  angle = 180;                // servo up angle
  Serial.println(angle);
  servo.write(angle);         // servo/lever up
  delay(2000);

  /* The following trigPin/echoPin cycle is used to determine the
    distance of the nearest object by bouncing soundwaves off of it. */
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);

  //Calculate the distance (in cm) based on the speed of sound in air
  distance = duration / 58.2;

  if (distance >= maximumRange || distance <= minimumRange) {
    /* Send a negative number to computer
      to indicate "out of range" */
    Serial.println("-1");
  }
  else {
    /* Send the distance to the computer using Serial protocol
      to indicate successful reading. */
    Serial.println(distance);

    /* when hand is at distance less than 7 cm from the U/S sensor
       the servomotor will drive 10 pump soap doses. After this sequence
       the LED will blink for 20 seconds on a 0.5 sec ON / 0.5 sec OFF pattern.
    */
    if (distance < 7) {       // condition trigger for soap dispensing

      for (int i = 1; i < 11; i++) { // initiate soap dispensing
        angle = 0;             // servo down angle
        Serial.println(angle);
        servo.write(angle);     // servo/lever down
        delay(600);

        angle = 180;
        Serial.println(angle);
        servo.write(angle);     // servo/lever back to up position
        delay(600);

      }                         //end of soap dispensing


      for (int i = 1; i < 21; i++) { // Start blinking pattern
        digitalWrite(LEDPin, HIGH);  // LED ON
        delay(500);
        digitalWrite(LEDPin, LOW);   // LED OFF
        delay(500);
      }
    }
  }

}
 এবার কোডটি আপলোড করে দিন। আর Enjoy করতে থাকুন আপনার প্রোজেক্ট টি। 

Written by: Aditta

Tagged as: .

Rate it

Previous post
Cobra - Hack To Protect Your System

today28 June, 2020

  • 62
close

Arduino Aditta

Arduino দিয়ে ফিঙ্গারপ্রিন্ট ডোর লক প্রোজেক্ট

দরজার লক সাধারণত আমরা চাবি দিয়ে খুলি। লক যেকোনো কিছু হতে পারে। যেমন ধরুন তালা বা দরজায় বিল্ট-ইন লক বা অন্য কিছু, এক কথায় চাবি (Key) দিয়ে খোলা যায় এমন। ...



Cobra - Hack To Protect Your System

 

 

support@aditta.org

adittacse@aditta.org



Contacts

Support

Follow us