विषयसूची:

Arduino का उपयोग कर फिंगरप्रिंट आधारित बायोमेट्रिक वोटिंग मशीन: 4 चरण (चित्रों के साथ)
Arduino का उपयोग कर फिंगरप्रिंट आधारित बायोमेट्रिक वोटिंग मशीन: 4 चरण (चित्रों के साथ)

वीडियो: Arduino का उपयोग कर फिंगरप्रिंट आधारित बायोमेट्रिक वोटिंग मशीन: 4 चरण (चित्रों के साथ)

वीडियो: Arduino का उपयोग कर फिंगरप्रिंट आधारित बायोमेट्रिक वोटिंग मशीन: 4 चरण (चित्रों के साथ)
वीडियो: Electronic Voting Machines in India - An IITACB Webinar 2024, नवंबर
Anonim
Arduino का उपयोग कर फिंगरप्रिंट आधारित बायोमेट्रिक वोटिंग मशीन
Arduino का उपयोग कर फिंगरप्रिंट आधारित बायोमेट्रिक वोटिंग मशीन

हम सभी मौजूदा इलेक्ट्रॉनिक वोटिंग मशीन से अवगत हैं जहां उपयोगकर्ता को वोट डालने के लिए एक बटन दबाना होता है। लेकिन इन मशीनों की शुरुआत से ही तड़के के लिए आलोचना की जाती रही है। इसलिए सरकार एक फिंगरप्रिंट-आधारित वोटिंग मशीन शुरू करने की योजना बना रही है, जहां उपयोगकर्ता अपने फिंगरप्रिंट के आधार पर वोट डाल सकते हैं। इस व्यवस्था से न सिर्फ डुप्लीकेट वोट की संभावना खत्म होगी बल्कि किसी भी तरह की हेराफेरी को भी रोका जा सकेगा।

इसलिए इस परियोजना में, हम Arduino Uno, TFT डिस्प्ले और फ़िंगरप्रिंट सेंसर का उपयोग करके बायोमेट्रिक वोटिंग मशीन का एक प्रोटोटाइप बनाने जा रहे हैं। हमने पहले बायोमेट्रिक आधारित उपस्थिति प्रणाली बनाने के लिए NodeMCU के साथ R305 फ़िंगरप्रिंट सेंसर का उपयोग किया था, लेकिन यहाँ हम Arduino के साथ उन्नत GT-511C3 फ़िंगरप्रिंट सेंसर का उपयोग करेंगे।

चरण 1: बायोमेट्रिक वोटिंग मशीन बनाने के लिए आवश्यक घटक

  • Arduino Uno
  • २.४”टीएफटी एलसीडी डिस्प्ले शील्ड
  • GT-511C3 फिंगरप्रिंट सेंसर

यह 2.4 इंच TFT डिस्प्ले पहले Arduino के साथ IoT आधारित रेस्तरां मेनू ऑर्डरिंग सिस्टम बनाने के लिए उपयोग किया जाता है।

चरण 2: Arduino का उपयोग करके बायोमेट्रिक वोटिंग मशीन के लिए सर्किट आरेख

Arduino का उपयोग कर बॉयोमीट्रिक वोटिंग मशीन के लिए सर्किट आरेख
Arduino का उपयोग कर बॉयोमीट्रिक वोटिंग मशीन के लिए सर्किट आरेख

इस परियोजना के लिए सर्किट आरेख बहुत सरल है क्योंकि हम केवल TFT डिस्प्ले और फिंगरप्रिंट सेंसर मॉड्यूल को Arduino Uno से जोड़ रहे हैं। फिंगरप्रिंट सेंसर के VCC और GND पिन Arduino के 5V और GND पिन से जुड़े होते हैं जबकि TX और RX पिन Arduino Uno के डिजिटल पिन 11 और 12 से जुड़े होते हैं।

2.4”टीएफटी एलसीडी स्क्रीन एक Arduino शील्ड है और इसे सीधे Arduino Uno पर लगाया जा सकता है, जैसा कि नीचे की छवि में दिखाया गया है। TFT डिस्प्ले में 28 पिन हैं जो पूरी तरह से Arduino Uno में फिट होते हैं, इसलिए मुझे Arduino के पीछे फिंगरप्रिंट सेंसर को मिलाप करना पड़ा।

चरण 3: स्रोत कोड और चरण-दर-चरण कोड स्पष्टीकरण

Arduino का उपयोग करके इस फिंगरप्रिंट वोटिंग सिस्टम प्रोजेक्ट का पूरा कोड लेख के अंत में दिया गया है; यहां हम कोड के कुछ महत्वपूर्ण कार्यों के बारे में बता रहे हैं।

कोड SPFD5408, सॉफ़्टवेयर सीरियल और FPS_GT511C3 पुस्तकालयों का उपयोग करता है। SPFD5408 पुस्तकालय मूल एडफ्रूट पुस्तकालय का संशोधित संस्करण है। इन लाइब्रेरी फाइलों को नीचे दिए गए लिंक से डाउनलोड किया जा सकता है:

  • SPFD5408 पुस्तकालय
  • सॉफ्टवेयर सीरियल
  • FPS_GT511C3

पुस्तकालयों को शामिल करने और कुछ महत्वपूर्ण मापदंडों को परिभाषित करने के बाद, हम प्रोग्रामिंग भाग में आ सकते हैं। इस कार्यक्रम में तीन खंड शामिल हैं। एक वोटिंग मशीन का UI बना रहा है, दूसरा बटन के लिए टच-पॉइंट प्राप्त कर रहा है और स्पर्श के आधार पर बटन का पता लगा रहा है और अंत में परिणामों की गणना कर रहा है और उन्हें Arduino की मेमोरी में सहेज रहा है।

1. यूआई बनाना:

मैं तीन बटन और परियोजना के नाम के साथ एक साधारण यूआई बनाया है। TFT डिस्प्ले लाइब्रेरी आपको लाइन्स, रेक्टेंगल, सर्कल्स, चार्स, स्ट्रिंग्स और किसी भी पसंदीदा रंग और आकार को आकर्षित करने की अनुमति देती है। यहाँ दो आयताकार बटन fillRoundRect और drawRoundRect फ़ंक्शंस का उपयोग करके बनाए गए हैं। Tft.drawRoundRect फ़ंक्शन के लिए सिंटैक्स नीचे दिया गया है:

tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t त्रिज्या, uint16_t रंग)

कहा पे:

x0= X आयताकार के शुरुआती बिंदु का निर्देशांक

y0= Y आयताकार के शुरुआती बिंदु का निर्देशांक

w = आयताकार की चौड़ाई

h = आयताकार की ऊँचाई

त्रिज्या = गोल कोने की त्रिज्या

रंग = आयत का रंग।

शून्य ड्राहोम ()

{

tft.fillScreen (सफेद);

tft.drawRoundRect(0, 0, 319, 240, 8, सफेद); //पेज बोर्डर

tft.fillRoundRect(10, 70, 220, 50, 8, गोल्ड);

tft.drawRoundRect(10, 70, 220, 50, 8, सफेद); // वोट

tft.fillRoundRect(१०, १६०, २२०, ५०, ८, गोल्ड);

tft.drawRoundRect(10, 160, 220, 50, 8, सफेद); // नामांकन करें

tft.fillRoundRect(१०, २५०, २२०, ५०, ८, गोल्ड); //नतीजा

tft.drawRoundRect(10, 250, 220, 50, 8, सफेद);

tft.setCursor (६५, ५);

tft.setTextSize(3);

tft.setTextColor (सियान);

tft.print ("वोटिंग");

tft.setCursor (57, 29);

tft.print ("मशीन");

tft.setTextSize(3);

tft.setTextColor (सफेद);

tft.setCursor(25, 82);

tft.print ("उम्मीदवार 1");

tft.setCursor(25, 172);

tft.print ("उम्मीदवार 2");

tft.setCursor(25, 262);

tft.print ("उम्मीदवार 3");

}

2. टच-पॉइंट्स और डिटेक्टिंग बटन प्राप्त करना:

अब कोड के दूसरे खंड में, हम बटन टचपॉइंट्स का पता लगाएंगे और फिर इन पॉइंट्स का उपयोग बटन की भविष्यवाणी करने के लिए करेंगे। ts.getPoint() फ़ंक्शन का उपयोग TFT डिस्प्ले पर उपयोगकर्ता स्पर्श का पता लगाने के लिए किया जाता है। ts.getPoint स्पर्श किए गए क्षेत्र के लिए रॉ ADC मान देता है। इन रॉ एडीसी मानों को मैप फ़ंक्शन का उपयोग करके पिक्सेल निर्देशांक में परिवर्तित किया जाता है।

TSPoint p = ts.getPoint ();

अगर (p.z> ts.दबाव थ्रेशहोल्ड)

{

p.x = नक्शा (p.x, TS_MAXX, TS_MINX, 0, 320);

p.y = नक्शा (p.y, TS_MAXY, TS_MINY, 0, 240);

// सीरियल.प्रिंट ("एक्स:");

// सीरियल.प्रिंट (पी.एक्स);

// सीरियल.प्रिंट ("वाई:");

// सीरियल.प्रिंट (p.y);

अब, चूंकि हम जानते हैं कि प्रत्येक बटन के लिए X और Y निर्देशांक हैं, इसलिए हम यह अनुमान लगा सकते हैं कि उपयोगकर्ता ने 'if' कथन का उपयोग करके कहां स्पर्श किया है।

अगर (p.x> 70 && p.x 10 && p.y मिनप्रेशर && p.z <मैक्सप्रेशर)

{

Serial.println ("उम्मीदवार 1");

जब कोई मतदाता उम्मीदवार का बटन दबाता है, तो उसे फिंगरप्रिंट सेंसर पर उंगली स्कैन करने के लिए कहा जाएगा। अगर फिंगर आईडी अधिकृत है तो मतदाता को वोट देने की अनुमति है। यदि कोई गैर-पंजीकृत उपयोगकर्ता वोट देना चाहता है तो फिंगरप्रिंट मॉड्यूल सिस्टम में अपनी आईडी का पता नहीं लगाएगा और डिस्प्ले 'सॉरी यू कैन नॉट वोट' दिखाएगा।

अगर (एफपीएस. IsPressFinger ())

{

एफपीएस। कैप्चरफिंगर (झूठा);

इंट आईडी = एफपीएस। Identify1_N ();

अगर (आईडी <200)

{

संदेश = "उम्मीदवार 1";

वोट1++;

EEPROM.लिखें(0, वोट1);

tft.setCursor(42, 170);

tft.print ("धन्यवाद");

देरी (3000);

ड्राहोम ();

3. परिणाम:

अंतिम चरण EEPROM मेमोरी से वोटों की गिनती प्राप्त करना और तीनों उम्मीदवारों के वोटों की तुलना करना है। सबसे अधिक मतों वाला उम्मीदवार जीतता है। परिणाम को केवल सीरियल मॉनिटर से ही एक्सेस किया जा सकता है और टीएफटी स्क्रीन पर प्रदर्शित नहीं किया जाएगा।

वोट 1 = ईईपीरोम। पढ़ें (0);

वोट2=ईईपीरोम.पढ़ें(1);

वोट3=ईईपीरोम.रीड(2);

अगर (वोट)

{

अगर ((वोट1>वोट2 और&वोट1>वोट3))

{

Serial.print ("Can1 जीतता है");

देरी (2000);

}

चरण 4: Arduino का उपयोग करके फ़िंगरप्रिंट वोटिंग सिस्टम का परीक्षण करना

प्रोजेक्ट का परीक्षण करने के लिए, Arduino Uno को लैपटॉप से कनेक्ट करें और दिए गए कोड को अपलोड करें। एक बार कोड अपलोड हो जाने के बाद, टीएफटी डिस्प्ले पर उम्मीदवार का नाम प्रदर्शित होना चाहिए। जब कोई उम्मीदवार के नाम पर टैप करेगा, तो मशीन फिंगरप्रिंट स्कैनर को स्कैन करने के लिए कहेगी। यदि फिंगरप्रिंट मान्य है, तो उपयोगकर्ता के वोट की गणना की जाएगी, लेकिन यदि पैटर्न डेटाबेस के रिकॉर्ड से मेल नहीं खाता है, तो वोट डालने की पहुंच से इनकार कर दिया जाएगा। प्रत्येक उम्मीदवार के लिए वोटों की कुल संख्या EEPROM में संग्रहीत की जाएगी और सबसे अधिक वोट प्राप्त करने वाला उम्मीदवार जीत जाएगा।

मुझे आशा है कि आपने ट्यूटोरियल का आनंद लिया और कुछ उपयोगी सीखा। यदि आपके कोई प्रश्न हैं, तो कृपया हमें नीचे टिप्पणी अनुभाग में बताएं, और इस तरह की और दिलचस्प परियोजनाओं के लिए हमें इंस्ट्रक्शनल पर भी फॉलो करें।

सिफारिश की: