مــواجـــــهة وحدة استشعار البصمات FPM10A مع الاردوينو أونــــــــو اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

FPM10A

هذا المشروع هو دليل تمهيدي حول كيفية استخدام Fingerprint Sensor Module مع الاردوينو . سنعرض لك كيفية تسجيل معرف بصمة إصبع جديد ، وكيفية العثور على تطابق بصمات الأصابع .

التعرف علي وحدة استشعار البصمات FPM10A

وحدات استشعار بصمات الأصابع ، مثل تلك الموجودة في الشكل التالي ، جعلت التعرف على بصمات الأصابع أكثر سهولة ويسهل إضافتها إلى مشاريعك . هذا يعني أنه من السهل جدًا إجراء جمع البصمات والتسجيل والمقارنة والبحث .

fingerprint-sensor-module-f

تأتي هذه الوحدات مزودة بذاكرة فلاش لتخزين بصمات الأصابع والعمل مع أي متحكم . يمكن إضافة هذه الوحدات إلى أنظمة الأمان وأقفال الأبواب وأنظمة الحضور في الوقت والمزيد .

يجب أن تكون وحدات استشعار بصمات الأصابع المتوفر ة لديك متوافقة مع هذا المشروع .

مواصفات وحدة استشعار البصمات FPM10A

إليك مواصفات وحدة استشعار بصمة الإصبع التي نستخدمها (يجب عليك التحقق من ورقة بيانات المستشعر أو المواصفات التي يوفرها المورد الخاص بك – يجب ألا تكون مختلفة كثيرًا عن هذه) :

  • Voltage supply: DC 3.6 to 6.0V
  • Current supply: <120mA
  • Backlight color: green
  • Interface: UART
  • Bad rate: 9600
  • Safety level: five (from low to high: 1,2,3,4,5)
  • False Accept Rate (FAR): <0.001% (security level 3)
  • False Reject Rate (FRR): <1.0% (security level 3)
  • Able to store 127 different fingerprints

أطراف وحدة استشعار البصمات FPM10A

يحتوي المستشعر على ستة دبابيس موصوفة في الشكل أدناه .

arduino-fingerprint-pins-labeled-1

وحدة استشعار بصمات الأصابع المستخدمة في هذا المشروع جاءت بأسلاك رفيعة للغاية ، لذا كانت هناك حاجة إلى أسلاك لحام سهلة اللوح . نوصي باستخدام ألوان مختلفة وفقا لوظيفة الدبوس . في حالتنا هذه :

  • DNC – white wires
  • VCC – red wire
  • TX – blue wire
  • RX – green wire
  • GND – black wire
wires-soldered

يوضح الجدول التالي كيفية توصيل المستشعر إلى الاردوينو .

1

إظهار مطابقة بصمات الأصابع FPM10A على شاشة OLED

في المشروع هذا ، سنقوم بتسجيل بصمتين من شخصين مختلفين . بعد ذلك ، سنقوم بعرض رسالة ترحيب وفقًا للمطابقة التي تم العثور عليها ، على شاشة OLED .

لمعرفة المزيد حول شاشة OLED ، اقرأ المشروع التالي :

الادوات المطلوبة لمشروع وحدة استشعار البصمات FPM10A

في هذا المشروع  ، ستحتاج إلى الأجزاء التالية :

parts-required
  • Arduino UNO
  • Fingerprint sensor module
  • 0.96 inch OLED display
  • Breadboard
  • Jumper Wires

مخطط التوصيل لمشروع وحدة استشعار البصمات FPM10A

إليك مخطط الأسلاك الذي يجب اتباعه لإنشاء الدائرة لهذا المشروع .

fingerprint_OLED_schematic_bb
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

الكود البرمجي لمشروع وحدة استشعار البصمات FPM10A

يمنحك هذا فهمًا تامًا لكيفية استخدام حساس البصمة مع شاشة OLED ويمكن أن يكون بمثابة أساس لمزيد من التجارب العملية والمشاريع .

لتحميل الكود البرمجي اضغط هنا
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
int fingerprintID = 0;
String IDname;

void setup(){
  //Fingerprint sensor module setup
  Serial.begin(9600);
  // 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); }
  }

  //OLED display setup
  Wire.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  //displays main screen
  displayMainScreen();
}

void loop(){
  displayMainScreen();
  fingerprintID = getFingerprintIDez();
  delay(50);
  if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 || fingerprintID == 5){
    IDname = "Sara";
    displayUserGreeting(IDname);            
  }  
  else if(fingerprintID == 2){
    IDname = "Rui";  
    displayUserGreeting(IDname);            
  }
}

// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

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

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return -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 displayMainScreen(){
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(7,5);
  display.println("Waiting fingerprint");
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(52,20);
  display.println("...");  
  display.display();
  delay(2000);
}

void displayUserGreeting(String Name){
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,0);
  display.print("Hello");
  display.setCursor(0,15);
  display.print(Name); 
  display.display();
  delay(5000);
  fingerprintID = 0; 
}

أنتهت !!!

اترك تعليقاً



لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *