- Szükséges alkatrészek:
- Ujjlenyomat-érzékelő modul a szavazógépben:
- Munka magyarázat:
- Áramkör magyarázat:
- A program magyarázata:
Mindannyian jól ismerjük az elektronikus szavazógépeket, ahol a szavazatot elektronikus úton regisztrálják, és nem kell szavazólapot használni a választásokon való szavazáshoz. Ma a biztonság komoly aggodalomra ad okot, és azt is biztosítani kell, hogy valaki ne szavazzon kétszer, így ezt a problémát meg lehet oldani az ujjlenyomat-alapú szavazás bevezetésével, ahol egy személyt az ujjlenyomata alapján engedélyezhetnek. Ez leállítja a hamis szavazást is. Tehát ma FingerPrint alapú biometrikus szavazógépet építünk Arduino segítségével.
Ellenőrizze a korábbi elektronikus szavazógép-projektjeinket is különböző mikrovezérlők segítségével:
- Elektronikus szavazógép Raspberry Pi segítségével
- RFID alapú szavazógép
- AVR mikrokontroller alapú elektronikus szavazógép projekt
- Elektronikus szavazógép Arduino használatával
Szükséges alkatrészek:
- Arduino Uno
- Ujjlenyomat-érzékelő modul
- Nyomógombok
- LED-ek -2
- 1K ellenállás -3
- 2,2K ellenállás
- Erő
- Csatlakozó vezetékek
- Berregő
- 16x2 LCD
- Kenyérlap
Ujjlenyomat-érzékelő modul a szavazógépben:
Az ujjlenyomat-érzékelő modul vagy az ujjlenyomat-szkenner olyan modul, amely rögzíti az ujjlenyomat képét, majd átalakítja azt az egyenértékű sablonba, és elmenti a memóriájába az Arduino által kiválasztott azonosítón (helyen). Itt az Arduino parancsolja az összes folyamatot, például képet készít az ujjlenyomatról, átalakítja sablonokká és tárolja a helyet stb.
Ebben az ujjlenyomat-szavazógép áramkörben az ujjlenyomat-érzékelő modult használtuk az igaz szavazó hitelesítéséhez azáltal, hogy az ujjukkal bevittük őket a rendszerbe. Itt 5 nyomógombot használunk a Match, Enroll / back, Delete / OK, UP és Down gombokhoz. Az Enroll és a Del gomb itt kettős tulajdonságokkal rendelkezik. A beiratkozás gombbal új ujjlenyomatot regisztrálhatunk a rendszerbe és a hátsó funkcióba is. Azt jelenti, hogy amikor a felhasználó új ujjat akar regisztrálni, akkor meg kell nyomnia a regisztrációs gombot, majd az LCD kéri az azonosítót vagy helyet, ahová a felhasználó az ujjlenyomat kimenetét szeretné tárolni. Ha most a felhasználó nem akar tovább haladni, akkor a visszalépéshez újra megnyomhatja a beiratkozás gombot (ezúttal a Vissza gombként viselkedik). Azt jelenti, hogy a beiratkozás kulcsnak van beiratkozási és vissza funkciója. DEL / OK gomb ugyanazt a kettős funkciót tölti be, mint amikor a felhasználó új ujjat ír be, akkor ki kell választania az ujj azonosítóját vagy helyét egy másik két billentyű használatával, nevezetesen FEL és LE most a felhasználónak meg kell nyomnia a DEL / OK billentyűt folytassa a kiválasztott azonosítót vagy helyet. A Match kulcsot arra használjuk, amikor a választópolgár szavazni akar, akkor először igazolnia kell a valódi szavazó számára az ujját az ujjlenyomat-érzékelőn tartva, ha átadta ezt a hitelesítést, akkor szavazhat.
Ha szeretne többet megtudni beiratkozott az ujjlenyomatok és egyéb dolgokat, kedvére korábbi bemutató interfész Finger Print érzékelő Arduino, valamint nézze meg a Demo videó végén ez a bemutató.
Munka magyarázat:
Ennek a biometrikus szavazási rendszernek a választása egy kicsit összetett kezdőknek. Először is a felhasználónak be kell írnia az ujját vagy a szavazókat (ebben a kódban a szavazó maximális korlátja 25) a nyomógombok / gombok segítségével. Ehhez a felhasználónak meg kell nyomnia az ENROLL gombot, majd az LCD kéri a hely / azonosító megadását, ahol az ujj tároló lesz. Tehát most a felhasználónak meg kell adnia az azonosítót (hely) a FEL / LE billentyűk használatával. A Hely / azonosító kiválasztása után a felhasználónak meg kell nyomnia az OK gombot (DEL gomb). Most az LCD kéri, hogy tegye az ujját az ujjlenyomat-modulra. Most a felhasználónak át kell tennie az ujját az ujjlenyomat-modulon. Ezután az LCD kéri, hogy távolítsa el az ujját az ujjlenyomat-modulról, és ismét megkéri az ujját. Most a felhasználónak újra be kell tennie az ujját az ujjlenyomat-modulra. Most az ujjlenyomat-modul elkészít egy képet, sablonokká alakítja, és kiválasztott azonosító szerint tárolja az ujjlenyomat-modul memóriájában.Most a szavazót regisztrálják, és ő szavazhat. Ugyanezen módszerrel az összes szavazót be lehet jegyezni a rendszerbe.
Ha a felhasználó el akarja távolítani vagy törölni a tárolt azonosítókat, akkor meg kell nyomnia a DEL gombot, miután a DEL gombot megnyomta, az LCD a kiválasztott helyet kéri a törölni kívánt azonosító kiválasztásával. Most a felhasználónak ki kell választania az azonosítót, és meg kell nyomnia az OK gombot (ugyanaz a DEL gomb). Most az LCD értesíti Önt arról, hogy az ujját sikeresen törölte.
Szavazási folyamat:
Most, amikor a felhasználó szavazni akar, meg kell nyomnia az egyezés gombot, majd a hangjelző sípol és a LED is világít, és az LCD kéri az ujjlenyomat-modul fölötti ujj helyét. Most Arduino három kísérletet tesz arra, hogy ujját tegye. Miután ujját az ujjlenyomat-modul fölé helyezte, az ujjlenyomat-modul rögzíti az ujjak képét, és megtalálja az azonosítóit a rendszerben. Ha ujjazonosítót észlel, akkor az LCD az engedélyezett szavazót mutatja. Ez azt jelenti, hogy a felhasználó jogosult szavazni. És akkor a rendszer a szavazás következő szakaszába lép. A zöld LED világítani fog, ami azt jelenti, hogy a választók a kapcsolódó kulcs megnyomásával szavazhatnak jelöltjeikre (ebben a demonstrációban a RED kenyér fórumától). Ha ugyanaz a választópolgár újra szavazni akar, akkor a rendszer azt mutatja, hogy „Már szavazott” . Azt jelenti, hogy ugyanaz a szavazó nem szavazhat újra, és a hangjelző 5 másodpercig sípol. Ha bármely nem regisztrált felhasználó szavazni akar, akkor az ujjlenyomat-modul nem fogja észlelni az azonosítóját a rendszerben, és az LCD-n a „ No Fingerprint Found” felirat jelenik meg.
A CAN1, CAN2, CAN3 itt az 1., a 2. és a 3. jelöltet képviseli, akik a választáson álltak.
Áramkör magyarázat:
Ennek az FingerPrint alapú szavazógép projektnek az áramköre nagyon egyszerű, amely az Arduino-t tartalmazza a projekt egész folyamatának vezérléséhez, nyomógombot a regisztrációhoz, törléshez, azonosítók és szavazási cél kiválasztásához, hangjelzőt riasztáshoz, LED-eket a jelzéshez és 16x2 LCD-t az utasításokhoz Szavazó és az eredmény bemutatása is. A sárga LED azt jelzi, hogy az ujjlenyomat-modul készen áll arra, hogy képet készítsen az ujjáról, a zöld LED pedig azt jelzi, hogy a rendszer készen áll a szavazásra vagy az eredmények megtekintésére.
A nyomógomb közvetlenül csatlakozik az A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) és A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Eredménye) az Arduino talajra vonatkoztatva. A sárga LED az Arduino D7 digitális érintkezőjénél van a földhöz viszonyítva 1k ellenállással, a zöld LED pedig ugyanezzel a módszerrel csatlakozik az Arduino D6-hoz. Ujjlenyomat-modul Rx és Tx közvetlenül csatlakozik az Arduino Tx és Rx soros tűihez. Az 5v-os tápegységet az Arduino kártyáról vett ujjlenyomat-modul táplálásához használják. Az A5-nél egy hangjelző is csatlakozik. A 16x2 LCD 4 bites módban van konfigurálva, és RS, EN, D4, D5, D6 és D7 közvetlenül csatlakozik az Arduino D13, D12, D11, D10, D9 és D8 digitális érintkezőihez.
A program magyarázata:
Egy programban az Adafruit Fingerprint Sensor Library-t használtuk az ujjlenyomat-modul Arduino táblával való összekapcsolására. Az alábbiakban ellenőrizheti a teljes kódot. Itt elmagyarázzuk az Arduino Program főbb funkcióit.
A beállítási funkcióban útmutatást adtunk a meghatározott csapokhoz, és elindítottuk az LCD és az ujjlenyomat modult.
Utána, az void loop () függvényben megvártuk az ellenőrző gombot, és megnyomtuk a Match gombot az ujjlenyomat elindításához, hogy bevittük és összehasonlítsuk a rögzített kép azonosítóját a tárolt azonosítóval. Ha egyezés következik, folytassa a következő lépéssel.
void loop () {lcd.setCursor (0,0); lcd.print ("Press Match Key"); lcd.setCursor (0,1); lcd.print ("a rendszer indításához"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (match) == 0) {digitalWrite (hangjelző, HIGH); késés (200); digitalWrite (hangjelző, LOW); digitalWrite (indFinger, HIGH); mert (int i = 0; i <3; i ++)…………………
Adott void checkKeys () függvény segítségével ellenőrizhetjük, hogy az Enroll vagy a DEL billentyűt lenyomják-e vagy sem, és mi a teendő, ha megnyomjuk. Ha az ENROLL gombot megnyomta, az Enroll () funkció meghívásra kerül, és a DEL gomb megnyomása, majd a törlés () funkció meghívása.
void checkKeys () {if (digitalRead (beiratkozás) == 0) {lcd.clear (); lcd.print ("Kérjük, várjon"); késés (1000); while (digitalRead (beiratkozás) == 0); Beiratkozás (); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Kérjük, várjon"); késés (1000); törlés (); }}
Az adott függvény a törlendő azonosító megadásához és az uint8_t deleteFingerprint (uint8_t id) függvény hívásához használható , amely törli az ujját a rekordokból.
void delet () {int count = 0; lcd.clear (); lcd.print ("Ujj törlése"); lcd.setCursor (0,1); lcd.print ("Hely:"); míg (1) {lcd.setCursor (9,1); lcd.print (számlálás); if (digitalRead (fel) == 0) {count ++; ha (szám> 25) szám = 0; késés (500); }……………….
Az adott funkció az ujjlenyomat törlésére szolgál a kiválasztott azonosító rekordjából.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Kérjük, várjon"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Törölve!"); lcd.clear (); lcd.print ("Figer törölve"); lcd.setCursor (0,1); lcd.print ("Sikeresen"); késés (1000); } else {Serial.print ("Valami rossz"); lcd.clear (); lcd.print ("Valami rossz"); lcd.setCursor (0,1); lcd.print ("Próbálja újra később"); késés (2000); visszatérő p; }}
A Given Function használatával ujjlenyomatképeket készíthet, átalakítja azokat sablonokká, és a kiválasztott azonosítókkal menti az ujjlenyomat-modul memóriájába.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("ujj azonosító:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Hely ujj"); késés (2000); míg (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Az adott funkciót használják a szavazáshoz és az eredmények megjelenítéséhez:
érvénytelen Szavazás () {lcd.clear (); lcd.print ("Kérjük, helyezze el"); lcd.setCursor (0,1); lcd.print ("Az Ön szavazata"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (hangjelző, HIGH); késés (500); digitalWrite (hangjelző, LOW); késés (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Ellenőrizze az alábbi teljes kódot és bemutató videót.