يعد الأمان مصدر قلق كبير في حياتنا اليومية ، وأصبحت الأقفال الرقمية جزءًا مهمًا من أنظمة الأمان هذه. هناك العديد من أنواع أنظمة الأمان المتاحة لتأمين مكاننا. بعض الأمثلة هي نظام الأمان المستند إلى PIR ، ونظام الأمان المستند إلى RFID ، ونظام القفل الرقمي ، وأنظمة المصفوفة الحيوية ، وقفل رمز الإلكترونيات. في هذا المنشور ، سوف نتعامل مع وحدة مستشعر بصمات الأصابع مع Arduino وسنقوم ببناء نظام أمان حيوي قائم على بصمات الأصابع مع قفل الباب تعتبر Fingerprint واحدة من أكثر المفاتيح أمانًا لقفل أو إلغاء قفل أي نظام حيث يمكنها التعرف على أي شخص بشكل فريد ولا يمكن نسخها بسهولة.
المكونات المطلوبة:
- اردوينو اونو
- وحدة بصمة الإصبع
- اضغط على زر -4
- المصابيح -2
- 1 كيلو المقاوم -3
- 2.2 كيلو المقاوم -1`
- مزود الطاقة
- توصيل الأسلاك
- صندوق كرتون
- محرك سيرفو -1
- 16x2 LCD -1
- مجلس الخبز -1
وحدة مستشعر بصمة الإصبع مع Arduino:
وحدة مستشعر بصمة الإصبع أو ماسح بصمة الإصبع هي وحدة تلتقط صورة بصمة الإصبع ثم تحولها إلى قالب مكافئ وتحفظها في ذاكرتها على المعرف المحدد (الموقع) بواسطة Arduino. هنا يتم تنفيذ كل العملية بواسطة Arduino مثل التقاط صورة لبصمات الأصابع وتحويلها إلى قوالب وتخزين الموقع وما إلى ذلك.
في مشروع Arduino Fingerprint Sensor ، استخدمنا وحدة مستشعر بصمات الأصابع لأخذ بصمة الإصبع أو الإبهام كمدخل في النظام. نحن هنا نستخدم 4 أزرار ضغط للتسجيل / العودة ، حذف / موافق ، لأعلى ولأسفل. كل مفتاح له ميزات مزدوجة. يُستخدم مفتاح التسجيل لتسجيل بصمة إصبع جديدة في النظام ووظيفة الرجوع أيضًا. يعني أنه عندما يريد المستخدم تسجيل إصبع جديد ، فإنه يحتاج إلى الضغط على مفتاح التسجيل ، ثم تطلب شاشة LCD المعرف أو الموقع حيث يريد المستخدم تخزين إخراج بصمة الإصبع. الآن إذا كان المستخدم لا يريد المضي قدمًا في هذا الوقت ، فيمكنه / يمكنها الضغط على مفتاح التسجيل مرة أخرى للعودة (يتصرف مفتاح التسجيل هذه المرة كمفتاح رجوع). يعني أن مفتاح التسجيل لديه وظيفة التسجيل والعودة. مفتاح DEL / OKلديه أيضًا نفس الوظيفة المزدوجة مثل عندما يسجل المستخدم إصبعًا جديدًا ، ثم يحتاج إلى تحديد معرف الإصبع أو الموقع باستخدام مفتاحين آخرين هما UP / MATCH AND DOWN / MATCH (والذي له أيضًا وظيفة مزدوجة) الآن يحتاج المستخدم إلى الضغط على DEL / OK key (هذه المرة يتصرف هذا المفتاح مثل OK) للمتابعة مع المعرف أو الموقع المحدد. تدعم مفاتيح UP / DOWN أيضًا وظيفة مطابقة بصمة الإصبع. تحقق من الفيديو في النهاية للحصول على شرح كامل.
هنا قمنا أيضًا بإرفاق صندوق من الورق المقوى بمحرك مؤازر ليكون بمثابة بوابة أمنية ، والتي لن تفتح إلا عندما يقرأ النظام بصمة الإصبع الصحيحة. يشير مؤشر LED الأصفر إلى أن البوابة مغلقة ويشير مؤشر LED الأخضر إلى فتح البوابة.
شرح العمل:
العمل من هذا قفل الباب الاستشعار بصمات الأصابعسهل. في هذا المشروع ، استخدمنا بوابة سيتم فتحها عندما نضع الإصبع المخزن في وحدة البصمة. بادئ ذي بدء ، يحتاج المستخدم إلى تسجيل الإصبع بمساعدة زر الضغط / المفاتيح. للقيام بهذا المستخدم ، يحتاج إلى الضغط على مفتاح ENROLL ثم تطلب شاشة LCD إدخال الموقع / المعرف حيث سيكون الإصبع متجرًا. لذا يحتاج المستخدم الآن إلى إدخال المعرف (الموقع) باستخدام مفاتيح UP / DOWN. بعد تحديد الموقع / المعرف ، يحتاج المستخدم إلى الضغط على مفتاح موافق (مفتاح DEL). ستطلب شاشة LCD الآن وضع الإصبع فوق وحدة بصمة الإصبع. يحتاج المستخدم الآن إلى وضع إصبعه على وحدة البصمة. بعد ذلك ، ستطلب شاشة LCD إزالة الإصبع من وحدة البصمة وتطلب مرة أخرى وضع الإصبع. يحتاج المستخدم الآن إلى وضع إصبعه مرة أخرى فوق وحدة البصمة.الآن تأخذ وحدة البصمة صورة وتحولها إلى قوالب وتخزنها بواسطة المعرف المحدد في ذاكرة وحدة بصمات الأصابع. الآن يمكن للمستخدم فتح البوابة عن طريق وضع نفس الإصبع الذي أضافه أو سجله في النظام ثم الضغط على مفتاح MATCH (مفتاح UP / Down). بنفس الطريقة ، يمكن للمستخدم إضافة المزيد من الأصابع. تحقق من الفيديو أدناه للحصول على شرح كامل.
الآن إذا أراد المستخدم إزالة أو حذف أي من المعرفات المخزنة ، فعليه / عليها الضغط على مفتاح DEL ، بعد الضغط على مفتاح DEL ، سيطلب LCD تحديد الموقع يعني تحديد المعرف المراد حذفه. يحتاج المستخدم الآن إلى تحديد المعرف والضغط على مفتاح OK (نفس مفتاح DEL). ستعلمك شاشة LCD الآن أنه تم حذف الإصبع بنجاح. الآن يمكن للمستخدم التحقق من أنه تم حذفه أم لا عن طريق وضع نفس الإصبع على وحدة بصمات الأصابع والضغط على مفتاح MATCH (مفتاح أعلى / أسفل).
عند وضع الإصبع سيكون صالحًا ، سوف يتوهج مؤشر LED الأخضر لمدة خمس ثوانٍ ، كما تفتح البوابة في نفس الوقت. بعد 5 ثوان سيتم إغلاق البوابة تلقائيًا. يمكن للمستخدم تخصيص فتح وإغلاق البوابة / الباب وفقًا لمتطلباتهم. محرك سيرفو مسؤول عن فتح وإغلاق البوابة.
شرح الدائرة:
دائرة نظام حماية بصمات الأصابع من Arduino بسيطة للغاية وتحتوي على Arduino الذي يتحكم في عملية المشروع بالكامل ، وزر ضغط ، وجرس ، وشاشة LCD. يتحكم Arduino في العمليات الكاملة.
زر الضغط متصل مباشرة بالدبوس D14 (ENROLL) و D15 (DEL) و D16 (UP) و D17 (DOWN) من Arduino فيما يتعلق بالأرض ، ويتم توصيل مؤشر LED الأصفر في Digital pin D7 من Arduino فيما يتعلق بالأرض يتم توصيل المقاوم 1k و Green LED بـ D6 من Arduino بنفس الطريقة. تم توصيل Rx و Tx لوحدة بصمة الإصبع مباشرة في Software Serial أو Digital pin D2 و D3 من Arduino. يستخدم مصدر 5 فولت لتشغيل وحدة بصمات الأصابع المأخوذة من لوحة Arduino ، كما يتم توصيل محرك سيرفو بـ PWM pin D5 من Arduino. تم تكوين شاشة LCD مقاس 16 × 2 في وضع 4 بت ويتم توصيل RS و EN و D4 و D5 و D6 و D7 مباشرةً في Digital pin D13 و D12 و D11 و D10 و D9 و D8 من Arduino.
ملاحظة: هنا D14 و D15 و D16 و D17 هي A0 و A1 و A2 و A3 على التوالي.
شرح البرنامج:
في أحد البرامج ، استخدمنا Adafruit Fingerprint Sensor Library لربط وحدة بصمات الأصابع بلوحة Arduino. يمكنك التحقق من الكود الكامل أدناه ، ويمكن فهمه بسهولة. نحن هنا نوضح الوظائف الرئيسية لبرنامج Arduino.
يتم استخدام جزء من الكود أدناه لأخذ Finger Print كمدخل واتخاذ إجراء وفقًا للتحقق من صحة الإصبع. إذا تم التحقق من صحة الإصبع ، فسيتم فتح البوابة وإلا ستظل مغلقة.
لـ (int i = 0؛ i <5؛ i ++) {lcd.clear () ؛ lcd.print ("وضع الإصبع") ؛ تأخير (2000) ؛ نتيجة int = getFingerprintIDez () ، إذا (النتيجة> = 0) {digitalWrite (openLight، HIGH) ؛ digitalWrite (قريب ، منخفض) ؛ lcd.clear () ؛ lcd.print ("مسموح بها") ؛ lcd.setCursor (0،1) ؛ lcd.print ("Gete Opened") ؛ myServo.write (0) ، تأخير (5000) ؛ myServo.write (180) ؛ digitalWrite (ضوء قريب ، عالي) ؛ الكتابة الرقمية (openLight ، LOW) ؛ lcd.setCursor (0،1) ؛ lcd.print ("البوابة مغلقة") ؛
نظرًا لاستخدام وظيفة checkKeys () باطلة للتحقق من الضغط على مفتاح Enroll أو DEL أو لا وماذا تفعل إذا تم الضغط عليه. إذا ضغط مفتاح ENROLL على وظيفة Enroll () ، ثم اضغط على مفتاح DEL ، ثم يتم استدعاء وظيفة delete () .
checkKeys باطلة () {if (digitalRead (register) == 0) {lcd.clear ()؛ lcd.print ("الرجاء الانتظار") ؛ تأخير (1000) ؛ بينما (digitalRead (تسجيل) == 0) ؛ يتسجل، يلتحق()؛ } else if (digitalRead (del) == 0) {lcd.clear ()؛ lcd.print ("الرجاء الانتظار") ؛ تأخير (1000) ؛ حذف () ؛ }}
تُستخدم الوظيفة المعطاة لإدخال المعرف المراد حذفه واستدعاء وظيفة uint8_t deleteFingerprint (uint8_t id) التي ستحذف الإصبع من السجلات.
حذف باطل () {عدد صحيح = 0 ؛ lcd.clear () ؛ lcd.print ("حذف الإصبع") ؛ lcd.setCursor (0،1) ؛ lcd.print ("الموقع:") ؛ بينما (1) {lcd.setCursor (9،1) ؛ lcd.print (العد) ؛ إذا (digitalRead (up) == 0) {count ++ ؛ إذا (العد> 25) العد = 0 ؛ تأخير (500) ؛ }……………….
يتم استخدام الوظيفة المعينة لحذف بصمة الإصبع من سجل المعرف المحدد.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1 ؛ lcd.clear () ؛ lcd.print ("الرجاء الانتظار") ؛ ع = finger.deleteModel (معرف) ؛ إذا (p == FINGERPRINT_OK) {Serial.println ("محذوف!") ؛ lcd.clear () ؛ lcd.print ("Figer Deleted") ؛ lcd.setCursor (0،1) ؛ lcd.print ("بنجاح") ؛ تأخير (1000) ؛ } else {Serial.print ("شيء خاطئ")؛ lcd.clear () ؛ lcd.print ("شيء خاطئ") ؛ lcd.setCursor (0،1) ؛ lcd.print ("حاول مرة أخرى لاحقًا") ؛ تأخير (2000) ؛ عودة ص ؛ }}
تُستخدم الوظيفة المحددة لأخذ صورة بصمات الأصابع وتحويلها إلى قالب وحفظها بواسطة المعرف المحدد في ذاكرة وحدة بصمات الأصابع.
uint8_t getFingerprintEnroll () {int p = -1 ؛ lcd.clear () ؛ lcd.print ("معرف الإصبع:") ؛ lcd.print (معرف) ؛ lcd.setCursor (0،1) ؛ lcd.print ("وضع الإصبع") ؛ تأخير (2000) ؛ while (p! = FINGERPRINT_OK) {p = finger.getImage () ؛……………………
هذه هي الطريقة التي يمكننا بها استخدام Arduino مع وحدة قارئ بصمات الأصابع لنظام الأمان.