- Componenti richiesti:
- Modulo sensore di impronte digitali nella macchina per il voto:
- Spiegazione di lavoro:
- Spiegazione del circuito:
- Spiegazione del programma:
Conosciamo tutti abbastanza bene le macchine per il voto elettronico, dove il tuo voto viene registrato elettronicamente e non è necessario utilizzare la scheda elettorale per votare alle elezioni. Oggi la sicurezza è una delle principali preoccupazioni e bisogna anche garantire che qualcuno non possa votare due volte, quindi questo problema può essere risolto introducendo il voto basato sull'impronta digitale, in cui una persona può essere autorizzata in base alla sua impronta digitale. Ciò interromperà anche il voto falso. Quindi oggi stiamo costruendo una macchina per il voto biometrico basata su FingerPrint utilizzando Arduino.
Controlla anche i nostri precedenti progetti di macchine per il voto elettronico che utilizzano diversi microcontrollori:
- Macchina per il voto elettronico che utilizza Raspberry Pi
- Macchina di voto basata su RFID
- Progetto di votazione elettronica basato su microcontrollore AVR
- Macchina per il voto elettronico con Arduino
Componenti richiesti:
- Arduino Uno
- Modulo sensore impronte digitali
- Premi i pulsanti
- LED -2
- Resistenza 1K -3
- Resistenza da 2,2 K.
- Energia
- Cavi di collegamento
- Cicalino
- LCD 16x2
- Tagliere per il pane
Modulo sensore di impronte digitali nella macchina per il voto:
Il modulo sensore di impronte digitali o scanner di impronte digitali è un modulo che cattura l'immagine dell'impronta del dito e quindi la converte nel modello equivalente e la salva nella sua memoria sull'ID selezionato (posizione) da Arduino. Qui tutto il processo è comandato da Arduino come prendere un'immagine dell'impronta digitale, convertirla in modelli e memorizzare la posizione ecc.
In questo circuito della macchina di votazione FingerPrint, abbiamo utilizzato il modulo sensore di impronte digitali per autenticare il vero elettore prendendo il suo input dito nel sistema. Qui stiamo usando 5 pulsanti per abbinare, registrare / tornare indietro, cancellare / OK, SU e GIÙ. Enroll e Del key hanno una doppia funzionalità qui. Il tasto di registrazione viene utilizzato per registrare la nuova impronta del dito nel sistema e anche nella funzione di ritorno. Significa che quando l'utente desidera registrare un nuovo dito, deve premere il tasto di registrazione, quindi il display LCD chiede l'ID o la posizione in cui l'utente desidera memorizzare l'output dell'impronta digitale. Ora se in questo momento l'utente non vuole procedere oltre, può premere nuovamente il tasto di registrazione per tornare indietro (questa volta il tasto di registrazione si comporta come il tasto Indietro). Significa che la chiave di registrazione ha sia la funzione di registrazione che quella di ritorno. Tasto DEL / OK ha anche la stessa doppia funzione come quando l'utente registra un nuovo dito, quindi deve selezionare l'ID del dito o la posizione utilizzando altri due tasti, ovvero SU E GIÙ, ora l'utente deve premere il tasto DEL / OK (questa volta questo tasto si comporta come OK) per procedere con l'ID o la posizione selezionati. La chiave di corrispondenza viene utilizzata ogni volta che l'elettore desidera votare, quindi deve prima autenticarsi per il vero elettore tenendo il dito sul sensore di impronte digitali, se ha superato questa autenticazione, può votare.
Per saperne di più sulla registrazione delle impronte digitali e altre cose, controlla il nostro precedente tutorial sull'interfacciamento del sensore di impronte digitali con Arduino e controlla anche il nostro video dimostrativo alla fine di questo tutorial.
Spiegazione di lavoro:
Funzionamento di questo sistema di voto biometrico per le elezioni è un po 'complesso per i principianti. Prima di tutto, l'utente deve registrare il dito o gli elettori (in questo codice il limite massimo dell'elettore è 25) con l'aiuto di pulsanti / tasti. Per fare ciò, l'utente deve premere il tasto ENROLL e quindi il display LCD chiede di inserire la posizione / ID in cui il dito sarà un negozio. Quindi ora l'utente deve inserire l'ID (posizione) utilizzando i tasti SU / GIÙ. Dopo aver selezionato Posizione / ID, l'utente deve premere un tasto OK (tasto CANC). Ora il display LCD chiederà di posizionare il dito sul modulo di impronte digitali. Ora l'utente deve mettere il dito sul modulo delle impronte digitali. Quindi il display LCD chiederà di rimuovere il dito dal modulo di impronte digitali e di nuovo chiederà di posizionare il dito. Ora l'utente deve mettere di nuovo il dito sul modulo delle impronte digitali. Ora il modulo di impronte digitali prende un'immagine e la converte in modelli e la memorizza in base all'ID selezionato nella memoria del modulo di impronte digitali.Ora l'elettore sarà registrato e potrà votare. Con lo stesso metodo tutti gli elettori possono essere registrati nel sistema.
Ora, se l'utente desidera rimuovere o eliminare uno qualsiasi degli ID memorizzati, deve premere il tasto DEL, dopo aver premuto il tasto DEL, LCD chiederà la posizione di selezione significa selezionare l'ID da eliminare. Ora l'utente deve selezionare ID e premere il tasto OK (stesso tasto CANC). Ora il display LCD ti informerà che il dito è stato eliminato con successo.
Processo di voto:
Ora, quando l'utente desidera votare, deve premere il tasto di corrispondenza e quindi il cicalino emetterà un segnale acustico e anche il LED si accenderà e il display LCD chiederà di posizionare il dito sul modulo delle impronte digitali. Ora Arduino ti darà tre tentativi di mettere il dito. Dopo aver posizionato un dito sul modulo dell'impronta digitale, il modulo dell'impronta digitale acquisisce l'immagine del dito e il suo ID è presente nel sistema. Se viene rilevato l'ID dito, il display LCD mostrerà Voter autorizzato. Significa che l'utente è autorizzato a votare. E poi il sistema passa alla fase successiva per il voto. Ora il LED verde si accende, significa che ora l'elettore può votare per i propri candidati premendo un tasto relativo (dalla breadboard ROSSA in questa dimostrazione). Ora, se lo stesso elettore vuole votare di nuovo, il sistema mostrerà "Già votato" . Significa che lo stesso elettore non può votare di nuovo e il cicalino emetterà un segnale acustico per 5 secondi. Se un utente non registrato desidera votare, il modulo di impronte digitali non rileverà il suo ID nel sistema e il display LCD mostrerà " Nessuna impronta digitale trovata" .
CAN1, CAN2, CAN3 qui rappresenta il Candidato 1, il Candidato 2 e il Candidato 3, che si sono candidati alle elezioni.
Spiegazione del circuito:
Il circuito di questo progetto di macchina per il voto basato su FingerPrint è molto semplice che contiene Arduino per controllare l'intero processo del progetto, pulsante per la registrazione, cancellazione, selezione di ID e scopo di voto, un cicalino per avviso, LED per indicazione e LCD 16x2 per istruzioni Elettore e mostrando anche il risultato. Il LED giallo indica che il modulo delle impronte digitali è pronto per acquisire un'immagine del dito e il LED verde indica che il sistema è pronto per votare o vedere i risultati.
Il pulsante è collegato direttamente al pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) e A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Risultato) di Arduino rispetto al suolo. Il LED giallo è collegato al pin digitale D7 di Arduino rispetto a massa tramite una resistenza da 1k e il LED verde è collegato al D6 di Arduino con lo stesso metodo. Rx e Tx del modulo di impronte digitali collegati direttamente al pin seriale Tx e Rx di Arduino. L'alimentazione 5v viene utilizzata per alimentare il modulo di impronte digitali preso dalla scheda Arduino. Un cicalino è anche collegato ad A5. Un LCD 16x2 è configurato in modalità 4 bit e le sue RS, EN, D4, D5, D6 e D7 sono collegate direttamente al pin digitale D13, D12, D11, D10, D9 e D8 di Arduino.
Spiegazione del programma:
In un programma, abbiamo utilizzato la libreria di sensori di impronte digitali Adafruit per interfacciare il modulo di impronte digitali con la scheda Arduino. Puoi controllare il codice completo di seguito. Qui stiamo spiegando le principali funzioni del programma Arduino.
Nella funzione di configurazione, abbiamo dato indicazioni ai pin definiti e abbiamo avviato il modulo LCD e Fingerprint.
Dopo di ciò, nella funzione void loop () , abbiamo aspettato il tasto di controllo e premuto il tasto Match per avviare l'impronta digitale per prendere l'input e confrontare l'ID dell'immagine acquisita con gli ID memorizzati. Se si verifica una corrispondenza, procedere con il passaggio successivo.
void loop () {lcd.setCursor (0,0); lcd.print ("Press Match Key"); lcd.setCursor (0,1); lcd.print ("per avviare il sistema"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (match) == 0) {digitalWrite (buzzer, HIGH); ritardo (200); digitalWrite (buzzer, LOW); digitalWrite (indFinger, HIGH); for (int i = 0; i <3; i ++)…………………
Data la funzione void checkKeys () viene utilizzata per controllare che il tasto Enroll o DEL sia premuto o meno e cosa fare se premuto. Se viene premuto il tasto ENROLL , viene chiamata la funzione Enroll () e viene premuto il tasto DEL, viene chiamata la funzione delete () .
void checkKeys () {if (digitalRead (iscriviti) == 0) {lcd.clear (); lcd.print ("Attendere"); ritardo (1000); while (digitalRead (iscriviti) == 0); Iscriversi(); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Attendere"); ritardo (1000); delet (); }}
La funzione data viene utilizzata per inserire l'ID da eliminare e chiamare la funzione uint8_t deleteFingerprint (uint8_t id) che eliminerà il dito dai record.
void delet () {int count = 0; lcd.clear (); lcd.print ("Elimina dito"); lcd.setCursor (0,1); lcd.print ("Ubicazione:"); while (1) {lcd.setCursor (9,1); lcd.print (count); if (digitalRead (up) == 0) {count ++; se (conteggio> 25) conteggio = 0; ritardo (500); }……………….
La funzione data viene utilizzata per eliminare l'impronta digitale dal record dell'ID selezionato.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Attendere"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Deleted!"); lcd.clear (); lcd.print ("Figer Deleted"); lcd.setCursor (0,1); lcd.print ("Successfully"); ritardo (1000); } else {Serial.print ("Something Wrong"); lcd.clear (); lcd.print ("Something Wrong"); lcd.setCursor (0,1); lcd.print ("Riprova più tardi"); ritardo (2000); return p; }}
La funzione data viene utilizzata per acquisire l'immagine dell'impronta digitale e convertirla nel modello e salvarla con l'ID selezionato nella memoria del modulo dell'impronta digitale.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("finger ID:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Posiziona dito"); ritardo (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
La funzione data viene utilizzata per la votazione e visualizzare i risultati:
void Vote () {lcd.clear (); lcd.print ("Please Place"); lcd.setCursor (0,1); lcd.print ("Il tuo voto"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (buzzer, HIGH); ritardo (500); digitalWrite (buzzer, LOW); ritardo (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Controlla il codice completo e il video dimostrativo di seguito.