- المواد المستخدمة
- وحدة قارئ EM18 RFID
- اكتشف رمز RFID Tag الفريد المكون من 12 رقمًا باستخدام Arduino
- مخطط الرسم البياني
- وحدة استشعار بصمة الإصبع
- برمجة إشعال RFID بدون مفتاح
في الوقت الحاضر ، تأتي معظم أجزاء السيارة مزودة بنظام الدخول بدون مفتاح ونظام الإشعال بضغطة زر ، حيث تحتاج فقط إلى حمل المفتاح في جيبك وتحتاج فقط إلى وضع إصبعك على المستشعر السعوي الموجود على مقبض الباب لفتح باب السيارة. هنا في هذا المشروع ، نضيف بعض ميزات الأمان إلى هذا النظام باستخدام مستشعر بصمات الأصابع و RFID. سيقوم مستشعر RFID بالتحقق من صحة ترخيص المستخدم وسيسمح مستشعر بصمات الأصابع فقط لشخص مرخص له في السيارة.
بالنسبة لنظام إشعال السيارة القائم على بصمات الأصابع ، نستخدم Arduino مع مستشعر بصمة R305 وقارئ EM18 RFID.
المواد المستخدمة
- اردوينو نانو
- مستشعر بصمة الإصبع R305
- قارئ RFID EM18
- شاشة LCD أبجدية رقمية مقاس 16 * 2
- محركات التيار المستمر
- L293D محرك سائق IC
- Veroboard أو Breadboard (أيهما متاح)
- توصيل الأسلاك
- بطارية 12V DC
وحدة قارئ EM18 RFID
RFID تعني تحديد تردد الراديو. يشير إلى تقنية حيث يتم تشفير البيانات الرقمية في علامات RFID ويمكن فك تشفيرها بواسطة قارئ RFID باستخدام موجات الراديو. يتشابه RFID مع التشفير الشريطي الذي يتم فيه فك تشفير البيانات من العلامة بواسطة جهاز. تُستخدم تقنية RFID في العديد من التطبيقات مثل نظام الأمن ، ونظام حضور الموظفين ، وقفل الباب RFID ، وآلة التصويت القائمة على RFID ، ونظام جمع الرسوم ، إلخ.
EM18 Reader هو وحدة يمكنها قراءة معلومات المعرف المخزنة في علامات RFID تخزن علامات RFID رقمًا فريدًا مكونًا من 12 رقمًا يمكن فك تشفيره بواسطة وحدة قارئ EM18 ، عندما تأتي العلامة في النطاق مع القارئ. تعمل هذه الوحدة على تردد 125 كيلو هرتز ، والذي يحتوي على هوائي يحمل في ثناياه عوامل ، ويتم تشغيله باستخدام مصدر طاقة بجهد 5 فولت.
يعطي إخراج البيانات التسلسلية ، ويبلغ مداها 8-12 سم. معلمات الاتصال التسلسلي هي 8 بتات بيانات و 1 بت توقف و 9600 معدل باود.
ميزات EM18:
- جهد التشغيل: + 4.5 فولت إلى + 5.5 فولت تيار مستمر
- الاستهلاك الحالي: 50mA
- تردد التشغيل: 125 كيلو هرتز
- درجة حرارة التشغيل: 0-80 درجة مئوية
- معدل الاتصال بالباود: 9600
- مسافة القراءة: 8-12 سم
- الهوائي: يحمل في ثناياه عوامل
EM18 Pinout:
دبوس الوصف:
VCC: 4.5 - 5V DC إدخال الجهد
GND: دبوس الأرض
الجرس: الجرس أو دبوس LED
TX: دبوس مرسل البيانات التسلسلية من EM18 لـ RS232 (إخراج)
SEL: يجب أن يكون هذا مرتفعًا لاستخدام RS232 (منخفض في حالة استخدام WEIGAND)
البيانات 0: بيانات WEIGAND 0
البيانات 1: بيانات WEIGAND 1
لمعرفة المزيد حول RFID والعلامات ، تحقق من مشاريعنا السابقة القائمة على RFID.
اكتشف رمز RFID Tag الفريد المكون من 12 رقمًا باستخدام Arduino
قبل برمجة Arduino لنظام إشعال السيارة Arduino ، نحتاج أولاً إلى معرفة الرمز الفريد لعلامة RFID المكون من 12 رقمًا. كما ناقشنا من قبل ، تحتوي علامات RFID على رمز فريد مكون من 12 رقمًا ويمكن فك تشفيره باستخدام قارئ RFID. عندما نقوم بتمرير علامة RFID بالقرب من القارئ ، سيعطي القارئ الرموز الفريدة عبر منفذ الإخراج التسلسلي. أولاً ، قم بتوصيل Arduino بقارئ RFID وفقًا لمخطط الدائرة ثم قم بتحميل الكود أدناه إلى Arduino.
عدد int = 0 ؛ char card_no؛ إعداد باطل () {Serial.begin (9600) ؛ } void loop () {if (Serial.available ()) {count = 0؛ while (Serial.available () && count <12) {card_no = Serial.read () ؛ العد ++ ؛ تأخير (5) ؛ } Serial.print (card_no) ؛ }}
بعد تحميل الرمز بنجاح ، افتح الشاشة التسلسلية واضبط معدل البث بالباود على 9600. ثم اسحب البطاقة بالقرب من القارئ. ثم سيبدأ عرض الرمز المكون من 12 رقمًا على الشاشة التسلسلية. قم بهذه العملية لجميع علامات RFID المستخدمة وقم بتدوينها للمراجع المستقبلية.
مخطط الرسم البياني
يوجد أدناه مخطط الدائرة لنظام الإشعال المستند إلى بصمات الأصابع:
في حالتي ، لقد قمت بلحام الدائرة الكاملة على لوحة الأداء كما هو موضح أدناه:
وحدة استشعار بصمة الإصبع
وحدة مستشعر بصمة الإصبع أو ماسح بصمة الإصبع هي وحدة تلتقط صورة بصمة الإصبع ثم تحولها إلى قالب مكافئ وتحفظها في ذاكرتها على المعرف المحدد (الموقع) بواسطة Arduino. هنا يتم تنفيذ كل العملية بواسطة Arduino مثل التقاط صورة لبصمة الإصبع وتحويلها إلى قوالب وتخزين الموقع وما إلى ذلك.
استخدمنا في السابق نفس مستشعر R305 لبناء آلة اقتراع ، ونظام حضور ، ونظام أمان ، وما إلى ذلك. يمكنك التحقق من جميع المشاريع القائمة على بصمات الأصابع هنا.
تسجيل بصمات الأصابع في جهاز الاستشعار:
قبل متابعة البرنامج ، نحتاج إلى تثبيت المكتبات المطلوبة لجهاز استشعار بصمات الأصابع. هنا استخدمنا " Adafruit_Fingerprint.h " لاستخدام مستشعر بصمة الإصبع R305 . لذا أولاً قم بتنزيل المكتبة باستخدام الرابط الموضح أدناه:
- مكتبة مستشعر بصمات الأصابع Adafruit
بعد التنزيل الناجح ، في Arduino IDE ، انتقل إلى File > Tools> Include library> Add.zip library ثم حدد موقع ملف zip لتثبيت المكتبة.
بعد التثبيت الناجح للمكتبة ، اتبع الخطوات الواردة أدناه لتسجيل بصمة إصبع جديدة في ذاكرة المستشعر.
1. في Arduino IDE ، انتقل إلى ملف > أمثلة > مكتبة مستشعر بصمات الأصابع في Adafruit > تسجيل.
2. قم بتحميل الكود إلى Arduino ، وافتح الشاشة التسلسلية بمعدل باود 9600.
هام: قم بتغيير الدبوس التسلسلي للبرنامج في البرنامج إلى SoftwareSerial mySerial (12 ، 11).
3. يجب عليك إدخال معرف للبصمة التي تريد تخزين بصمة إصبعك بها. نظرًا لأن هذه هي بصمة إصبعي الأولى ، فقد كتبت 1 في الزاوية اليسرى العلوية ، ثم انقر فوق الزر إرسال.
4. ثم يومض الضوء الموجود على مستشعر بصمة الإصبع مما يشير إلى أنه يجب عليك وضع إصبعك على المستشعر وبعد ذلك اتبع الخطوات التي تظهر على الشاشة التسلسلية حتى تتعرف على تسجيلك بنجاح.
برمجة إشعال RFID بدون مفتاح
يتم تقديم الرمز الكامل لنظام الإشعال البيومتري هذا في نهاية البرنامج التعليمي. نحن هنا نوضح بعض الأجزاء المهمة من الكود.
أول شيء هو تضمين جميع المكتبات المطلوبة. هنا في حالتي ، قمت بتضمين " Adafruit_Fingerprint.h " لاستخدام مستشعر بصمة الإصبع R305 . ثم قم بتكوين المنفذ التسلسلي الذي سيتم توصيل مستشعر بصمة الإصبع به. في حالتي ، أعلنت أن الرقم 12 هو RX Pin و 11 كدبوس TX.
# تضمين # تضمين
في الخطوة التالية ، أعلن عن جميع المتغيرات ، والتي سيتم استخدامها في جميع أنحاء الكود. ثم حدد دبابيس توصيل LCD مع Arduino متبوعًا بإعلان كائن من فئة LiquidCrystal .
مدخلات شار عدد صحيح = 0 ؛ كثافة العمليات أ = 0 ؛ const int rs = 6 ، en = 7 ، d4 = 2 ، d5 = 3 ، d6 = 4 ، d7 = 5 ؛ LiquidCrystal LCD (rs، en، d4، d5، d6، d7) ؛
بعد ذلك ، داخل الحلقة () ، تتم كتابة الكود للحصول على الرموز الفريدة المكونة من 12 رقمًا لعلامات RFID ويتم تخزينها في صفيف. هنا ستتم مطابقة عناصر المصفوفة مع الرموز الفريدة المخزنة في الذاكرة ، للحصول على تفاصيل الشخص المصادق عليه.
العد = 0 ؛ while (Serial.available () && count <12) { input = Serial.read () ؛ العد ++ ؛ تأخير (5) ؛ }
بعد ذلك ، تتم مقارنة المصفوفة المستلمة مع رموز العلامات المخزنة. في حالة مطابقة الرمز ، يعتبر الترخيص صالحًا ، مما يسمح للمستخدم بوضع بصمة إصبع صالحة. خلاف ذلك ، سوف تظهر رخصة غير صالحة.
if ((strncmp (input، "3F009590566C"، 12) == 0) && (a == 0)) { lcd.setCursor (0، 0)؛ lcd.print ("رخصة سارية") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("مرحبًا") ؛ تأخير (1000) ؛ أ = 1 ؛ بصمة()؛ }
في الخطوة التالية ، تتم كتابة دالة getFingerprintID والتي ستعيد معرف بصمة إصبع صالح لبصمة إصبع مسجلة بالفعل.
int getFingerprintID () { uint8_t p = finger.getImage () ؛ إذا كان (p! = FINGERPRINT_OK) يعود -1 ؛ ع = finger.image2Tz () ؛ إذا كان (p! = FINGERPRINT_OK) يعود -1 ؛ p = finger.fingerFastSearch () ؛ إذا كان (p! = FINGERPRINT_OK) يعود -1 ؛ عودة الاصبع. }
بصمة الوظيفة الداخلية () ، والتي تسمى بعد مطابقة RFID الناجحة ، يتم استدعاء وظيفة getFingerprintID للحصول على معرف بصمة صالح. ثم تتم مقارنتها باستخدام حلقة if-else للحصول على المعلومات المتعلقة ببيانات الشخص المصادق عليه وإذا تمت مطابقة البيانات ، فسيتم إشعال السيارة ، وإلا فسوف تطالب ببصمة الإصبع الخاطئة.
int fingerprintID = getFingerprintID () ؛ تأخير (50) ؛ إذا (fingerprintID == 1) { lcd.setCursor (0، 0) ؛ lcd.print ("حق الوصول") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("بدء تشغيل السيارة") ؛ digitalWrite (9 ، عالية) ؛ digitalWrite (10 ، منخفض) ؛ بينما (1) ؛ }
هذه هي الطريقة التي يعمل بها نظام إشعال السيارة RFID الذي يضيف طبقتين من الأمان لسيارتك.
يتم إعطاء الرمز الكامل والفيديو التوضيحي أدناه.