- उपयोग किया गया सामन
- EM18 RFID रीडर मॉड्यूल
- Arduino का उपयोग करके RFID टैग अद्वितीय 12 अंकों का कोड खोजें
- सर्किट आरेख
- फिंगर प्रिंट सेंसर मॉड्यूल
- RFID कीलेस इग्निशन के लिए प्रोग्रामिंग
आजकल ज्यादातर कार कीलेस एंट्री और पुश-बटन इग्निशन सिस्टम के साथ आती है, जिसमें आपको केवल अपनी जेब में चाबी ले जाने की जरूरत होती है और कार की डोर को खोलने के लिए आपको अपनी उंगली को कैपेसिटिव सेंसर पर रखना पड़ता है। इस परियोजना में, हम RFID और फ़िंगरप्रिंट सेंसर का उपयोग करके इस प्रणाली में कुछ और सुरक्षा सुविधाएँ जोड़ रहे हैं। आरएफआईडी सेंसर उपयोगकर्ता के लाइसेंस को मान्य करेगा और फिंगरप्रिंट सेंसर केवल वाहन में एक अधिकृत व्यक्ति को अनुमति देगा।
इस फिंगरप्रिंट आधारित कार इग्निशन सिस्टम के लिए, हम Ar305 का उपयोग R305 फ़िंगरप्रिंट सेंसर और एक EM18 RFID रीडर के साथ कर रहे हैं ।
उपयोग किया गया सामन
- अरुडिनो नैनो
- R305 फिंगरप्रिंट सेंसर
- EM18 RFID रीडर
- 16 * 2 अल्फ़ान्यूमेरिक एलसीडी
- डीसी मोटर्स
- L293D मोटर चालक IC
- वेरोबार्ड या ब्रेडबोर्ड (जो भी उपलब्ध हो)
- तारों को जोड़ना
- 12V डीसी बैटरी
EM18 RFID रीडर मॉड्यूल
RFID का मतलब रेडियो फ्रीक्वेंसी आइडेंटिफिकेशन है। यह एक प्रौद्योगिकी को संदर्भित करता है, जहां आरएफआईडी टैग में डिजिटल डेटा को एन्कोड किया जाता है और उन्हें रेडियो तरंगों का उपयोग करके आरएफआईडी रीडर द्वारा डिकोड किया जा सकता है। RFID बारकोडिंग के समान है जिसमें किसी उपकरण द्वारा टैग से डेटा डिकोड किया जाता है। आरएफआईडी प्रौद्योगिकी का उपयोग विभिन्न अनुप्रयोगों जैसे सुरक्षा प्रणाली, कर्मचारी उपस्थिति प्रणाली, आरएफआईडी डोर लॉक, आरएफआईडी आधारित मतदान मशीन, टोल संग्रह प्रणाली, आदि में किया जाता है।
EM18 रीडर एक मॉड्यूल है जो RFID टैग में संग्रहीत ID जानकारी को पढ़ सकता है। RFID टैग एक 12 अंकों की अद्वितीय संख्या को संग्रहीत करता है जिसे EM18 रीडर मॉड्यूल द्वारा डीकोड किया जा सकता है, जब टैग रीडर के साथ सीमा में आता है। यह मॉड्यूल 125 kHz की आवृत्ति पर संचालित होता है, जिसमें एक इनबिल्ट एंटीना होता है, और यह 5 वोल्ट डीसी बिजली की आपूर्ति का उपयोग करके संचालित होता है।
यह एक सीरियल डेटा आउटपुट देता है, और इसमें 8-12 सेमी की सीमा होती है। धारावाहिक संचार पैरामीटर 8 डेटा बिट्स, 1 स्टॉप बिट और 9600 बॉड रेट हैं।
EM18 विशेषताएं:
- ऑपरेटिंग वोल्टेज: + 4.5 वी से + 5.5 वी डीसी
- वर्तमान खपत: 50mA
- ऑपरेटिंग आवृत्ति: 125KHZ
- ऑपरेटिंग तापमान: 0-80 डिग्री सेल्सियस
- संचार बॉड दर: 9600
- पढ़ने की दूरी: 8-12 सेमी
- एंटीना: इनबिल्ट
EM18 पिनआउट:
पिन विवरण:
वीसीसी: 4.5- 5 वी डीसी वोल्टेज इनपुट
GND: ग्राउंड पिन
बजर: बजर या एलईडी पिन
TX: RS232 (आउटपुट) के लिए EM18 का सीरियल डेटा ट्रांसमीटर पिन
SEL: यह RS232 का उपयोग करने के लिए उच्च होना चाहिए (कम अगर WEIGAND का उपयोग करके)
डेटा 0: WEIGAND डेटा 0
डेटा 1: WEIGAND डेटा 1
आरएफआईडी और टैग के बारे में अधिक जानने के लिए, हमारे पिछले आरएफआईडी आधारित परियोजनाओं की जांच करें।
Arduino का उपयोग करके RFID टैग अद्वितीय 12 अंकों का कोड खोजें
Arduino कार इग्निशन सिस्टम के लिए Arduino की प्रोग्रामिंग करने से पहले, पहले, हमें 12 अंकों के RFID टैग यूनिक कोड का पता लगाना होगा। जैसा कि हमने पहले चर्चा की, RFID टैग में 12 अंकों का एक अद्वितीय कोड होता है और इसे RFID रीडर का उपयोग करके डीकोड किया जा सकता है। जब हम रीडर के पास आरएफआईडी टैग को स्वाइप करते हैं, तो रीडर आउटपुट सीरियल पोर्ट के जरिए यूनिक कोड देगा। सबसे पहले, सर्किट डायग्राम के अनुसार Arduino को RFID रीडर से कनेक्ट करें और फिर नीचे दिए गए कोड को Arduino पर अपलोड करें।
int count = 0; char card_no; शून्य सेटअप () {Serial.begin (9600); } शून्य लूप () {अगर (सीरियल.विद्यमान ()) {गिनती = ०; जबकि (Serial.available () && गिनती <12) {card_no = Serial.read (); गिनती ++; देरी (5); } Serial.print (card_no); }}
कोड को सफलतापूर्वक अपलोड करने के बाद, सीरियल मॉनिटर खोलें, और बॉड दर को 9600 पर सेट करें। फिर रीडर के पास कार्ड स्वाइप करें। फिर 12 अंकों का कोड सीरियल मॉनिटर पर प्रदर्शित होना शुरू हो जाएगा। सभी प्रयुक्त RFID टैग के लिए इस प्रक्रिया को करें और इसे भविष्य के संदर्भों के लिए नोट करें।
सर्किट आरेख
इस फिंगरप्रिंट आधारित इग्निशन सिस्टम के लिए सर्किट आरेख नीचे दिया गया है:
मेरे मामले में, मैंने पूर्ण बोर्ड पर पूर्ण सर्किट को सोल्डर किया है जैसे नीचे दिखाया गया है:
फिंगर प्रिंट सेंसर मॉड्यूल
फिंगर प्रिंट सेंसर मॉड्यूल या फिंगर प्रिंट स्कैनर एक ऐसा मॉड्यूल है जो उंगली की प्रिंट छवि को कैप्चर करता है और फिर इसे समतुल्य टेम्पलेट में परिवर्तित करता है और उन्हें Arduino द्वारा चयनित आईडी (स्थान) पर अपनी मेमोरी में सहेजता है। यहां सभी प्रक्रिया को Arduino द्वारा कमांड किया गया है जैसे कि एक फिंगरप्रिंट की छवि लेना, इसे टेम्प्लेट में बदलना, और भंडारण स्थान, आदि।
हमने पहले वोटिंग मशीन, अटेंडेंस सिस्टम, सिक्योरिटी सिस्टम, आदि बनाने के लिए एक ही R305 सेंसर का उपयोग किया था। आप यहाँ सभी फिंगर प्रिंट प्रोजेक्ट की जाँच कर सकते हैं।
उंगलियों के निशान को सेंसर तक ले जाना:
कार्यक्रम के साथ आगे बढ़ने से पहले, हमें फिंगरप्रिंट सेंसर के लिए आवश्यक लाइब्रेरी स्थापित करना होगा। यहां हमने R305 फिंगरप्रिंट सेंसर का उपयोग करने के लिए " Adafruit_Fingerprint.h " का उपयोग किया है। तो सबसे पहले नीचे दिए गए लिंक का उपयोग करके पुस्तकालय डाउनलोड करें:
- Adafruit फिंगरप्रिंट सेंसर लाइब्रेरी
सफल डाउनलोड के बाद, Arduino IDE में, फ़ाइल > टूल> लाइब्रेरी शामिल करें। ज़िप लाइब्रेरी जोड़ें और फिर लाइब्रेरी स्थापित करने के लिए ज़िप फ़ाइल स्थान का चयन करें।
सफल लाइब्रेरी इंस्टॉलेशन के बाद, सेंसर मेमोरी में एक नए फ़िंगरप्रिंट को दर्ज करने के लिए नीचे दिए गए चरणों का पालन करें।
1. Arduino IDE में, File > Examples > Adafruit Fingerprint Sensor Library > Enroll पर जाएं।
2. Arduino के लिए कोड अपलोड करें, और 9600 की बॉड दर पर सीरियल मॉनिटर खोलें।
महत्वपूर्ण: प्रोग्राम में सॉफ्टवेयर सीरियल पिन को सॉफ्टवेयरस् मायियल मायेरियल (12, 11) में बदलें।
3. आपको उस फिंगरप्रिंट के लिए एक आईडी दर्ज करनी चाहिए जिसमें आप अपना फिंगरप्रिंट स्टोर करना चाहते हैं। जैसा कि यह मेरा पहला फिंगरप्रिंट है, मैंने शीर्ष बाएं कोने में 1 टाइप किया, और फिर, भेजें बटन पर क्लिक करें।
4. फिर फिंगरप्रिंट सेंसर पर प्रकाश झपकाएगा जो इंगित करता है कि आपको अपनी उंगली सेंसर पर रखनी चाहिए और उसके बाद सीरियल मॉनिटर पर दिखाए गए चरणों का पालन करें जब तक कि यह आपको सफल नामांकन के लिए स्वीकार नहीं करता है।
RFID कीलेस इग्निशन के लिए प्रोग्रामिंग
इस बायोमेट्रिक इग्निशन सिस्टम का पूरा कोड ट्यूटोरियल के अंत में दिया गया है। यहां हम कोड के कुछ महत्वपूर्ण भागों के बारे में बता रहे हैं।
पहली चीज सभी आवश्यक पुस्तकालयों को शामिल करना है। यहाँ मेरे मामले में, मैंने R305 फिंगरप्रिंट सेंसर का उपयोग करने के लिए " Adafruit_Fingerprint.h " को शामिल किया है । फिर सीरियल पोर्ट को कॉन्फ़िगर करें जिसमें फिंगरप्रिंट सेंसर जुड़ा होगा। मेरे मामले में, मैंने 12 को RX पिन और 11 को TX पिन घोषित किया है।
# अकेला छोड़ दो
अगले चरण में, सभी चर घोषित करें, जिसका उपयोग पूरे कोड में किया जाएगा। फिर Arduino के साथ LCD कनेक्शन पिंस को परिभाषित करें जिसके बाद लिक्विड क्रिस्टल क्लास की एक वस्तु की घोषणा की जाती है ।
चार इनपुट; int count = 0; int a = 0; const int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5; लिक्विड क्रिस्टल एलसीडी (आरएस, एन, डी 4, डी 5, डी 6, डी 7);
अगला, लूप के अंदर (), कोड आरएफआईडी टैग के अद्वितीय 12 अंकों के कोड प्राप्त करने के लिए लिखा जाता है और वे एक सरणी में संग्रहीत होते हैं। यहां सरणी के तत्वों को प्रमाणित व्यक्ति विवरण प्राप्त करने के लिए, मेमोरी में संग्रहीत अद्वितीय कोड के साथ मिलान किया जाएगा।
गिनती = 0; जबकि (Serial.available () && गिनती <12) { input = Serial.read (); गिनती ++; देरी (5); }
फिर, संग्रहीत सरणी कोड के साथ प्राप्त सरणी की तुलना की जाती है। यदि कोड का मिलान किया जाता है, तो लाइसेंस को वैध माना जाता है, जो उपयोगकर्ता को वैध फिंगरप्रिंट डालने की अनुमति देता है। अन्यथा, यह एक अमान्य लाइसेंस दिखाएगा।
if ((strncmp (इनपुट, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("लाइसेंस वैलिड"); lcd.setCursor (0, 1); lcd.print ("वेलकम"); देरी (1000); a = 1; फिंगरप्रिंट (); }
अगले चरण में, एक फ़ंक्शन getFingerprintID लिखा गया है जो पहले से ही नामांकित फिंगरप्रिंट के लिए एक वैध फिंगरप्रिंट आईडी लौटाएगा।
int getFingerprintID () { uint8_t p = finger.getImage (); if (p! = FINGERPRINT_OK) रिटर्न -1; p = finger.image2Tz (); if (p! = FINGERPRINT_OK) रिटर्न -1; p = finger.fingerFastSearch (); if (p! = FINGERPRINT_OK) रिटर्न -1; वापसी उंगली। }
फंक्शन फ़िंगरप्रिंट () , जिसे सफल RFID मैच के बाद कहा जाता है, getFingerprintID फ़ंक्शन को एक वैध फ़िंगरप्रिंट आईडी प्राप्त करने के लिए कहा जाता है। फिर यह प्रमाणित व्यक्ति डेटा के बारे में जानकारी प्राप्त करने के लिए अगर-और लूप का उपयोग किया जाता है और यदि डेटा का मिलान किया जाता है, तो वाहन को प्रज्वलित किया जाता है, अन्यथा, यह गलत फिंगरप्रिंट के लिए संकेत देगा।
int फिंगरप्रिंटआईडी = getFingerprintID (); देरी (50); if (फिंगरप्रिंटआईडी == 1) { lcd.setCursor (0, 0); lcd.print ("एक्सेस ग्रांटेड"); lcd.setCursor (0, 1); lcd.print ("वाहन प्रारंभ"); digitalWrite (9, उच्च); digitalWrite (10, LOW); जबकि (1); }
तो यह है कि यह RFID कार इग्निशन सिस्टम कैसे काम करता है जो आपकी कार में सुरक्षा की दो परतें जोड़ता है।
पूरा कोड और प्रदर्शन वीडियो नीचे दिया गया है।