আরডুইনো ভিত্তিক Automatic Door Lock প্রজেক্ট

এবার আমরা একটি আরডুইনো ভিত্তিক Automatic Door Lock তৈরী করব। আমাদের সিস্টেমটিতে থাকবে একটি IR Obstacle Sensor। সেন্সরের সামনে কেউ এসে দাঁড়ালে দরজার লক স্বয়ংক্রিয়ভাবে খুলে যাবে। সামনে কেউ না থাকলে দরজা বন্ধই থাকবে।

প্রয়োজনীয় যন্ত্রপাতি পরিমাণ লিংক
Arduino UNO-R3/Arduino Mega 2560 1 link
IR Obstacle Sensor 1 link
IRF540 N Channel MOSFET 1 link
DC 12V Solenoid Electric Door Lock 1 link
Breadboard 1 link
16×2 LCD with header 1 link
Variable Resistor Pot 10K (103) 1 link
10K ¼ watt resistor 1 link
Wall Power Adapter: 12VDC, 3A, 5.5×2.1mm Barrel Jack, Center-Positive 1 link
Male to male jumpers 21 link
Male to female jumpers 4 link

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

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

IR obstacle sensor for automatic door lock project
চিত্রঃ 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। পট ঘুরিয়ে আপনি নির্ধারন করতে পারবেন ২ থেকে ৬০ সেন্টিমিটারের মধ্যে সর্বোচ্চ কত দুরত্বে থাকা বস্তুকে সেন্সরটি চিহ্নিত করতে সক্ষম হবে।

এই প্রজেক্টে MOSFET কেন ব্যবহার করতে হবে?

আমরা যে সলিনয়েড ডোরলক ব্যবহার করব সেটি ১২ ভোল্টে চলে। কিন্তু আরডুইনোর আউটপুট ভোল্টেজ ৫ ভোল্ট। এই কারনে আরডুইনো দিয়ে ডোর লকটিকে সরাসরি সুইচিং করা যাবে না। ডোর লকটিকে একটি MOSFET এর মাধ্যমে সুইচিং করতে হবে। আমরা IRF540N ব্যবহার করব। এটি একটি N-channel MOSFET। এই MOSFET এর পিনআউট নিম্নরুপঃ

IRF540N pinout
চিত্রঃ IRF540N pinout

MOSFET এর Source এর সাথে আরডুইনোর GND পিন যুক্ত থাকবে। MOSFET এর Drain এর সাথে ডোরলকের নেগেটিভ সাইড যুক্ত থাকবে। ডোরলকের পজিটিভ সাইড যুক্ত থাকবে আরডুইনোর Vin পিনের সাথে। আরডুইনোকে 12V, 3A অ্যাডাপ্টার দিয়ে পাওয়ার দেওয়া হবে। আরডুইনোর একটি ডিজিটাল পিনের সাথে একটি 10K ohm resistor এর মাধ্যমে MOSFET এর base কানেক্ট করা থাকবে। পিনটি যখন High হবে তখন MOSFET এর base এ কারেন্ট প্রবাহিত হবে। এর ফলে Drain এবং Source শর্ট হয়ে যাবে। এবং ডোর লকটি খুলে যাবে।

সার্কিট ডায়াগ্রাম ও কানেকশন চার্টঃ

Connection between Arduino, Mosfet and Doorlock
চিত্রঃ আরডুইনো, মসফেট এবং ডোরলকের মধ্যকার কানেকশন
Arduino UNO-R3 DC Door Lock IRF540N
10 10K resistor in series with G
GND S
GND D
Vin VCC
Connection between Arduino and IR Obstacle sensor
চিত্রঃ আরডুইনো এবং IR Obstacle sensor এর মধ্যকার কানেকশন
Arduino UNO IR Obstacle Sensor
VCC +
GND
8 Output
আরডুইনো এবং এলসিডির মধ্যকার কানেকশন
চিত্রঃ আরডুইনো এবং এলসিডির মধ্যকার কানেকশন
Arduino UNO- R3 LCD
GND VSS,K,1st pin of volume POT
5V VDD,A, 2nd pin of volume POT
V0,3rd pin of the volume POT
GND RW
12 RS
11 E
5,4,3,2 D4,D5,D6,D7

প্রোগ্রামঃ

নিচের প্রোগ্রামটি আরডুইনোতে আপলোড করুন।

#include <LiquidCrystal.h>
// constants won't change. They're used here to set pin numbers:
const int sensorPin = 8;     // the number of the sensor pin
const int dooorlockPin =  10;      // the number of the dooorlock pin
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// variables will change:
int sensorState = 0;         // variable for reading the sensorpin
void setup() {
  // initialize the singnal pin as an output:
  pinMode(dooorlockPin, OUTPUT);
  // initialize the sensor pin as an input:
  pinMode(sensorPin, INPUT_PULLUP);
  Serial.begin(9600);
   lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Auto Doorlock!");
  delay(1000);

}

void loop() {
  // read the state of the sensorpin:
  sensorState = digitalRead(sensorPin);

  // check if the there is somebody in front of the sensor. If it is, the dooorlockPin is Low:
  Serial.println(sensorState);
  delay(100);
  if(sensorState==LOW)
  {
    digitalWrite(dooorlockPin,HIGH);
    lcd.clear();
    lcd.print("Door opened!");
  }

  else
  {
    digitalWrite(dooorlockPin,LOW);
    lcd.clear();
    lcd.print("Door closed!");
  }
}

পরীক্ষাঃ

সেন্সরের সামনে কেউ না থাকলে লক বন্ধ থাকবে।

Automatic door lock off
চিত্রঃ লক বন্ধ

এলসিডিতে দরজা বন্ধ থাকার মেসেজ দেখা যাবে।

পরবর্তী পরীক্ষায় সেন্সরের সামনে কেউ আসলে লক খুলে যাবে নিচের ছবিটি লক্ষ্য করুন

The lock is unlocked after placing the hand in front of the sensor
চিত্রঃ সেন্সরের সামনে হাত রাখার পর লক খুলে গেছে

এভাবে আমরা একটি Automatic Door Lock তৈরী করতে পারি এবং দরজায় স্থাপন করতে পারি। আমরা প্রয়োজনীয় কম্পোনেন্ট এবং প্রোগ্রাম উল্লেখ করেছি যা দেখে আপনিও খুবই সহজে তৈরি করতে পারেবন। আর আরডুইনো ভিত্তিক আরও প্রজেক্ট সম্পর্কে জানতে চাই এই লিংক ভিজিট করুন। ধন্যবাদ আমাদের সাথে যুক্ত থাকার জন্য।

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.