- مطلوبہ اجزاء
- سرکٹ ڈایاگرام اور وضاحت
- پی آئی سی مائکروکنٹرولر کے ساتھ فنگر پرنٹ سینسر کا آپریشن
- پروگرامنگ وضاحت
فنگر پرنٹ سینسر ، جسے ہم کچھ سال پہلے سائنس فائی فلموں میں دیکھتے تھے ، اب مختلف مقاصد کے لئے کسی شخص کی شناخت کی تصدیق کرنے کے لئے یہ بہت عام ہوگیا ہے۔ موجودہ وقت میں ہم اپنی روزمرہ کی زندگی میں ہر جگہ فنگر پرنٹ پر مبنی نظام دیکھ سکتے ہیں جیسے دفاتر میں حاضری ، بینکوں میں ملازمین کی تصدیق ، نقد رقم نکالنے یا اے ٹی ایم میں جمع کروانے کے لئے ، سرکاری دفاتر میں شناختی تصدیقی وغیرہ کے لئے۔ راسبیری پائی کے ساتھ ، آج ہم پی آئی سی مائکروکانٹرولر کے ساتھ فنگر پرنٹ سینسر کو انٹرفیس کرنے جارہے ہیں ۔ اس PIC مائکروکونٹرولر PIC16f877A فنگر پرنٹ سسٹم کا استعمال کرتے ہوئے ، ہم سسٹم میں نئے فنگر پرنٹ اندراج کرسکتے ہیں اور پہلے سے کھلایا ہوا فنگر پرنٹ حذف کرسکتے ہیں۔ ویڈیو میں سسٹم کے مکمل کام کو دکھایا گیا ہے مضمون کے آخر میں دیئے گئے۔
مطلوبہ اجزاء
- PIC16f877A مائکروکانٹرولر
- فنگر پرنٹ ماڈیول
- پش بٹن یا کیپیڈ
- 16x2 LCD
- 10 کٹ کا برتن
- 18.432000 میگا ہرٹز کرسٹل آسیلیٹر
- بریڈ بورڈ یا پی سی بی (جے ایل سی پی سی بی کا حکم دیا گیا)
- جمپر تاروں
- ایل ای ڈی (اختیاری)
- مزاحم 150 اوہم -1 کے اوہم (اختیاری)
- 5v بجلی کی فراہمی
سرکٹ ڈایاگرام اور وضاحت
اس پی آئی سی مائکروکونٹرولر فنگر پرنٹ سینسر انٹرفیسنگ پروجیکٹ میں ، ہم نے 4 پش بٹن استعمال کیے ہیں: یہ بٹن ملٹی فکشننگ کے لئے استعمال ہوتے ہیں۔ کلیدی 1 نظام میں فنگر پرنٹ کو اسٹور کرنے یا حذف کرنے کے دوران فنگر پرنٹ اور انکریمنٹ فنگر پرنٹ ID کے ملاپ کے لئے استعمال کیا جاتا ہے۔ کلید 2 کا استعمال نئے فنگر پرنٹ کو اندراج کرنے کے لئے اور سسٹم میں فنگر پرنٹ کو اسٹور کرنے یا حذف کرنے کے دوران فنگر پرنٹ ID کو کم کرنے کے لئے کیا جاتا ہے۔ کلید 3 نظام سے ذخیرہ شدہ انگلی کو حذف کرنے کے لئے استعمال کیا جاتا ہے اور کلیدی 4 ٹھیک کے لئے استعمال ہوتا ہے۔ ایک ایل ای ڈی اس اشارے کے لئے استعمال کیا جاتا ہے کہ فنگر پرنٹ کا پتہ چلا ہے یا اس سے میل کھاتا ہے۔ یہاں ہم نے فنگر پرنٹ ماڈیول استعمال کیا ہے جو UART پر کام کرتا ہے۔ لہذا یہاں ہم نے اس فنگر پرنٹ ماڈیول کو پی آئی سی مائکروکینٹرلر کے ساتھ اس کے پہلے سے طے شدہ بڈ ریٹ پر انٹرفیس کیا ہے جو 57600 ہے۔
لہذا ، سب سے پہلے ، ہمیں سرکٹ ڈایاگرام میں دکھائے جانے والے تمام مطلوبہ کنکشن کو بنانے کی ضرورت ہے۔ رابطے آسان ہیں ، ہم نے ابھی تک فنگر پرنٹ ماڈیول کو پی آئی سی مائکروکنٹرولر کے یو آر ٹی سے منسلک کیا ہے۔ ایک 16x2 LCD تمام پیغامات کی نمائش کے لئے استعمال کیا جاتا ہے۔ ایل سی ڈی کے ساتھ ایک 10 ک برتن بھی اس کے برعکس کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے۔ 16x2 LCD ڈیٹا پنز پورٹا پنوں سے منسلک ہیں۔ ایل سی ڈی کے ڈی 4 ، ڈی 5 ، ڈی 6 ، اور ڈی 7 پنز بالترتیب پن RA0 ، RA1 ، RA2 ، اور PIC مائکروقابو کنٹرولر کے RA3 کے ساتھ جڑے ہوئے ہیں۔ چار پش بٹن (یا کیپیڈ) PORTD کے پن RD0 ، RD1 ، RD2 ، اور RD سے جڑے ہوئے ہیں۔ ایل ای ڈی پورٹ پی او آر ٹی سی کے پن آر سی 3 پر بھی منسلک ہے۔ یہاں ہم نے مائکروکانٹرولر گھڑی کرنے کے لئے ایک 18.432000 میگا ہرٹز بیرونی کرسٹل آسکیلیٹر استعمال کیا ہے۔
پی آئی سی مائکروکنٹرولر کے ساتھ فنگر پرنٹ سینسر کا آپریشن
اس پروجیکٹ کا عمل آسان ہے ، صرف PIC پروگرامر یا برنر (PIckit2 یا Pickit3 یا دیگر) کی مدد سے PIC مائکروقابو کنٹرولر میں ماخذ کوڈ سے تیار کردہ ہیکس فائل اپ لوڈ کریں اور پھر آپ LCD پر کچھ انٹرو پیغامات دیکھیں گے اور پھر صارف آپریشن کے ل for کسی انتخاب میں داخل ہونے کو کہا جائے گا۔ فنگر پرنٹ سے ملنے کے ل user صارف 1 کو دبائیں۔ پھر LCD فنگر پرنٹ سینسر پر پلیس فنگر کا مطالبہ کرے گا ۔ اب فنگر پرنٹ ماڈیول پر انگلی ڈال کر ، ہم جانچ سکتے ہیں کہ ہمارے فنگر پرنٹ پہلے سے محفوظ ہیں یا نہیں۔ اگر آپ کا فنگر پرنٹ ذخیرہ ہے تو پھر LCD پیغام کو فنگر پرنٹ نما ' ID: 2' کے اسٹورنگ ID کے ساتھ دکھائے گا ورنہ یہ 'نہیں ملا' دکھائے گا ۔
اب انگلی کے پرنٹ کو اندراج کرنے کے ل the ، صارف کو اندراج کے بٹن یا کلیدی 2 کو دبانے اور LCD اسکرین پر ہدایات کے پیغامات پر عمل کرنے کی ضرورت ہے۔
اگر صارف کسی بھی فنگر پرنٹ کو حذف کرنا چاہتا ہے تو صارف کو ڈیلیٹ بٹن یا کلیدی 3 دبانے کی ضرورت ہے ۔ اس کے بعد ، ایل سی ڈی فنگر پرنٹ کی شناخت طلب کرے گا جسے ڈیلیٹ کرنا ہے۔ اب انکریمنٹ پش بٹن یا کلیدی 1 (میچ پش بٹن یا کلیدی 1) اور کم ہونے والے پش بٹن یا کلیدی 2 (اندراج پش بٹن یا کلیدی 2) کا استعمال کرکے انکرمنٹ اور کمی کیلئے ، صارف محفوظ فنگر پرنٹ کی شناخت منتخب کرسکتے ہیں اور اوکے دبائیں۔ اس فنگر پرنٹ کو حذف کرنے کے لئے بٹن۔ مزید تفہیم کے لئے پروجیکٹ کے آخر میں دی گئی ویڈیو پر ایک نظر ڈالیں ۔
انگلی کی چھپائی میں مداخلت نوٹ: اس پروجیکٹ کا پروگرام ابتدائیہ کے ل a تھوڑا سا پیچیدہ ہے۔ لیکن اس کا آسان انٹرفیسنگ کوڈ r305 فنگر پرنٹ ماڈیول ڈیٹا شیٹ کو استعمال کرکے تیار کیا گیا ہے۔ اس فنگر پرنٹ ماڈیول کے کام کرنے کی تمام ہدایات ڈیٹا شیٹ میں دی گئی ہیں۔
یہاں ہم نے فنگر پرنٹ ماڈیول کے ساتھ بات کرنے کے لئے ایک فریم فارمیٹ استعمال کیا ہے ۔ جب بھی ہم فنگر پرنٹ ماڈیول کو کمانڈ یا ڈیٹا ریکوئرنس فریم بھیجتے ہیں تو وہ ہمیں اسی فریم فارمیٹ کے ساتھ جواب دیتا ہے جس میں اطلاق شدہ کمانڈ سے متعلق ڈیٹا یا معلومات پر مشتمل ہوتا ہے۔ تمام ڈیٹا اور کمانڈ فریم فارمیٹ صارف دستی میں یا R305 فنگر پرنٹ ماڈیول کے ڈیٹا شیٹ میں دیا گیا ہے۔
پروگرامنگ وضاحت
پروگرامنگ میں ، ہم نے ذیل میں فریم فارمیٹ استعمال کیا ہے۔
ہم پروگرام کا آغاز ترتیباتی بٹس طے کرکے اور ایل سی ڈی ، بٹن اور ایل ای ڈی کے لئے میکروز اور پنوں کی وضاحت کرکے کرتے ہیں ، جسے آپ اس پروجیکٹ کے اختتام پر دیئے گئے مکمل کوڈ میں چیک کرسکتے ہیں ۔ اگر آپ پی آئی سی مائکروکنٹرولر کے لئے نئے ہیں تو پھر پی آئی سی مائکروکانٹرولر پروجیکٹ کے ساتھ شروعات کرنا شروع کریں۔
پھر ہم نے کچھ متغیر اور صفوں کا اعلان اور ابتدا کی ، اور ہم نے اس منصوبے میں PIC مائکروکانٹرولر کے ساتھ فنگر پرنٹ ماڈیول کو انٹرفیس کرنے کے لئے استعمال کرنے کی ضرورت کا ایک فریم تیار کیا۔
uchar buf؛ uchar buf1؛ اتار چڑھاؤ انڈیکس = 0؛ اتار چڑھاؤ والی پرچم = 0؛ uint msCount = 0؛ uint g_timerflag = 1؛ غیر مستحکم یونٹ گنتی = 0؛ uchar ڈیٹا؛ uint id = 1؛ شمار { CMD، ڈیٹا، SBIT_CREN = 4، SBIT_TXEN، SBIT_SPEN، }؛ کونٹ چار پاسپیک = {0xEF ، 0x1 ، 0xFF ، 0xFF ، 0xFF ، 0xFF ، 0x1، 0x0، 0x7، 0x13، 0x0، 0x0، 0x0، 0x0، 0x0، 0x1B}؛ کونٹ چار f_detect = {0xEF، 0x1، 0xFF، 0xFF، 0xFF، 0xFF، 0x1، 0x0، 0x3، 0x1، 0x0، 0x5}؛ کونٹ چار f_imz2ch1 = {0xEF، 0x1، 0xFF، 0xFF، 0xFF، 0xFF، 0x1، 0x0، 0x4، 0x2، 0x1، 0x0، 0x8}؛ کونٹ چار f_imz2ch2 = {0xEF، 0x1، 0xFF، 0xFF، 0xFF، 0xFF، 0x1، 0x0، 0x4، 0x2، 0x2، 0x0، 0x9}؛ کونٹ چار f_createModel = {0xEF، 0x1،0xFF، 0xFF، 0xFF، 0xFF، 0x1،0x0،0x3،0x5،0x0،0x9}؛ چار f_storeModel = {0xEF، 0x1،0xFF، 0xFF، 0xFF، 0xFF، 0x1،0x0،0x6،0x6،0x1،0x0،0x1،0x0،0xE}؛ کونٹ چار f_search = {0xEF، 0x1، 0xFF، 0xFF، 0xFF، 0xFF، 0x1، 0x0، 0x8، 0x1B، 0x1، 0x0، 0x0، 0x0، 0xA3، 0x0، 0xC8}؛ چار f_delete = {0xEF، 0x1،0xFF، 0xFF، 0xFF، 0xFF، 0x1،0x0،0x7،0xC، 0x0،0x0،0x0،0x1،0x0،0x15}؛
اس کے بعد ، ہم نے LCD چلانے کے لئے LCD فنکشن بنایا ہے۔
باطل lcdwrite (uchar ch، uchar rw) { LCDPORT = ch >> 4 & 0x0F؛ آر ایس = آر ڈبلیو؛ EN = 1؛ __ڈیلا_س (5)؛ EN = 0؛ LCDPORT = ch & 0x0F؛ EN = 1؛ __ڈیلا_س (5)؛ EN = 0؛ } lcdprint (چار * STR) { جبکہ (* STR) { lcdwrite (* STR + +، ڈیٹا)؛ // __ تاخیر_ میل (20)؛ } } lcdbegin () { uchar lcdcmd = {0x02،0x28،0x0E، 0x06،0x01}؛ uint i = 0؛ (i = 0؛ i <5؛ i ++) lcdwrite (lcdcmd ، CMD)؛ }
دی گئی تقریب کا استعمال UART کو شروع کرنے کے لئے کیا جاتا ہے
باطل سیریلینجن (uint baudrate) { SPBRG = (18432000UL / (لمبا) (64UL * باؤڈریٹ))) - 1؛ // باؤڈ ریٹ @ 18.432000Mhz گھڑی TXSTAbit.SYNC = 0؛ // ایسینکرونس موڈ کی ترتیب ، یعنی UART RCSTAbit.SPEN = 1؛ // سیریل پورٹ کو قابل بناتا ہے TRISC7 = 1؛ // جیسا کہ ڈیٹا شیٹ TRISC6 = 0 میں مشورہ دیا گیا ہے؛ // جیسا کہ ڈیٹاشیٹ RCSTAbit.CREN = 1 میں مشورہ دیا گیا ہے؛ // مستقل استقبالیہ کو قابل بناتا ہے TXSTAbit.TXEN = 1؛ // ٹرانسمیشن GIE = 1 کو قابل بناتا ہے ؛ // قابل عمل مداخلت INTCONbit.PEIE = 1؛ // پردیی مداخلتوں کے قابل بنائیں۔ PIE1bit.RCIE = 1؛ // قابل عمل USART مداخلت PIE1bit.TXIE وصول کریں = 0؛ // یو ایس ای آر ٹی ٹی ایکس رکاوٹ PIR1bit.RCIF = 0 کو غیر فعال کریں ۔ }
دیئے گئے فنکشنز کو فنگر پرنٹ ماڈیول میں کمانڈ منتقل کرنے اور فنگر پرنٹ ماڈیول سے ڈیٹا وصول کرنے کے لئے استعمال کیا جاتا ہے ۔
باطل سیریل رائٹ (چار Ch) { جبکہ (TXIF == 0)؛ // جب تک ٹرانسمیٹر کا اندراج خالی نہ ہو TXIF = 0؛ // واضح ٹرانسمیٹر پرچم TXREG = ch؛ // چار منتقل REG میں منتقل کیا جا کرنے کے لئے لوڈ ہو } serialprint (چار * STR) { جبکہ (* STR) { serialwrite (* STR ++)؛ } } باطل تسلسل SerialRxPinInterrupt (باطل) { تو ((PIR1bits.RCIF == 1) && (PIE1bits.RCIE == 1)) { uchar چوہدری = RCREG؛ buf = ch؛ اگر (انڈیکس> 0) پرچم = 1؛ RCIF = 0؛ // واضح RX پرچم } } باطل serialFlush () { لئے (int میں = 0؛ میں
اس کے بعد ہمیں ایک ایسا فنکشن بنانے کی ضرورت ہے جو فنگر پرنٹ میں منتقل کرنے اور فنگر پرنٹ ماڈیول سے آنے والے ڈیٹا کو ڈی کوڈ کرنے والے ڈیٹا کو تیار کرتا ہے ۔
INT sendcmd2fp (چار * پیک، INT لین) { uint لوڈ = غلطی؛ سیریل فلش ()؛ انڈیکس = 0؛ __ڈیلا_س (100)؛ کے لئے (INT i = 0؛ i)
اب ، چار مختلف کام کے لئے کوڈ میں چار فنکشن دستیاب ہیں:
- فنگر پرنٹ ID ان پٹ کے لئے فنکشن - یونٹ getId ()
- ملاپ والی انگلی کے لئے فنکشن - باطل میچ فنگر ()
- نئی انگلی کے اندراج کے ل Fun کام - باطل اندراج فنگر ()
- انگلی کو حذف کرنے کے لئے فنکشن - باطل ڈیلی فنگر ()
چاروں فنکشن کے ساتھ مکمل کوڈ آخر میں دیا گیا ہے۔
اب مرکزی فنکشن میں ، ہم GPIOs ، LCD ، UART کو شروع کرتے ہیں اور جانچ کرتے ہیں کہ آیا فنگر پرنٹ ماڈیول مائکروقابو کرنے والے کے ساتھ منسلک ہے یا نہیں۔ پھر یہ LCD پر کچھ انٹرو پیغامات دکھاتا ہے۔ آخر میں جب ہم لوپ پڑھیں یا پروجیکٹ کو چلانے کیلئے بٹن دبائیں۔
int main () { باطل (* FP) ()؛ ADCON1 = 0b00000110؛ ایل ای ڈی ڈیر = 0؛ سوپورٹڈیر = 0xF0؛ سوپورٹ = 0x0F؛ سیریل بین (57600)؛ LCDportTDIR = 0x00؛ TRISE = 0؛ lcdbegin ()؛ ایل سی ڈی پرنٹ ("فنگر پرنٹ")؛ ایل سی ڈی رائٹ (192 ، سی ایم ڈی)؛ lcdprint ("انٹرفیسنگ")؛ __Dlay_ms (2000)؛ ایل سی ڈی رائٹ (1 ، سی ایم ڈی)؛ lcdprint ("PIC16F877A استعمال کرنا")؛ ایل سی ڈی رائٹ (192 ، سی ایم ڈی)؛ lcdprint ("سرکٹ ڈائجسٹ")؛ __Dlay_ms (2000)؛ انڈیکس = 0؛ جبکہ (sendcmd2fp (& passPack، sizeof (passPack))) { lcdwrite (1، سی ایم ڈی)؛ ایل سی ڈی پرنٹ ("ایف پی نہیں ملا")؛ __Dlay_ms (2000)؛ انڈیکس = 0؛ } ایل سی ڈی رائٹ (1 ، سی ایم ڈی)؛ ایل سی ڈی پرنٹ ("ایف پی ملا")؛ __ڈیلا_س (1000)؛ lcdinst ()؛ جبکہ (1) { FP = میچ
مکمل PIC کوڈ اور ایک ورکنگ ویڈیو ذیل میں دیا گیا ہے۔ فنگر پرنٹ سینسر ماڈیول کا استعمال کرتے ہوئے ہمارے دوسرے پروجیکٹس کو بھی چیک کریں:
- ارڈینو کا استعمال کرتے ہوئے فنگر پرنٹ بیسڈ بایومیٹرک ووٹنگ مشین
- بائیو میٹرک سیکیورٹی سسٹم جو اردوینو اور فنگر پرنٹ سینسر کا استعمال کرتے ہیں
- ارڈینو کا استعمال کرتے ہوئے فنگر پرنٹ بیسڈ بایومیٹرک اٹینڈنس سسٹم
- راسبیری پائ کے ساتھ فنگر پرنٹ سینسر انٹرفیسنگ