- Потребне компоненте:
- Модул сензора за отисак прста у гласачкој машини:
- Објашњење:
- Објашњење кола:
- Објашњење програма:
Сви смо добро упознати са електронским бирачким аутоматима, где се ваш глас региструје електронским путем и не требате користити гласачки листић за гласање на изборима. Данас је сигурност главна брига и такође треба осигурати да неко не може гласати два пута, тако да се овај проблем може решити увођењем гласања заснованог на отисцима прстију, где се особа може овластити на основу отиска прста. Ово ће такође зауставити лажно гласање. Тако данас градимо биометријску машину за гласање засновану на ФингерПринт-у користећи Ардуино.
Такође проверите наше претходне пројекте електронских машина за гласање користећи различите микроконтролере:
- Електронска машина за гласање која користи Распберри Пи
- РФИД машина за гласање
- Пројекат електронских гласачких машина заснован на АВР микроконтролеру
- Електронска машина за гласање која користи Ардуино
Потребне компоненте:
- Ардуино Уно
- Модул сензора за отисак прста
- Тастери
- ЛЕД диоде -2
- 1К отпорник -3
- Отпорник 2.2К
- Снага
- Повезивање жица
- Зујалица
- ЛЦД 16к2
- Даска за хлеб
Модул сензора за отисак прста у гласачкој машини:
Модул сензора за отисак прста или скенер за отисак прста је модул који снима слику отиска прста, а затим је претвара у еквивалентни образац и чува у својој меморији на одабраном ИД-у (локацији) од стране Ардуино-а. Овде читавим процесом заповеда Ардуино попут снимања отиска прста, претварања у предлошке и чувања локације итд.
У овом кругу ФингерПринт гласачке машине користили смо сензорски модул за отисак прста да бисмо потврдили идентитет истинског бирача узимајући њихов прст у систему. Овде користимо 5 тастера за подударање, упис / повратак, брисање / у реду, горе и доле. Тастер за регистрацију и Дел овде имају двоструке функције. Тастер за регистрацију се користи за упис новог отиска прста у систем и функцију враћања. Значи када корисник жели да упише нови прст, тада треба да притисне тастер за регистрацију, а затим ЛЦД тражи ИД или локацију на којој корисник жели да ускладишти излаз за отисак прста. Сада, ако у овом тренутку корисник не жели да настави даље, онда може поново да притисне тастер за регистрацију да би се вратио (овај пут се тастер за регистрацију понаша као тастер Назад). Значи да тастер за регистрацију има функцију за регистрацију и повратак. Тастер ДЕЛ / ОК такође има исту двоструку функцију као када корисник упише нови прст, тада треба да одабере ИД прста или локацију помоћу друга два тастера, наиме ГОРЕ И ДОЉЕ, сада корисник треба да притисне тастер ДЕЛ / ОК (овај пут се овај тастер понаша као ОК) да наставите са изабраним ИД-ом или локацијом. Кључ подударања користи се кад год бирач жели да гласа, а затим мора прво да се потврди за истинског бирача држећи прст на сензору за отисак прста, ако је он / она прошао ову потврду идентитета, тада он / она може гласати.
Да бисте сазнали више о упису отисака прстију и другим стварима, погледајте наш претходни водич о повезивању сензора отиска прста са Ардуином, а такође и наш демо видео на крају овог водича.
Објашњење:
Рад овог биометријског система гласања за изборе је мало сложен за почетнике. Пре свега, корисник треба да упише прст или гласаче (у овом коду је максимално ограничење гласача 25) помоћу тастера / тастера. Да би то урадио, корисник треба да притисне тастер ЕНРОЛЛ и тада ЛЦД тражи унос локације / ИД где ће прст бити продавница. Дакле, сада корисник треба да унесе ИД (локацију) помоћу тастера ГОРЕ / ДОЉЕ. Након одабира локације / ИД корисник треба да притисне тастер ОК (тастер ДЕЛ). Сада ће ЛЦД тражити да ставите прст преко модула за отисак прста. Сада корисник треба да стави прст преко модула за отисак прста. Тада ће ЛЦД затражити да уклони прст са модула за испис прста и поново затражити стављање прста. Сада корисник мора поново да стави прст преко модула за отисак прста. Сада модул за отисак прста снима слику и претвара је у предлошке и чува је по одабраном ИД-у у меморији модула за отисак прста.Сада ће бирач бити регистрован и он / она може гласати. На исти начин сви бирачи могу бити регистровани у систем.
Ако корисник жели да уклони или избрише било који сачувани ИД, тада треба да притисне тастер ДЕЛ, након притиска тастера ДЕЛ, ЛЦД ће тражити одабрану локацију, значи изабрати ИД који треба избрисати. Сада корисник треба да изабере ИД и притисне тастер ОК (исти тастер ДЕЛ). Сада ће вас ЛЦД обавестити да је прст успешно избрисан.
Процес гласања:
Сада када корисник жели да гласа, он / она треба да притисне тастер за подударање и тада ће се огласити звучни сигнал, а ЛЕД ће такође засветлети и ЛЦД ће тражити место прста преко модула за отисак прста. Сада ће вам Ардуино дати три покушаја да ставите прст. Након постављања прста преко модула отиска прста, модул отиска прста снима слику прста и проналази његове ИД-ове у систему. Ако је откривен ИД прста, ЛЦД ће приказати овлашћеног бирача. То значи да је корисник овлашћен да гласа. А онда систем прелази у следећу фазу за гласање. Сада ће зелена ЛЕД лампица свијетлити, што значи да бирачи сада могу гласати за своје кандидате притиском на отпуштени тастер (са ЦРВЕНЕ табле за хлеб у овој демонстрацији). Ако исти гласач жели поново да гласа, систем ће га приказати „Већ гласао“ . Значи да исти гласач не може поново да гласа и зујалица ће оглашавати 5 секунди. Ако било који не-регистровани корисник жели да гласа онда отисака прстију модул неће открити свој ИД у систем и ЛЦД ће приказати " Нема отисака прстију Фоунд" .
ЦАН1, ЦАН2, ЦАН3 овде представљају кандидата 1, кандидата 2 и кандидата 3, који су се кандидовали за изборе.
Објашњење кола:
Круг овог пројекта за гласање заснованог на ФингерПринт-у је врло једноставан који садржи Ардуино за контролу целокупног процеса пројекта, дугме за упис, брисање, одабир личних карата и сврху гласања, зујалицу за упозорење, ЛЕД диоде за индикацију и 16к2 ЛЦД за инструкције Бирач и такође показује резултат. Жута ЛЕД означава да је модул за отисак прста спреман за снимање прста, а зелена ЛЕД да је систем спреман за гласање или за приказ резултата.
Тастер је директно повезан на пин А0 (УПИСИ), А1 (ДЕЛ), А2 (ГОРЕ), А3 (ДОЉЕ) и А4 (Поклапање), Д5 (Може1), Д4 (Може2), Д3 (Може3), Д2 (Резултат) Ардуина у односу на тло. Жута ЛЕД диода је повезана на дигитални пин Д7 Ардуино-а с обзиром на масу преко 1к отпорника, а зелена ЛЕД-а истом је методом повезана на Д6 Ардуино-а. Рк и Тк модула отиска прста су директно повезани на серијски пин Тк и Рк Ардуина. Напајање од 5в користи се за напајање модула за отисак прста преузетог са плоче Ардуино. Зујалица је такође повезана на А5. ЛЦД од 16к2 је конфигурисан у 4-битном режиму и његови РС, ЕН, Д4, Д5, Д6 и Д7 су директно повезани на дигитални пин Д13, Д12, Д11, Д10, Д9 и Д8 Ардуина.
Објашњење програма:
У програму смо користили библиотеку сензора отиска прста Адафруит за повезивање модула отиска прста са Ардуино плочом. Комплетни код можете погледати у наставку. Овде објашњавамо главне функције програма Ардуино.
У функцији подешавања дали смо упутства за дефинисане пинове и покренули ЛЦД и отисак прста.
После ње, у функцији воид лооп () , сачекали смо тастер за проверу и притисните тастер Матцх да започнемо отисак прста да бисмо узели унос и упоредили ИД снимљене слике са сачуваним ИД-овима. Ако се подударање догоди, пређите на следећи корак.
воид лооп () {лцд.сетЦурсор (0,0); лцд.принт ("Притисните тастер за подударање"); лцд.сетЦурсор (0,1); лцд.принт ("за покретање система"); дигиталВрите (индВоте, ЛОВ); дигиталВрите (индФингер, ЛОВ); иф (дигиталРеад (матцх) == 0) {дигиталВрите (зујалица, ВИСОКО); кашњење (200); дигиталВрите (зујалица, ЛОВ); дигиталВрите (индФингер, ХИГХ); за (инт и = 0; и <3; и ++)…………………
Дата воид цхецкКеис () функција се користи за проверу да ли је тастер Енролл или ДЕЛ притиснут или не и шта треба учинити ако се притисне. Ако је тастер ЕНРОЛЛ притиснут, позива се функција Енролл () и притисне се тастер ДЕЛ, а затим се позива функција делете () .
воид цхецкКеис () {иф (дигиталРеад (енролл) == 0) {лцд.цлеар (); лцд.принт ("Молимо сачекајте"); кашњење (1000); вхиле (дигиталРеад (енролл) == 0); Упис (); } елсе иф (дигиталРеад (дел) == 0) {лцд.цлеар (); лцд.принт ("Молимо сачекајте"); кашњење (1000); делет (); }}
Дата функција се користи за унос ИД-а који се брише и позивање функције уинт8_т делетеФингерпринт (уинт8_т ид) која ће избрисати прст из записа.
воид делет () {инт цоунт = 0; лцд.цлеар (); лцд.принт ("Делете Фингер"); лцд.сетЦурсор (0,1); лцд.принт ("Локација:"); вхиле (1) {лцд.сетЦурсор (9,1); лцд.принт (цоунт); иф (дигиталРеад (уп) == 0) {цоунт ++; иф (цоунт> 25) цоунт = 0; кашњење (500); }……………….
Дата функција се користи за брисање отиска прста из записа изабраног ИД-а.
уинт8_т делетеФингерпринт (уинт8_т ид) {уинт8_т п = -1; лцд.цлеар (); лцд.принт ("Молимо сачекајте"); п = фингер.делетеМодел (ид); иф (п == ФИНГЕРПРИНТ_ОК) {Сериал.принтлн ("Избрисано!"); лцд.цлеар (); лцд.принт ("Слика избрисана"); лцд.сетЦурсор (0,1); лцд.принт („Успешно“); кашњење (1000); } елсе {Сериал.принт ("Нешто није у реду"); лцд.цлеар (); лцд.принт („Нешто није у реду“); лцд.сетЦурсор (0,1); лцд.принт („Покушај поново касније“); кашњење (2000); ретурн п; }}
Дата функција се користи за снимање слика са отиском прста и њихово претварање у образац и чување по одабраном ИД-у у меморију модула за отисак прста.
уинт8_т гетФингерпринтЕнролл () {инт п = -1; лцд.цлеар (); лцд.принт ("ИД прста:"); лцд.принт (ид); лцд.сетЦурсор (0,1); лцд.принт ("Плаце Фингер"); кашњење (2000); вхиле (п! = ФИНГЕРПРИНТ_ОК) {п = фингер.гетИмаге ();…………………
Дата функција се користи за гласање и приказ резултата:
воид Воте () {лцд.цлеар (); лцд.принт ("Молимо поставите"); лцд.сетЦурсор (0,1); лцд.принт („Ваш глас“); дигиталВрите (индВоте, ХИГХ); дигиталВрите (индФингер, ЛОВ); дигиталВрите (зујалица, ВИСОКО); кашњење (500); дигиталВрите (зујалица, ЛОВ); кашњење (1000); вхиле (1) {иф (дигиталРеад (св1) == 0)…………………
Проверите пуни код и демонстрацијски видео испод.