في الوقت الحاضر ، تأتي معظم أجزاء السيارة مزودة بنظام الدخول بدون مفتاح ونظام الإشعال بضغطة زر ، حيث تحتاج فقط إلى حمل المفتاح في جيبك وتحتاج فقط إلى وضع إصبعك على المستشعر السعوي الموجود على مقبض الباب لفتح باب السيارة. هنا في هذا المشروع ، نضيف بعض ميزات الأمان إلى هذا النظام باستخدام مستشعر بصمة الإصبع و RFID. سيقوم مستشعر RFID بالتحقق من صحة ترخيص المستخدم وسيسمح مستشعر بصمات الأصابع فقط لشخص مرخص له في السيارة.
بالنسبة لنظام إشعال السيارة القائم على بصمات الأصابع ، نستخدم Arduino مع مستشعر بصمة R305 وقارئ EM18 RFID.
المكونات المطلوبة:
وحدة استشعار بصمات الأصابع
وحدة مستشعر بصمة الإصبع أو ماسح بصمة الإصبع هي وحدة تلتقط صورة بصمة الإصبع ثم تحولها إلى قالب مكافئ وتحفظها في ذاكرتها على المعرف المحدد (الموقع) بواسطة Arduino. هنا يتم تنفيذ كل العملية بواسطة Arduino مثل التقاط صورة لبصمة الإصبع وتحويلها إلى قوالب وتخزين الموقع وما إلى ذلك.
اولا قم بتسجيل البصمات باطة كود Enrol
وحدة قارئ EM18 RFID
RFID تعني تحديد تردد الراديو. يشير إلى تقنية ، حيث يتم تشفير البيانات الرقمية في علامات RFID ويمكن فك تشفيرها بواسطة قارئ RFID باستخدام موجات الراديو. يتشابه RFID مع التشفير الشريطي الذي يتم فيه فك تشفير البيانات من العلامة بواسطة جهاز. تُستخدم تقنية RFID في تطبيقات مختلفة مثل نظام الأمن ونظام حضور الموظفين وقفل الباب RFID وآلة التصويت القائمة على RFID ...
EM18 Reader عبارة عن وحدة نمطية يمكنها قراءة معلومات المعرف المخزنة في علامات RFID. تخزن علامات RFID رقمًا فريدًا مكونًا من 12 رقمًا يمكن فك تشفيره بواسطة وحدة قارئ EM18 ، عندما تأتي العلامة في النطاق مع القارئ. تعمل هذه الوحدة على تردد 125 كيلو هرتز ، والذي يحتوي على هوائي يحمل في ثناياه عوامل ، ويتم تشغيله باستخدام مصدر طاقة بجهد 5 فولت.
مخطط المشروع
كود مشروع:نظام إشعال السيارة القائم على بصمات الأصابع باستخدام Arduino و RFID
#include <Adafruit_Fingerprint.h>
#include <LiquidCrystal.h>
char input[12];
int count = 0;
int a = 0;
const int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
SoftwareSerial mySerial(12,11);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print(" WELCOME TO ");
lcd.setCursor(0, 1);
lcd.print(" CIRCUIT DIGEST ");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Please swipe ");
lcd.setCursor(0, 1);
lcd.print("Your License ");
}
void loop()
{
if (Serial.available())
{
count = 0;
while (Serial.available() && count < 12)
{
input[count] = Serial.read();
count++;
delay(5);
}
if (count == 12)
{
if ((strncmp(input, "3F009590566C", 12) == 0) && (a == 0))
{
lcd.setCursor(0, 0);
lcd.print("License Valid ");
lcd.setCursor(0, 1);
lcd.print("Welcome ");
delay(1000);
a = 1;
fingerprint();
}
else if ((strncmp(input, "0B0028883E95", 12) == 0) && (a == 0))
{
lcd.setCursor(0, 0);
lcd.print("License Valid ");
lcd.setCursor(0, 1);
lcd.print("Welcome ");
delay(1000);
a = 1;
fingerprint();
}
else
{
if (a != 1)
{
lcd.setCursor(0, 0);
lcd.print("License Invalid ");
lcd.setCursor(0, 1);
lcd.print("Try Again!!! ");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Please swipe ");
lcd.setCursor(0, 1);
lcd.print("Your License ");
}
}
}
}
}
int getFingerprintID()
{
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;
return finger.fingerID;
}
void fingerprint()
{
finger.begin(57600);
while(a==1)
{
int fingerprintID = getFingerprintID();
delay(50);
if (fingerprintID == 1)
{
lcd.setCursor(0, 0);
lcd.print("Access Granted ");
lcd.setCursor(0, 1);
lcd.print("Vehicle Started ");
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
while(1);
}
else if (fingerprintID == 2)
{
lcd.setCursor(0, 0);
lcd.print("Access Granted ");
lcd.setCursor(0, 1);
lcd.print("Vehicle Started ");
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
while(1);
}
else
{
lcd.setCursor(0, 0);
lcd.print("Pls Place a ");
lcd.setCursor(0, 1);
lcd.print("Valid Finger ");
}
}
}