ভিজিটর কাউন্টার প্রজেক্ট | How to Make Visitor Counter Using Arduino

আজকে আমরা তৈরী করব একটি ভিজিটর কাউন্টার। এই প্রজেক্টটি আরডুইনো ভিত্তিক। কাউন্টারটি একটি দুই দরজাবিশিষ্ট ঘরে উপস্থিত মানুষের সংখ্যা গণনা করবে। এই সেটআপটি ব্যবহারের জন্য দুটি দরজা প্রয়োজন। একটি প্রবেশের জন্য এবং অপরটি বাহিরের জন্য। প্রজেক্টটি তৈরী করতে একটি SONAR sensor এবং একটি IR Obstacle Sensor ব্যবহার করা হবে। ঘরে প্রবেশকারী মানুষের সংখ্যা গণনা করবে SONAR sensor এবং IR Obstacle Sensor ঘর থেকে বেরিয়ে যাওয়া মানুষের সংখ্যা গণনা করবে।

প্রজেক্টটি কোথায় কোথায় ব্যবহার করা যায়?

  • অফিস-আদালত, দোকানপাট ইত্যাদি আবদ্ধ স্থানে এই ধরনের কাউন্টার ব্যবহার হয়ে থাকে।
  • এই প্রজেক্টে আরও কিছু পরিবর্তন এনে একটি তৈরী Occupancy alert করা সম্ভব।

ভিজিটর কাউন্টার প্রজেক্ট তৈরিতে কি কি কম্পোনেন্ট প্রয়োজন?

প্রয়োজনীয় যন্ত্রপাতি পরিমাণ লিংক
Arduino UNO R3 1 লিংক
HCSR04 SONAR Sensor 1 লিংক
IR obstacle sensor 1 লিংক
16×2 LCD with header 1 লিংক
10K volume POT resistor 1 লিংক
Breadboard 1 লিংক
Jumper wires (Male to male) 14 লিংক
Jumper wires (Male to female) 8 লিংক

IR obstacle sensor কিভাবে কাজ করে?

IR obstacle sensor এর চারটি পিন রয়েছে। যখন সেন্সরের সামনে কোনও বাধা থাকে না, তখন OUTPUT pin এর আউটপুট HIGH থাকে। সেন্সরের সামনে বাধা থাকলে এই আউটপুট LOW হয়। digitalRead() ফাংশন ব্যবহার করে এই পিনের আউটপুট রিড করা হয়। এই পিনটি রিড করার মাধ্যমে আরডুইনো বুঝতে পারে তার সামনে কোনো বাধা আছে কি না।

IR obstacle sensor
চিত্রঃIR Obstacle Sensor

IR obstacle sensor ক্যালিব্রেট করবেন কিভাবে?

শুরুতেই IR Obstacle Sensor ক্যালিব্রেট করা জরুরী। লক্ষ্য করুন, সেন্সর মডিউলটিতে দুটি এলইডি আছে। একটি Power LED, অপরটি Obstacle LED। Power LED মডিউলে পাওয়ার দিলেই জ্বলে থাকবে। আরও আছে একটি ভ্যারিয়েবল পট। Variable POT ঘুরিয়ে সেন্সরটিকে ক্যালিব্রেট করতে হবে। POT ঘুরিয়ে এমন পজিশনে রাখতে হবে যাতে করে সেন্সরের সামনে কিছু থাকলে Obstacle LED জ্বলে ওঠে এবং না সামনে কিছু না থাকলে নিভে থাকে। উল্লেখ্য, এই সেন্সরের Allowable distance range হলো 2-60 cm। পট ঘুরিয়ে আপনি নির্ধারন করতে পারবেন ২ থেকে ৬০ সেন্টিমিটারের মধ্যে সর্বোচ্চ কত দুরত্বে থাকা বস্তুকে সেন্সরটি চিহ্নিত করতে সক্ষম হবে।

Sonar Sensor HC- SR04 কিভাবে কাজ করে?

Sonar Sensor HC- SR04
চিত্রঃ Sonar Sensor HC- SR04

HCSR04 SONAR sensor নিজের সামনে থাকা মানুষ বা যেকোনো বস্তুর দুরত্ব নির্ণয় করতে পারে। এই সেন্সরকে পাওয়ার দেবার পর Trig pin এ 10 মাইক্রোসেকেন্ডের একটি পালস ইনপুট দিতে হয়। তারপর এই মডিউলটি আটটি ছোট ছোট পালসের সমন্বয়ে তৈরী একটি সিগন্যাল উৎপন্ন করে। তারপর ECHO পিনে একটি পালস উৎপন্ন হয়। ট্রিগার পিনে পালস ইনপুট দেওয়া এবং ইকো পিনে ইকো উৎপন্ন হবার মধ্যবর্তী সময়টুকুকে বাতাসের বেগ দিয়ে গুণ করলে সেন্সরের সবচেয়ে কাছাকাছি থাকা বস্তুর দুরত্ব পাওয়া যায়।

HCSR04 Timing diagram
চিত্রঃ HCSR04 Timing Diagram

ভিজিটর কাউন্টার প্রজেক্টের সার্কিট কানেকশন

আরডুইনো এবং এলসিডির মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।

arduino and lcd connection
চিত্রঃ Arduino and LCD Connection
Arduino UNO- R3 LCD
GND VSS,K,1st pin of volume POT
5V VDD,A, 2nd pin of volume POT
GND V0,3rd pin of the volume POT
GND RW
12 RS
11 E
5,4,3,2 D4,D5,D6,D7

Arduino এবং IR obstacle sensor এর মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।

Arduino and IR obstacle sensor connection
চিত্রঃ Arduino and IR obstacle sensor connection
Arduino UNO Avoidance sensor module
VCC +
GND
7 Output

Arduino এবং SONAR sensor এর মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।

arduino and sonar sensor connection
চিত্রঃ Arduino and Sonar Sensor Connection

 

Arduino UNO Sonar sensor
5V Vcc
GND GND
8 Trig
9 Echo

আমাদের বানানো ভিজিটর কাউন্টার প্রজেক্ট এর পুরো সেটআপটি দেখতে ছিল এরকমঃ

ভিজিটর কাউন্টার প্রজেক্টের সম্পূর্ণ সেটআপ

প্রোগ্রাম

#define trigPin 8
#define echoPin 9
#define pinIR 7
// Define variables:
float duration=0.00;
float distance=0.00;
int visitor,sum,threshold,temp;

// declaring variables to hold the new and old IR states
boolean oldIRState = LOW;
boolean newIRState = LOW;


#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
  // Define inputs and outputs:
  pinMode(pinIR, INPUT);
  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Visitor=");
  lcd.print(visitor);

  //Begin Serial communication at a baudrate of 9600:
  Serial.begin(9600);
}

void loop() {
  // Clear the trigPin by setting it LOW:
  newIRState = digitalRead(pinIR);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // Trigger the sensor by setting the trigPin high for 10 microseconds:
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Read the echoPin, pulseIn() returns the duration (length of the pulse) in microseconds:
  duration = pulseIn(echoPin, HIGH);
  // Calculate the distance:
  distance = duration /58.82 ;

  // Print the distance on the Serial Monitor (Ctrl+Shift+M):
  Serial.print("Distance = ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(1000);
  if(distance<=10 && abs(temp)>=70)
  {
    visitor++;
    lcd.clear();
    lcd.print("Visitor=");
    lcd.print(visitor);


  for(int i=0;i<500;i++)
 {

 sum +=distance;
 delay(5);

 }
 threshold = sum/500;
  }

temp=threshold-distance;

 if ( newIRState != oldIRState )
  {

    if ( newIRState == LOW && visitor>0 )
    {

        visitor--;
         lcd.clear();
    lcd.print("Visitor=");
    lcd.print(visitor);

      }

    }
    oldIRState = newIRState;


}

সার্কিট পরীক্ষা

  • উপরের সকল কানেকশন সম্পন্ন করুন। সার্কিটে পাওয়ার দিন এবং কোড আপলোড করুন।
  • HCSR04 এর সামনে হাত রাখুন। এলসিডিতে প্রদর্শিত ভিজিটরের সংখ্যা বাড়বে।

ভিজিটর কাউন্টার সার্কিট পরীক্ষা

  • এবার IR obstacle sensor এর সামনে হাত রাখুন। ভিজিটরের সংখ্যা কমবে।

 

ভিজিটর কাউন্টার সার্কিট পরীক্ষা

এই ধরনের সিস্টেম শুধু দুই দরজাবিশিষ্ট ঘরেই ব্যবহার করা যাবে। তো এই ছিল আরডুইনো ভিত্তিক ভিজিটর কাউন্টার প্রজেক্ট। যা ব্যাবহার করে খুব সহজেই উপস্থিত মানুষের সংখ্যা গণনা করা যাবে। এরকম আরও প্রজেক্ট দেখতে আমাদের আরডুইনো টিউটোরিয়াল গুলো দেখতে পারেন। আশাকরি আপনিও এই টিউটোরিয়ালটি অনুসরণ করে প্রজেক্টটি তৈরি করতে পারবেন।

TSBlog
TSBlog

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.