- Wymagane komponenty:
- Moduł czujnika odcisków palców w maszynie do głosowania:
- Objaśnienie robocze:
- Objaśnienie obwodu:
- Objaśnienie programu:
Wszyscy dobrze znamy elektroniczne automaty do głosowania, w których Twój głos jest rejestrowany elektronicznie i nie musisz używać karty do głosowania do głosowania w wyborach. W dzisiejszych czasach bezpieczeństwo jest głównym problemem i należy również upewnić się, że ktoś nie może głosować dwa razy, więc ten problem można rozwiązać, wprowadzając głosowanie na podstawie odcisków palców, w którym osoba może zostać autoryzowana na podstawie jej odcisku palca. Spowoduje to również zatrzymanie fałszywego głosowania. Dlatego dzisiaj budujemy biometryczną maszynę do głosowania opartą na FingerPrint przy użyciu Arduino.
Sprawdź również nasze poprzednie projekty elektronicznych maszyn do głosowania przy użyciu różnych mikrokontrolerów:
- Elektroniczna maszyna do głosowania wykorzystująca Raspberry Pi
- Maszyna do głosowania oparta na technologii RFID
- Projekt elektronicznej maszyny do głosowania opartego na mikrokontrolerze AVR
- Elektroniczna maszyna do głosowania wykorzystująca Arduino
Wymagane komponenty:
- Arduino Uno
- Moduł czujnika odcisków palców
- Wciskać przyciski
- Diody LED -2
- Rezystor 1 K -3
- Rezystor 2,2 K.
- Moc
- Przewody łączące
- Brzęczyk
- Wyświetlacz LCD 16x2
- Deska do chleba
Moduł czujnika odcisków palców w maszynie do głosowania:
Moduł czujnika odcisków palców lub skaner odcisków palców to moduł, który przechwytuje obraz odcisku palca, a następnie konwertuje go na równoważny szablon i zapisuje w swojej pamięci na wybranym identyfikatorze (lokalizacji) przez Arduino. Tutaj cały proces jest zarządzany przez Arduino, jak zrobienie zdjęcia odcisków palców, przekształcenie go w szablony i przechowywanie lokalizacji itp.
W tym obwodzie maszyny do głosowania za pomocą linii papilarnych użyliśmy modułu czujnika odcisków palców do uwierzytelnienia prawdziwego wyborcy poprzez pobranie ich palca w systemie. Tutaj używamy 5 przycisków do dopasowania, rejestracji / powrotu, usunięcia / OK, w górę i w dół. Enroll i Del mają tutaj podwójne funkcje. Klawisz rejestracji służy również do zapisywania nowego odcisku palca w systemie i funkcji odwrotnej. Oznacza, że gdy użytkownik chce zarejestrować nowy palec, musi nacisnąć klawisz rejestracji, a następnie wyświetlacz LCD zapyta o identyfikator lub lokalizację, w której użytkownik chce zapisać wydruk odcisków palców. Teraz, jeśli w tym momencie użytkownik nie chce kontynuować, może ponownie nacisnąć klawisz rejestracji, aby wrócić (tym razem klucz rejestracji zachowuje się jak klawisz Wstecz). Oznacza, że klucz rejestracji ma zarówno funkcję rejestracji, jak i wstecz. Klawisz DEL / OK ma również tę samą podwójną funkcję, jak wtedy, gdy użytkownik rejestruje nowy palec, a następnie musi wybrać identyfikator palca lub lokalizację za pomocą kolejnych dwóch klawiszy, mianowicie GÓRA I DÓŁ, teraz użytkownik musi nacisnąć klawisz DEL / OK (tym razem ten klawisz zachowuje się jak OK), aby kontynuuj z wybranym identyfikatorem lub lokalizacją. Klucz dopasowania jest używany w przypadku, gdy wyborca chce głosować, a następnie musi najpierw uwierzytelnić się dla prawdziwego wyborcy, trzymając palec na czytniku odcisków palców, jeśli przeszedł uwierzytelnienie, może głosować.
Aby dowiedzieć się więcej na temat rejestrowania odcisków palców i innych rzeczy, zapoznaj się z naszym poprzednim samouczkiem dotyczącym łączenia czujnika odcisków palców z Arduino, a także sprawdź nasze wideo demonstracyjne na końcu tego samouczka.
Objaśnienie robocze:
Działanie tego biometrycznego systemu głosowania w wyborach jest trochę skomplikowany dla początkujących. Przede wszystkim należy wpisać palca lub wyborców (w tym kodzie maksymalny limit wyborcy to 25) za pomocą przycisków / klawiszy. Aby to zrobić, użytkownik musi nacisnąć klawisz ENROLL, a następnie wyświetlacz LCD zapyta o wpisanie lokalizacji / identyfikatora, gdzie palec będzie sklepem. Teraz użytkownik musi wprowadzić identyfikator (lokalizację) za pomocą klawiszy GÓRA / DÓŁ. Po wybraniu lokalizacji / identyfikatora użytkownik musi nacisnąć klawisz OK (klawisz DEL). Teraz LCD poprosi o umieszczenie palca nad modułem odcisków palców. Teraz użytkownik musi położyć palec na module odcisków palców. Następnie LCD poprosi o zdjęcie palca z modułu czytnika linii papilarnych i ponownie poprosi o umieszczenie palca. Teraz użytkownik musi ponownie przyłożyć palec do modułu odcisków palców. Teraz moduł odcisków palców pobiera obraz i konwertuje go na szablony i zapisuje według wybranego identyfikatora w pamięci modułu odcisków palców.Teraz wyborca zostanie zarejestrowany i będzie mógł głosować. W ten sam sposób wszyscy wyborcy mogą zostać zarejestrowani w systemie.
Teraz, jeśli użytkownik chce usunąć lub skasować którykolwiek z zapisanych ID, musi nacisnąć klawisz DEL, po naciśnięciu klawisza DEL, LCD zapyta o wybranie lokalizacji, czyli ID, który ma zostać usunięty. Teraz użytkownik musi wybrać ID i nacisnąć klawisz OK (ten sam klawisz DEL). Teraz wyświetlacz LCD poinformuje Cię, że palec został pomyślnie usunięty.
Proces głosowania:
Teraz, gdy użytkownik chce głosować, musi nacisnąć klawisz dopasowania, a następnie brzęczyk wyda sygnał dźwiękowy, dioda LED również zaświeci się, a wyświetlacz LCD poprosi o umieszczenie palca nad modułem linii papilarnych. Teraz Arduino da ci trzy próby dotknięcia palcem. Po umieszczeniu palca na module czytnika linii papilarnych, moduł czytnika linii papilarnych przechwytuje obraz palca stwierdzając, że jego identyfikatory są obecne w systemie. Jeśli wykryto ID palca, na wyświetlaczu LCD pojawi się autoryzowany głosujący. Oznacza to, że użytkownik jest uprawniony do głosowania. Następnie system przechodzi do następnego etapu głosowania. Teraz zaświeci się zielona dioda, co oznacza, że wyborca może teraz głosować na swoich kandydatów, naciskając odpowiedni klawisz (z CZERWONEJ tablicy chlebowej w tej demonstracji). Teraz, jeśli ten sam wyborca chce zagłosować ponownie, system pokaże to „Już głosowano” . Oznacza to, że ten sam wyborca nie może ponownie zagłosować, a brzęczyk wyda sygnał dźwiękowy przez 5 sekund. Jeśli jakikolwiek niezarejestrowany użytkownik chce głosować, moduł odcisków palców nie wykryje swojego identyfikatora w systemie, a na wyświetlaczu LCD pojawi się komunikat „ Nie znaleziono odcisku palca” .
CAN1, CAN2, CAN3 reprezentują tutaj Kandydata 1, Kandydata 2 i Kandydata 3, którzy startowali w wyborach.
Objaśnienie obwodu:
Obwód tego projektu maszyny do głosowania opartego na odciskach palców jest bardzo prosty, który zawiera Arduino do kontrolowania całego procesu projektu, przycisk do rejestracji, usuwania, wybierania identyfikatorów i celu głosowania, brzęczyk ostrzegawczy, diody LED do wskazywania i wyświetlacz LCD 16x2 do instrukcji Voter i pokazujący również wynik. Żółta dioda LED wskazuje, że moduł czytnika linii papilarnych jest gotowy do zrobienia zdjęcia palca, a zielona dioda wskazuje, że system jest gotowy do głosowania lub przeglądania wyników.
Przycisk jest bezpośrednio podłączony do pinu A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) i A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Wynik) Arduino względem masy. Żółta dioda LED jest podłączona do cyfrowego pinu D7 Arduino względem masy przez rezystor 1k, a zielona dioda LED jest podłączona do D6 Arduino tą samą metodą. Rx i Tx modułu linii papilarnych są bezpośrednio połączone z pinami szeregowymi Tx i Rx Arduino. Zasilanie 5v służy do zasilania modułu linii papilarnych pobranego z płytki Arduino. Brzęczyk jest również podłączony do A5. Wyświetlacz LCD 16x2 jest skonfigurowany w trybie 4-bitowym, a jego RS, EN, D4, D5, D6 i D7 są bezpośrednio podłączone do cyfrowych pinów D13, D12, D11, D10, D9 i D8 Arduino.
Objaśnienie programu:
W programie wykorzystaliśmy bibliotekę czytników linii papilarnych Adafruit do połączenia modułu linii papilarnych z płytką Arduino. Możesz sprawdzić cały kod poniżej. Tutaj wyjaśniamy główne funkcje programu Arduino.
W funkcji konfiguracji daliśmy wskazówki do zdefiniowanych pinów i zainicjowaliśmy moduł LCD i Fingerprint.
Po tym, w funkcji void loop () , czekaliśmy na klawisz check i wciskamy klawisz Match, aby rozpocząć odcisk palca w celu pobrania danych wejściowych i porównania przechwyconego identyfikatora obrazu z zapisanymi identyfikatorami. Jeśli dojdzie do dopasowania, przejdź do następnego kroku.
void loop () {lcd.setCursor (0,0); lcd.print ("Naciśnij klawisz dopasowania"); lcd.setCursor (0,1); lcd.print ("aby uruchomić system"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (match) == 0) {digitalWrite (buzzer, HIGH); opóźnienie (200); digitalWrite (buzzer, LOW); digitalWrite (indFinger, HIGH); for (int i = 0; i <3; i ++)…………………
Podana funkcja void checkKeys () służy do sprawdzania, czy klawisz Enroll czy DEL jest wciśnięty czy nie i co zrobić po naciśnięciu. Jeśli naciśnięto klawisz ENROLL, wywoływana jest funkcja Enroll (), a następnie naciśnięcie klawisza DEL, a następnie funkcja delete () .
void checkKeys () {if (digitalRead (enroll) == 0) {lcd.clear (); lcd.print ("Proszę czekać"); opóźnienie (1000); while (digitalRead (enroll) == 0); Zapisać(); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Proszę czekać"); opóźnienie (1000); delet (); }}
Podana funkcja służy do wprowadzenia identyfikatora do usunięcia i wywołania funkcji uint8_t deleteFingerprint (uint8_t id) , która usunie palec z rekordów.
void delet () {int count = 0; lcd.clear (); lcd.print ("Usuń palec"); lcd.setCursor (0,1); lcd.print ("Lokalizacja:"); while (1) {lcd.setCursor (9,1); lcd.print (liczba); if (digitalRead (up) == 0) {count ++; if (count> 25) count = 0; opóźnienie (500); }……………….
Podana funkcja służy do usunięcia odcisku palca z rekordu wybranego identyfikatora.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Proszę czekać"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Usunięty!"); lcd.clear (); lcd.print ("Figer Deleted"); lcd.setCursor (0,1); lcd.print ("Pomyślnie"); opóźnienie (1000); } else {Serial.print ("Coś nie tak"); lcd.clear (); lcd.print ("Coś nie tak"); lcd.setCursor (0,1); lcd.print ("Spróbuj ponownie później"); opóźnienie (2000); powrót p; }}
Podana funkcja służy do pobrania obrazu odcisków palców i przekształcenia ich w szablon i zapisania o wybranym identyfikatorze do pamięci modułu odcisków palców.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("identyfikator palca:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Umieść palec"); opóźnienie (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
Podana funkcja służy do głosowania i wyświetlania wyników:
void Vote () {lcd.clear (); lcd.print ("Proszę umieścić"); lcd.setCursor (0,1); lcd.print ("Twój głos"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (buzzer, HIGH); opóźnienie (500); digitalWrite (buzzer, LOW); opóźnienie (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Sprawdź pełny kod i film demonstracyjny poniżej.