perm_phone_msgUNDER ATTACK?

Top Categories

Spotlight

Lord Shiva

today13 April, 2022

Sanaton + Lord Shiva Aditta Chakraborty

শিবের জপ, ধ্যান, প্রণাম, গায়ত্রী, মহামৃত্যুঞ্জয় সহ গুরুত্বপূর্ণ মন্ত্র সমূহ

মন্ত্রগুলো আলোচনা করার আগে ছোট একটি বিষয় আপনাদের জানিয়ে রাখি। আপনি যদি ব্রাহ্মণ হয়ে থাকেন তাহলে মন্ত্রের শুরুতে ওঁ উচ্চারণ করবেন। এছাড়া আপনি যদি ক্ষত্রিয়, বৈশ্য, শুদ্র, স্ত্রী হয়ে থাকেন তাহলে ওঁ এর পরিবর্তে নমঃ উচ্চারণ করবেন। আর যেসব মন্ত্রে ওঁ নমঃ এই উভয় শব্দ রয়েছে সেসব মন্ত্রের ওঁ বাদ [...]


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

Arduino Aditta Chakraborty today28 June, 2020 170 5

Background
share close

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

Micro-controller এরমধ্যে একটি জনপ্রিয় ডিভাইস হলো Arduino । এর সাহায্যে Fingerprint Door Lock বানানো যায়। যেখানে Fingerprint Sensor ব্যবহার করা হয়েছে। তো কথা না বাড়িয়ে প্রজেক্ট টি কিভাবে করতে হয় চলুন তার বিস্তারিত দেখে নেই।

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

Serial Products Name Quantity
01 Arduino UNO R3 (China) 1p
02 Arduino UNO R3 Transparent 3D Case 1p
03 Fingerprint Recognition Module (AS608) 1p
04 16 x 2 RGB I2C LCD Display 1p
05 DC 12V Solenoid Door Lock 1p
06 5V 1 channel Relay Module 1p
07 12V DC Power Source Adapter for Door Lock 1p
08 9V Rechargeable Battery (Sony 450 mAh) 1p
09 9V Battery Connector with Power Jack 1p
10 Battery Charger 1p
11  Male to Male jumper cables 1 set
12 Wooden Box for Fingerprint Door Lock Project 1p
13 ON/OFF Switch 1p

এবার উপরের হার্ডওয়্যার টুলস গুলাকে Assemble করতে নিচের সাহায্যকারী টুলস লাগবে-

Serial  Products Name Quantity
01 Soldering Iron (40W) 1p
02 Glue Gun 1p
03 Glue Gun Stick 3p
04 Solder Lead Mini 1p
05 Solder Resin 1p
06 Soldering Iron Stand 1p
07 White Scotch Tape 1p

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

  1. Arduino IDE 

Library:

  1. Adafruit Fingerprint Sensor Library
  2. Liquid Crystal LCD

এবার চলে আসি আসল কাজে। একে একে দেখে নিবো হার্ড ওয়্যার টুলস এর কানেকশন। 

এথমেই দেখব Arduino UNO এর সাথে Optical Finger Reader এর কানেকশন-

এবার Arduino UNO এর সাথে LCD এর কানেকশন-

 এবার সর্বশেষ কানেকশন Arduino UNO, Relay Module এবং Solenoid lock এর-

উপরের কানেশনগুলা দেখে দেখে করতে পারলে Congratulations আপনি Hardware Assemble-এ সফল হয়েছেন। এবার চলে আসি Software পার্টে।

প্রথমেই আপনি Arduino IDE ওপেন করে New File নিবেন। সেখানে নিচের কোডটি কপি পেষ্ট করে ছেড়ে দিবেন। তবে লাইব্রেরীগুলো অবশ্যই IDE তে Import করে নিবেন। তারপর কোড Compile করবেন। 

#include <Adafruit_Fingerprint.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>

// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white

// uncomment this line:

#define mySerial Serial1

// For UNO and others without hardware serial, we must use software serial...

// pin #2 is IN from sensor (GREEN wire)

// pin #3 is OUT from arduino  (WHITE wire)

// comment these two lines if using hardware serial

SoftwareSerial mySerial(2, 3);

LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

bool lastState = -1;

int relay1 = 8;


void setup() {
  pinMode( relay1, OUTPUT);

  digitalWrite(relay1, HIGH);

  lcd.init();

  Serial.begin(9600);

  while (!Serial);  // For Yun/Leo/Micro/Zero/...

  delay(100);

  Serial.println("\n\nAdafruit finger detect test");

  // set the data rate for the sensor serial port

  finger.begin(57600);

  if (finger.verifyPassword()) {

    Serial.println("Found fingerprint sensor!");

  } else {
    Serial.println("Did not find fingerprint sensor :(");

    while (1) {
      delay(1);
    }
  }

  finger.getTemplateCount();

  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");

  Serial.println("Waiting for valid finger...");

  displayWaitFinger();
}


void loop() {                     // run over and over again
  int id;
  
  id = getFingerprintIDez();

  if ( id == -1 ) {

    if ( lastState == 0) {

      lastState = -1;

      displayInvalidFinger();

      delay(2000);

      displayWaitFinger();
    }
  } else if ( id != -1) {

    digitalWrite(relay1, LOW);

    displayFingerOK();

    delay(2000);

    displayWaitFinger();

    digitalWrite(relay1, HIGH);
  }
  delay(50);            //don't ned to run this at full speed.
}

uint8_t getFingerprintID() {

  uint8_t p = finger.getImage();

  switch (p) {

    case FINGERPRINT_OK:

      Serial.println("Image taken");

      break;

    case FINGERPRINT_NOFINGER:

      Serial.println("No finger detected");

      return p;

    case FINGERPRINT_PACKETRECIEVEERR:

      Serial.println("Communication error");

      return p;

    case FINGERPRINT_IMAGEFAIL:

      Serial.println("Imaging error");

      return p;

    default:

      Serial.println("Unknown error");

      return p;
  }
  // OK success!

  p = finger.image2Tz();

  switch (p) {

    case FINGERPRINT_OK:

      Serial.println("Image converted");

      break;

    case FINGERPRINT_IMAGEMESS:

      Serial.println("Image too messy");

      return p;

    case FINGERPRINT_PACKETRECIEVEERR:

      Serial.println("Communication error");

      return p;

    case FINGERPRINT_FEATUREFAIL:

      Serial.println("Could not find fingerprint features");

      return p;

    case FINGERPRINT_INVALIDIMAGE:

      Serial.println("Could not find fingerprint features");

      return p;

    default:

      Serial.println("Unknown error");

      return p;
  }
  // OK converted!

  p = finger.fingerFastSearch();

  if (p == FINGERPRINT_OK) {

    Serial.println("Found a print match!");

  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {

    Serial.println("Communication error");

    return p;
    
  } else if (p == FINGERPRINT_NOTFOUND) {

    Serial.println("Did not find a match");

    return p;
    
  } else {

    Serial.println("Unknown error");

    return p;
    
  }
  // found a match!

  Serial.print("Found ID #"); Serial.print(finger.fingerID);

  Serial.print(" with confidence of "); Serial.println(finger.confidence);

  return finger.fingerID;
}

// returns -1 if failed, otherwise returns ID #

int getFingerprintIDez() {

  uint8_t p = finger.getImage();

  Serial.println(p);

  if ( p == 0 ) {

    lastState = 0;
  }

  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();

  if (p != FINGERPRINT_OK)  return -1;
  
  p = finger.fingerFastSearch();

  if (p != FINGERPRINT_OK)  return -1;

  lastState = 1;

  // found a match!

  Serial.print("Found ID #"); Serial.print(finger.fingerID);

  Serial.print(" with confidence of "); Serial.println(finger.confidence);

  return finger.fingerID;
}

void displayWaitFinger() {
  lcd.clear();

  lcd.backlight();

  lcd.setCursor(0, 0);

  lcd.print("PUT YOUR FINGER");

  lcd.setCursor(0, 1);

  lcd.print("ON THE SCANNER");
}

void displayInvalidFinger() {
  lcd.clear();

  lcd.backlight();

  lcd.setCursor(0, 0);

  lcd.print("FINGER");

  lcd.setCursor(0, 1);

  lcd.print("NOT FOUND!!!");
}

void displayFingerOK() {
  lcd.clear();

  lcd.backlight();

  lcd.setCursor(0, 0);

  lcd.print("WELCOME ");

  lcd.setCursor(0, 1);

  lcd.print("DOOR UNLOCK");
}

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

Written by: Aditta Chakraborty

Tagged as: , , , , , , , , , .

Rate it
Previous post
Cobra - Hack to protect your system

today27 June, 2020

  • 102
close

Java Aditta Chakraborty

জাভা দিয়ে কোনো ফাইল বা ফোল্ডার খুঁজে বের করে তাতে অপারেশন চালানো

ধরুন আপনি নির্দিষ্ট কোনো পাথ এর একটি ফোল্ডারে কাজ করতে চান। হতে পারে সেই ফোল্ডারটি আপনি ডিলিট করবেন, ফোল্ডারটি আসলেই আছে কিনা সেটি নিশ্চিত করবেন, ফোল্ডারের ভিতর আরো কিছু ফোল্ডার ...