- सामग्री की आवश्यकता
- GT511C3 फिंगरप्रिंट सेंसर (FPS) मॉड्यूल
- Arduino के साथ GT511C3 फिंगर प्रिंट सेंसर कनेक्ट करना
- Arduino GT511C3 के साथ
- GT511C3 फिंगर प्रिंट सेंसर के लिए Arduino प्रोग्रामिंग
- Arduino के साथ GT511C3 फिंगर प्रिंट सेंसर का कार्य
बॉयोमीट्रिक्स को लंबे समय से एक विश्वसनीय प्रमाणीकरण प्रणाली के रूप में उपयोग किया जाता है। आज जटिल बायोमेट्रिक सिस्टम मौजूद हैं जो किसी व्यक्ति को उसके दिल की धड़कन की लय या उसके डीएनए द्वारा भी पहचान सकते हैं। अन्य व्यवहार्य तरीकों में आवाज की पहचान, चेहरे की पहचान, आइरिस स्कैनिंग और फिंगर प्रिंट स्कैनिंग शामिल हैं। जिसमें से फिंगर प्रिंट की मान्यता सबसे व्यापक रूप से उपयोग की जाने वाली विधि है, हम इसे एक साधारण उपस्थिति प्रणाली से स्मार्ट फोन से लेकर सुरक्षा जांच तक और बहुत कुछ पा सकते हैं।
इस ट्यूटोरियल में हम सीखेंगे कि Arduino के साथ लोकप्रिय GT511C3 फ़िंगर प्रिंट सेंसर (FPS) का उपयोग कैसे करें । कई एफपीएस उपलब्ध हैं और हमने पहले ही सीख लिया है कि अटेंडेंस सिस्टम, वोटिंग मशीन, सुरक्षा प्रणाली आदि जैसे डिजाइन बनाने के लिए उनका उपयोग कैसे किया जाए, लेकिन GT511C3 उच्च सटीकता और तेजी से प्रतिक्रिया समय के साथ अधिक उन्नत है, इसलिए हम सीखेंगे कि इसका उपयोग कैसे करें। Arduino के साथ उस पर उंगली के निशान भर्ती और उसके बाद जब भी आवश्यक उंगलियों के निशान का पता लगाने के । तो चलो शुरू करते है।
सामग्री की आवश्यकता
- Arduino नैनो / UNO
- GT511C3 फिंगर प्रिंट सेंसर
- 16x2 एलसीडी स्क्रीन
- पॉट - 10k और 1k, 10k, 22k प्रतिरोधों
- बटन दबाओ
- तारों को जोड़ना
- ब्रेड बोर्ड
GT511C3 फिंगरप्रिंट सेंसर (FPS) मॉड्यूल
परियोजना में गोता लगाने से पहले हमें GT511C3 फिंगरप्रिंट सेंसर मॉड्यूल के बारे में और यह कैसे काम करता है, इसके बारे में समझें । यह सेंसर कैपेसिटिव और अल्ट्रासोनिक फ़िंगरप्रिंट सेंसर का बहुत अलग रूप है जो आमतौर पर हमारे स्मार्ट फोन में उपयोग किया जाता है। GT511C3 एक ऑप्टिकल फिंगरप्रिंट सेंसर है, जिसका अर्थ यह अपनी अंगुली की छाप अपने पैटर्न पहचान करने के लिए की छवियों पर निर्भर करता है। जी हां आपने सही पढ़ा, सेंसर में वास्तव में एक कैमरा होता है, जो आपके फिंगरप्रिंट की तस्वीरें लेता है और फिर शक्तिशाली इन-बिल्ट एआरएम कॉर्टेक्स एम 3 आईसी का उपयोग करके इन छवियों को संसाधित करता है। नीचे की छवि सेंसर के सामने और पीछे की तरफ पिनआउट के साथ दिखाती है।
जैसा कि आप देख सकते हैं कि सेंसर में नीले एलइडी से घिरा एक कैमरा (काला धब्बा) है, इन एल ई डी को फिंगरप्रिंट की स्पष्ट छवि लेने के लिए जलाया जाना है। इन छवियों को फिर संसाधित किया जाता है और EEPROM के साथ मिलकर एआरएम माइक्रोकंट्रोलर का उपयोग करके द्विआधारी मूल्य में परिवर्तित किया जाता है । पावर को इंगित करने के लिए मॉड्यूल में एक हरे रंग का एसएमडी एलईडी भी है। प्रत्येक फिंगरप्रिंट छवि 202x258 पिक्सेल की है जिसमें 450dpi का रिज़ॉल्यूशन है। सेंसर 200 उंगलियों के निशान तक और प्रत्येक फिंगर प्रिंट टेम्पलेट यह 199 के लिए एक आईडी फार्म 0 प्रदान करती है के लिए दाखिला ले सकते हैं । फिर पता लगाने के दौरान, यह स्वचालित रूप से स्कैन किए गए फिंगरप्रिंट की सभी 200 टेम्प्लेट के साथ तुलना कर सकता है और यदि कोई मैच पाया जाता है तो यह स्मैक फिंगर 3.0 का उपयोग करके उस विशेष फिंगरप्रिंट की आईडी संख्या देता हैएआरएम माइक्रोकंट्रोलर पर एल्गोरिदम। सेंसर 3.3V से 6V तक काम कर सकता है और 9600 पर सीरियल संचार के माध्यम से संचार कर सकता है। संचार पिन (आरएक्स और टीएक्स) को केवल 3.3V सहिष्णु कहा जाता है, हालांकि डेटाशीट इसके बारे में बहुत कुछ निर्दिष्ट नहीं करता है। GT511C3 FPS का पिन-आउट नीचे दिखाया गया है।
धारावाहिक संचार के अलावा मॉड्यूल को सीधे कंप्यूटर से भी जोड़ा जा सकता है, हालांकि पिछली छवि में दिखाए गए पिन का उपयोग करके यूएसबी कनेक्शन । एक बार कंप्यूटर से कनेक्ट होने के बाद SDK_DEMO.exe एप्लिकेशन का उपयोग करके मॉड्यूल को नियंत्रित किया जा सकता है जिसे लिंक से डाउनलोड किया जा सकता है। यह एप्लिकेशन उपयोगकर्ता को उंगलियों के निशान को पंजीकृत / सत्यापित / हटाने और उंगलियों के निशान को पहचानने की अनुमति देता है। सॉफ्टवेयर आपको सेंसर द्वारा कैप्चर की गई छवि को पढ़ने में भी मदद कर सकता है जो इसे आज़माने के लायक है। वैकल्पिक रूप से आप इस सॉफ्टवेयर का उपयोग भी कर सकते हैं, भले ही सेंसर Arduino के साथ जुड़ा हो, हम इस लेख में बाद में इस पर चर्चा करेंगे।
सेंसर के बारे में एक और दिलचस्प विशेषता संवेदन क्षेत्र के आसपास धातु आवरण है। जैसा कि मैंने पहले बताया कि सेंसर के काम करने के लिए नीली एलईडी को चालू करना होगा । लेकिन उन अनुप्रयोगों में जहां सेंसर को एक फिंगरप्रिंट के लिए सक्रिय रूप से इंतजार करना चाहिए, एलईडी को हमेशा चालू रखना संभव नहीं है क्योंकि यह सेंसर को गर्म करेगा और इस तरह इसे नुकसान पहुंचाएगा। इसलिए उन मामलों में धातु आवरण को एक एमसीयू के कैपेसिटिव टच इनपुट पिन से वायर्ड किया जा सकता है ताकि यह पता लगाया जा सके कि यह स्पर्श किया जा रहा है या नहीं । यदि हां एलईडी को चालू किया जा सकता है और संवेदन प्रक्रिया शुरू की जा सकती है। यह विधि यहाँ प्रदर्शित नहीं की गई है क्योंकि यह इस लेख के दायरे से बाहर है।
3.3V पर काम करते समय सेंसर लगभग 130mA का उपभोग करता है। इसे पहचानने के लिए लगभग 3 सेकंड के लिए एक उंगली और 1 सेकंड की आवश्यकता होती है। हालाँकि यदि नामांकित टेम्प्लेट की संख्या कम है तो मान्यता की गति अधिक होगी। सेंसर के बारे में अधिक जानकारी के लिए आप ADH-Tech से इस डेटशीट का उल्लेख कर सकते हैं जो मॉड्यूल का आधिकारिक निर्माता है।
Arduino के साथ GT511C3 फिंगर प्रिंट सेंसर कनेक्ट करना
GT511C3 FPS में दो पावर पिन होते हैं जिन्हें Arduino के + 5V पिन और दो कम्युनिकेशन पिन Rx और Tx द्वारा संचालित किया जा सकता है जो सीरियल कम्युनिकेशन के लिए Arduino के किसी भी डिजिटल पिन से जुड़ा हो सकता है। इसके अतिरिक्त हमने सेंसर की स्थिति प्रदर्शित करने के लिए एक पुश बटन और एक एलसीडी भी जोड़ा है। Arduino के साथ GT511C3 FPS के इंटरफेस के लिए पूरा सर्किट आरेख नीचे पाया जा सकता है।
चूंकि Rx और Tx पिन 3.3V सहिष्णु हैं इसलिए हमने RV की तरफ 5V को 3.3V में बदलने के लिए एक संभावित विभक्त का उपयोग किया है। 10k रोकनेवाला और 22k अवरोधक FPS के Rx पिन तक पहुंचने से पहले Arvino Tx पिन से 5V सिग्नल को 3.3V में बदल देता है। सेंसर 3.3V द्वारा भी संचालित किया जा सकता है, लेकिन सुनिश्चित करें कि आपका Arduino सेंसर के लिए पर्याप्त वर्तमान स्रोत बना सकता है। हमने 5V पिन के Arduino द्वारा संचालित 4-बिट मोड में LCD को कनेक्ट किया है। एक पुश बटन पिन डी 2 से जुड़ा हुआ है जिसे दबाए जाने पर प्रोग्राम को एनरोल मोड में डाल दिया जाएगा जहां उपयोगकर्ता नई उंगली को नामांकित कर सकता है। प्रोग्राम को नामांकित करने के बाद सेंसर को छूने वाली किसी भी उंगली को स्कैन करने के लिए स्कैनिंग मोड में रहेगा।
Arduino GT511C3 के साथ
जैसा कि पहले उल्लेख किया गया है कि GT511C3 FPS सीरियल संचार के माध्यम से संचार करता है, सेंसर हेक्स कोड को समझता है और प्रत्येक हेक्स कोड के लिए एक विशेष ऑपरेशन किया जाता है। यदि आप रुचि रखते हैं, तो आप सभी हेक्स मानों और इसके संबंधित फ़ंक्शन को जानने के लिए डेटाशीट की जांच कर सकते हैं। लेकिन, हमारे लिए भाग्यशाली है कि बोबहो ने पहले से ही एक पुस्तकालय बनाया है जिसका उपयोग सीधे Arduino के साथ Enroll करने और फिंगर प्रिंट का पता लगाने के लिए किया जा सकता है। GT511C3 FPS के लिए Github लाइब्रेरी को नीचे दिए गए लिंक से डाउनलोड किया जा सकता है
GT511C3 Arduino Library
लिंक एक जिप फाइल को डाउनलोड करेगा, फिर आपको कमांड स्केच -> शामिल लाइब्रेरी -> Add.ZIP लाइब्रेरी का पालन करके इसे अपने Arduino IDE में जोड़ना होगा । एक बार जब आपने लाइब्रेरी को अपनी IDE को पुनः आरंभ कर लिया है और आपको फ़ाइल के तहत GT511C3 FSP के लिए e xample प्रोग्राम खोजने में सक्षम होना चाहिए - उदाहरण -> फ़िंगरप्रिंट स्कैनर TTL जैसा कि नीचे दिखाया गया है
आपको चार उदाहरण कार्यक्रम देखने चाहिए, ब्लिंक प्रोग्राम एफपीएस के नेतृत्व में नीले रंग का पलक झपकाएगा, नामांकन और आईडी उंगली कार्यक्रम का उपयोग उंगलियों के नामांकन और उनके अनुसार पहचान करने के लिए किया जा सकता है। ध्यान दें कि एक बार नामांकित एक उंगली हमेशा मॉड्यूल द्वारा याद की जाएगी भले ही वह बंद हो।
सीरियल पास-थ्रू प्रोग्राम को Arduino में अपलोड किया जा सकता है जिसका उपयोग हमने इस लेख में पहले किए गए Demo_SDK.exe एप्लिकेशन का उपयोग करने के लिए किया है । किसी भी फिंगरप्रिंट टेम्पलेट को हटाने के लिए या अपने कंप्यूटर पर कॉपी को बचाने के लिए इस एसडीके एप्लिकेशन का उपयोग किया जा सकता है।
GT511C3 फिंगर प्रिंट सेंसर के लिए Arduino प्रोग्रामिंग
यहां हमारा उद्देश्य एक प्रोग्राम लिखना है जो एक बटन दबाए जाने पर उंगली को नामांकित करेगा और पहले से ही नामांकित उंगली की आईडी संख्या प्रदर्शित करेगा। हमें एलसीडी पर सभी सूचनाओं को प्रदर्शित करने में सक्षम होना चाहिए ताकि परियोजना एक स्टैंड-अलोन हो सके। ऐसा करने का पूरा कोड इस पृष्ठ के निचले भाग पर दिया गया है । यहां मैं आपको बेहतर समझने में मदद करने के लिए छोटे स्निपेट्स में समान तोड़ रहा हूं।
जैसा कि हम हमेशा आवश्यक पुस्तकालयों को शामिल करके कार्यक्रम शुरू करते हैं, यहां हमें अपने एफपीएस मॉड्यूल, सॉफ्टवेयर सीरियल के लिए F4_GT511C3 पुस्तकालय और एलसीडी इंटरफेसिंग के लिए धारावाहिक संचार पर D4 और D5 और लिक्विड क्रिस्टल का उपयोग करने की आवश्यकता होगी। फिर हमें यह उल्लेख करने की आवश्यकता है कि एफपीएस और एलसीडी किस पिन से जुड़े हैं। यदि आपने सर्किट डायग्राम का अनुसरण किया है तो यह 4 और 5 के लिए एफपीएस और डी 6 से डी 11 के लिए एलसीडी है। उसी के लिए कोड नीचे दिखाया गया है
#include "FPS_GT511C3.h" // लाइब्रेरी से प्राप्त करें https://github.com/sparkfun/Fingerprint_Scanner-TTL #include "SoftwareSerial.h" // सॉफ्टवेयर लाइब्रेरी #include
सेटअप फ़ंक्शन के अंदर, हम एलसीडी पर कुछ परिचयात्मक संदेश प्रदर्शित करते हैं और फिर एफपीएस मॉड्यूल को इनिशियलाइज़ करते हैं। कमांड fps.SetLED (सच) सेंसर पर नीले एलईडी को चालू करेगा, आप इसे एफपीएस से चालू कर सकते हैं। कभी भी आवश्यकता न होने पर इसे गलत तरीके से चालू करें। हमने पिन डी 2 को इनपुट पिन के रूप में भी बनाया है और इसे आंतरिक पुल-अप रोकनेवाला से जोड़ा है ताकि पिन को एक पुश बटन कनेक्ट किया जा सके।
शून्य सेटअप () { Serial.begin (9600); lcd.begin (16, 2); // प्रारंभिक 16 * 2 एलसीडी lcd.print ("GT511C3 FPS"); // इंट्रो मैसेज लाइन 1 lcd.setCursor (0, 1); lcd.print ("Arduino के साथ"); // इंट्रो मैसेज लाइन 2 देरी (2000); lcd.clear (); एफपीएस। ओपेन (); // fp एफपीएस को शुरू करने के लिए सीरियल कमांड भेजें। सेटल (सच); // एलईडी चालू करें ताकि एफपीएस फिंगरप्रिंट पिनकोड (2, INPUT_PULLUP) देख सकें; // इनपुट पिन के रूप में आंतरिक पुल अप रेज़र से कनेक्ट करें }
शून्य लूप फ़ंक्शन के अंदर हमें यह जांचना होगा कि क्या बटन दबाया गया है, अगर दबाया जाए तो हम एक नई उंगली को नामांकित करेंगे और नामांकन फ़ंक्शन का उपयोग करके आईडी नंबर के साथ इसके टेम्पलेट को बचाएंगे । यदि नहीं, तो हम सेंसर में उंगली दबाने का इंतजार करते रहेंगे। अगर दबाया जाए तो हम फिंगरप्रिंट को 1: N मेथड का उपयोग करते हुए सभी नामांकित फ़िंगरप्रिंट टेम्प्लेट से तुलना करके प्रेरित करेंगे। एक बार आईडी नंबर की खोज हो जाने के बाद हम आपका स्वागत आईडी नंबर के बाद करेंगे। यदि फिंगर प्रिंट किसी भी नामांकित उंगलियों के साथ मेल नहीं खाता है, तो आईडी संख्या 200 होगी, उस स्थिति में हम स्वागत योग्य अज्ञात प्रदर्शित करेंगे।
if (digitalRead (2)) // if बटन दबाया गया { Enroll (); // एक अंगुली की छाप } // फिंगरप्रिंट परीक्षण की पहचान करें अगर (एफपीएस.सैपफिंगर ()) { एफपीएस.कैपचरफिंगर (झूठा); int id = fps.Identify1_N (); lcd.clear (); lcd.print ("वेलकम:"); if (id == 200) lcd.print ("Unkown"); // यदि मान्यता प्राप्त नहीं है lcd.print (id); देरी (1000); }
नामांकन समारोह एक उंगली सफलतापूर्वक नामांकन के लिए तीन नमूना आदानों लेने के लिए होगा। एक बार नाम दर्ज करने के बाद उस विशेष उंगली के लिए एक टेम्प्लेट बनाया जाएगा जो तब तक हटाया नहीं जाएगा जब तक कि उपयोगकर्ता इसे HEX कमांड के लिए मजबूर न करे। एक उंगली को दर्ज करने का कोड नीचे दिखाया गया है । यदि उंगली का पता लगाया जाता है, तो यह जांचने के लिए कि विधि इस्सेफ़िंगर का उपयोग किया जाता है, यदि हाँ तो कैप्चरफ़िंगर का उपयोग करके छवि पर कब्जा कर लिया गया है और फिर अंत में एनरोल 1, एनरोल 2 और एनरोल 3 का उपयोग तीन अलग-अलग नमूनों में एक उंगली को सफलतापूर्वक दर्ज करने के लिए किया जाता है। एलसीडी उंगली के आईडी नंबर को प्रदर्शित करता है यदि सफलतापूर्वक दर्ज किया गया है तो यह कोड के साथ विफलता संदेश प्रदर्शित करेगा। कोड 1 का मतलब है कि फिंगर प्रिंट स्पष्ट रूप से कैप्चर नहीं किया गया था और इसलिए आपको फिर से प्रयास करना होगा। कोड 2 एक मेमोरी फेल इंडिकेशन है और कोड 3 यह इंगित करना है कि उंगली पहले ही नामांकित हो चुकी है।
शून्य एनरोल () // लाइब्रेरी एक्सैम्पल प्रोग्राम से एनरोल फंक्शन { इंट एनरॉइड = 0; bool usedid = true; जबकि (usedid == true) { usedid = fps.CheckEnrolled (नामांकन); if (usedid == true) नामांकन ++; } fps.EnrollStart (नामांकन); // दाखिला lcd.print ("एनरोल #"); lcd.print (नामांकन); जबकि (fps.IsPressFinger () == झूठी) देरी (100); bool bret = fps.CaptureFinger (सच); int iret = 0; if (bret! = false) { lcd.clear (); lcd.print ("उंगली हटाएं"); एफपीएस। Enroll1 (); जबकि (fps.IsPressFinger () == सच) देरी (100); lcd.clear (); lcd.print ("फिर से दबाएं"); जबकि (fps.IsPressFinger () == झूठी) देरी (100); bret = fps.CaptureFinger (सच); if (bret! = false) { lcd.clear (); lcd.print ("उंगली हटाएं"); एफपीएस.इरोल 2 (); जबकि (fps.IsPressFinger () == सच) देरी (100); lcd.clear (); lcd.print ("अभी तक फिर से दबाएं"); जबकि (fps.IsPressFinger () == झूठी) देरी (100); bret = fps.CaptureFinger (सच); if (bret! = false) { lcd.clear (); lcd.print ("उंगली हटाएं"); iret = fps.Enroll3 (); if (iret == 0) { lcd.clear (); lcd.print ("सफलता प्राप्त करना"); } और { lcd.clear (); lcd.print ("एनरोल फेल्ड:"); lcd.print (iret); } } और lcd.print ("विफल 1"); } और lcd.print ("विफल 2"); } और lcd.print ("विफल 3"); }
Arduino के साथ GT511C3 फिंगर प्रिंट सेंसर का कार्य
अब जब हमारा हार्डवेयर और कोड तैयार है तो यह हमारी परियोजना का परीक्षण करने का समय है। कोड को Arduino पर अपलोड करें और इसे पावर अप करें, मैं प्रोजेक्ट को पावर करने के लिए माइक्रो-यूएसबी पोर्ट का उपयोग कर रहा हूं। बूट करने पर हमें एलसीडी पर इंट्रो संदेश देखना चाहिए और फिर उसे "हाय!.." प्रदर्शित करना चाहिए। इसका मतलब यह है कि एफपीएस उंगली के लिए स्कैन करने के लिए तैयार है, अगर किसी भी नामांकित उंगली को दबाया जाता है, तो वह "वेलकम" कहेगा, जिसके बाद उस उंगली की आईडी नंबर नीचे दिखाया गया है।
यदि एक नई उंगली को नामांकित करना है तो हम नामांकन मोड में आने के लिए पुश बटन का उपयोग कर सकते हैं और एक उंगली को दर्ज करने के लिए एलसीडी निर्देश का पालन कर सकते हैं। नामांकन प्रक्रिया पूरी होने के बाद एलसीडी प्रदर्शित करेगा "हाय!.." फिर से इंगित करने के लिए कि यह उंगलियों को फिर से इंडेंट करने के लिए पढ़ा जाता है। पूरा काम कर रहे वीडियो नीचे लिंक पर पाया जा सकता ।
यहां से आप फिंगर प्रिंट सेंसर मॉड्यूल का उपयोग करके इस पर शीर्ष पर कई दिलचस्प सामान विकसित कर सकते हैं। आशा है कि आप ट्यूटोरियल को समझ गए हैं और कुछ उपयोगी बनाने का आनंद लिया है, यदि आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में छोड़ दें या अन्य तकनीकी प्रश्नों के लिए मंचों का उपयोग करें।