- Components necessaris:
- Mòdul del sensor d’empremta digital a la màquina de votar:
- Explicació de treball:
- Explicació del circuit:
- Explicació del programa:
Tots coneixem bastant les màquines de vot electrònic, on el vostre vot es registra electrònicament i no cal que feu servir paperetes per votar a les eleccions. Avui en dia, la seguretat és una preocupació important i també cal garantir que algú no pugui votar dues vegades, de manera que aquest problema es pot solucionar mitjançant la introducció de vots basats en la impressió digital, on es pot autoritzar una persona en funció de la seva empremta digital. Això també atura el vot fals. Per tant, avui estem construint una màquina de votació biomètrica basada en FingerPrint amb Arduino.
Consulteu també els nostres anteriors projectes de màquines de vot electrònic mitjançant diferents microcontroladors:
- Màquina de votació electrònica que utilitza Raspberry Pi
- Màquina de vot basada en RFID
- Projecte de màquina de vot electrònic basat en microcontroladors AVR
- Màquina de votació electrònica que utilitza Arduino
Components necessaris:
- Arduino Uno
- Mòdul de sensor d’empremta digital
- Botons de pressió
- LEDs -2
- Resistència 1K -3
- Resistència de 2,2K
- Potència
- Connexió de cables
- Zumbador
- LCD de 16x2
- Taula de pa
Mòdul del sensor d’empremta digital a la màquina de votar:
El mòdul Finger Print Sensor o Finger Print Scanner és un mòdul que captura la imatge d’empremta digital i la converteix en la plantilla equivalent i les guarda a la seva memòria a la identificació (ubicació) seleccionada d’Arduino. Aquí Arduino mana tot el procés com prendre una imatge d’empremta digital, convertir-la en plantilles i emmagatzemar la ubicació, etc.

En aquest circuit de màquines de vot FingerPrint, hem utilitzat el mòdul del sensor d’impressió digital per autenticar el votant real mitjançant l’entrada del seu dit al sistema. Aquí fem servir 5 botons polsadors per coincidir, enrolar / enrere, suprimir / acceptar, amunt i avall. La tecla Enroll i Del té aquí dues funcions. La tecla d'inscripció també s'utilitza per inscriure una nova impressió de dit al sistema i a la funció de retrocés. Significa quan l'usuari vol registrar un dit nou, llavors ha de prémer la tecla d'inscripció i el LCD demana l'identificador o la ubicació on l'usuari vol emmagatzemar la sortida de l'empremta digital. Ara bé, si en aquest moment l'usuari no vol continuar més, pot tornar a prémer la tecla d'inscripció per tornar enrere (aquesta vegada la tecla d'inscripció es comporta com a tecla Enrere). La clau de registre significa que té la funció de registre i de retorn. Tecla DEL / OK també té la mateixa doble funció que quan l’usuari registra un dit nou, llavors ha de seleccionar l’identificador del dit o la ubicació fent servir una altra de dues tecles, és a dir, AMUNT I BAIX, ara l’usuari ha de prémer la tecla DEL / OK (aquesta vegada aquesta tecla es comporta com OK) per procediu amb l'identificador o la ubicació seleccionats. La tecla de coincidència s’utilitza quan el votant vol votar, per tant, primer ha d’autenticar-se per al votant real mantenint el dit al sensor d’impressió digital, si ha aprovat aquesta autenticació, pot votar.

Per obtenir més informació sobre la inscripció d’empremtes digitals i altres coses, consulteu el nostre tutorial anterior sobre la interfície del sensor d’impressió digital amb Arduino i també consulteu el nostre vídeo de demostració al final d’aquest tutorial.
Explicació de treball:
Funcionament d’aquest sistema de votació biomètric per a les eleccions és una mica complex per a principiants. En primer lloc, l'usuari ha de registrar el dit o els votants (en aquest codi, el límit màxim del votant és de 25) amb l'ajut de botons / tecles. Per fer-ho, l'usuari ha de prémer la tecla ENROLL i, a continuació, el LCD demana que introduïu la ubicació / identificació on es trobarà el dit. Per tant, ara l’usuari ha d’introduir l’identificador (ubicació) mitjançant les tecles AMUNT / BAIX. Després de seleccionar Ubicació / ID, l'usuari ha de prémer una tecla D'acord (tecla DEL). Ara el LCD us demanarà que col·loqueu el dit sobre el mòdul d’empremta digital. Ara l’usuari ha de posar el dit sobre el mòdul d’empremta digital. A continuació, el LCD us demanarà que traieu el dit del mòdul d’empremta digital i, de nou, us demanarà que col·loqueu el dit. Ara l’usuari ha de tornar a posar el dit sobre el mòdul d’empremta digital. Ara el mòdul d’empremta digital pren una imatge i la converteix en plantilles i la desa mitjançant l’identificador seleccionat a la memòria del mòdul d’empremta digital.Ara l’elector es registrarà i podrà votar. Pel mateix mètode es pot registrar tots els votants al sistema.

Ara bé, si l'usuari vol eliminar o eliminar qualsevol identificador emmagatzemat, ha de prémer la tecla DEL, després de prémer la tecla DEL, el LCD us demanarà que seleccioneu la ubicació, que vol dir que seleccioneu l'identificador que se suprimirà. Ara l'usuari ha de seleccionar ID i prémer la tecla D'acord (la mateixa tecla DEL). Ara, el LCD us indicarà que el dit s'ha suprimit correctament.
Procés de votació:
Ara, quan l'usuari vulgui votar, ha de prémer la tecla de coincidència i, a continuació, el zumbador emet un so, el LED també brillarà i el LCD demanarà que col·loqueu el dit sobre el mòdul d'empremta digital. Ara Arduino us farà tres intents de posar el dit. Després de col·locar un dit sobre el mòdul d’empremtes digitals, el mòdul d’empremtes digitals capta la imatge del dit i troba els seus identificadors al sistema. Si es detecta un identificador de dit, el LCD mostrarà el votant autoritzat. Significa que l’usuari està autoritzat a votar. I llavors el sistema passa a la següent etapa per votar. Ara el LED verd brillarà, això significa que ara els votants poden votar pels seus candidats prement una tecla relectada (des del tauler de pa RED en aquesta demostració). Ara bé, si el mateix votant vol tornar a votar, el sistema mostrarà "Ja s'ha votat" . Vol dir que el mateix votant no pot tornar a votar i el timbre emetrà un so durant 5 segons. Si algun usuari no registrat vol votar, el mòdul d’empremta digital no detectarà la seva identificació al sistema i la pantalla LCD mostrarà “ No s’ha trobat cap empremta digital” .

CAN1, CAN2, CAN3 aquí representa el candidat 1, el candidat 2 i el candidat 3, que s’han presentat a les eleccions.
Explicació del circuit:
El circuit d’aquest projecte de màquina de votació basat en FingerPrint és molt senzill i conté Arduino per controlar tot el procés del projecte, polsador per inscriure’s, suprimir, seleccionar identificadors i votar, un brunzidor d’alerta, LEDs d’indicació i LCD de 16x2 per instruir Votant i mostrant també el resultat. El LED groc indica que el mòdul d’empremta digital està preparat per fer una imatge del dit i el LED verd indica que el sistema està preparat per votar o veure resultats.

El polsador està connectat directament al pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) i A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Resultat) d'Arduino respecte al terra. El LED groc es connecta al pin digital D7 d’Arduino respecte a terra mitjançant una resistència de 1 k i el LED verd es connecta al D6 d’Arduino amb el mateix mètode. Rx i Tx del mòdul d’empremta digital connectats directament al pin sèrie Tx i Rx d’Arduino. El subministrament de 5v s’utilitza per alimentar el mòdul d’empremta digital extret de la placa Arduino. A A5 també es connecta un brunzidor. Una pantalla LCD de 16x2 està configurada en mode de 4 bits i els seus RS, EN, D4, D5, D6 i D7 es connecten directament al pin digital D13, D12, D11, D10, D9 i D8 d’Arduino.
Explicació del programa:
En un programa, hem utilitzat Adafruit Fingerprint Sensor Library per a la interfície del mòdul d’empremta digital amb la placa Arduino. Podeu consultar el codi complet a continuació. Aquí expliquem les principals funcions del programa Arduino.
A la funció de configuració, hem donat indicacions als pins definits i hem iniciat el mòdul LCD i l'empremta digital.
Després, en la funció void loop () , hem esperat la tecla de comprovació i premem la tecla de coincidència per iniciar la impressió digital per obtenir l'entrada i comparar l'identificador de la imatge capturada amb els identificadors emmagatzemats. Si es produeix una coincidència, continueu amb el següent pas.
bucle buit () {lcd.setCursor (0,0); lcd.print ("Premeu la tecla de coincidència"); lcd.setCursor (0,1); lcd.print ("per iniciar el sistema"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (coincidència) == 0) {digitalWrite (brunzidor, ALT); retard (200); digitalWrite (brunzidor, BAIX); digitalWrite (indFinger, HIGH); per a (int i = 0; i <3; i ++)…………………
Donada la funció checkKeys () nul·la, s’utilitza per comprovar que es prem o no la tecla INSCRIPCIÓ o DEL i què fer si es prem. Si es prem la tecla ENROLL , es crida la funció Enroll () i es prem la tecla DEL, llavors es crida la funció delete () .
void checkKeys () {if (digitalRead (enroll) == 0) {lcd.clear (); lcd.print ("Si us plau, espereu"); retard (1000); while (digitalRead (enroll) == 0); Inscriu-te (); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Si us plau, espereu"); retard (1000); delet (); }}
La funció donada s'utilitza per introduir l'identificador que se suprimeix i trucar a la funció d'empremta digital uint8_t delete (uint8_t id) que suprimirà el dit dels registres.
void delet () {int count = 0; lcd.clear (); lcd.print ("Suprimeix el dit"); lcd.setCursor (0,1); lcd.print ("Ubicació:"); mentre que (1) {lcd.setCursor (9,1); lcd.print (recompte); if (digitalRead (up) == 0) {count ++; if (recompte> 25) recompte = 0; retard (500); }……………….
La funció donada s'utilitza per suprimir l'empremta digital del registre de l'identificador seleccionat.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Si us plau, espereu"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Suprimit!"); lcd.clear (); lcd.print ("Figer suprimit"); lcd.setCursor (0,1); lcd.print ("correctament"); retard (1000); } else {Serial.print ("Alguna cosa malament"); lcd.clear (); lcd.print ("Alguna cosa malament"); lcd.setCursor (0,1); lcd.print ("Torneu-ho a provar més tard"); endarreriment (2000); tornar p; }}
La funció donada s’utilitza per fer una imatge d’empremta digital i convertir-la a la plantilla i desar-la mitjançant l’identificador seleccionat a la memòria del mòdul d’empremta digital.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("identificació del dit:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Col·loca el dit"); endarreriment (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
La funció donada s'utilitza per votar i mostrar resultats:
void Vote () {lcd.clear (); lcd.print ("Si us plau, col·loqueu"); lcd.setCursor (0,1); lcd.print ("El vostre vot"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (buzzer, HIGH); retard (500); digitalWrite (brunzidor, BAIX); retard (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Consulteu el codi complet i el vídeo de demostració a continuació.
