- Composants requis:
- Module de capteur d'empreinte digitale dans la machine à voter:
- Explication de travail:
- Explication du circuit:
- Explication du programme:
Nous connaissons tous assez bien les machines à voter électroniques, où votre vote est enregistré électroniquement et vous n'avez pas besoin d'utiliser le bulletin de vote pour voter lors d'une élection. Aujourd'hui, la sécurité est une préoccupation majeure et il faut également s'assurer que quelqu'un ne peut pas voter deux fois, de sorte que ce problème peut être résolu en introduisant le vote par empreinte digitale, où une personne peut être autorisée en fonction de son empreinte digitale. Cela arrêtera également les faux votes. Nous construisons donc aujourd'hui une machine de vote biométrique basée sur FingerPrint en utilisant Arduino.
Consultez également nos précédents projets de machines à voter électroniques utilisant différents microcontrôleurs:
- Machine de vote électronique utilisant Raspberry Pi
- Machine de vote basée sur RFID
- Projet de machine de vote électronique basé sur un microcontrôleur AVR
- Machine de vote électronique utilisant Arduino
Composants requis:
- Arduino Uno
- Module de capteur d'empreinte digitale
- Boutons poussoir
- LED -2
- Résistance 1K -3
- Résistance 2,2K
- Puissance
- Fils de connexion
- Avertisseur sonore
- Écran LCD 16x2
- Planche à pain
Module de capteur d'empreinte digitale dans la machine à voter:
Le module de capteur d'empreinte digitale ou scanner d'empreinte digitale est un module qui capture l'image de l'empreinte digitale, puis la convertit en modèle équivalent et les enregistre dans sa mémoire sur l'ID sélectionné (emplacement) par Arduino. Ici, tout le processus est commandé par Arduino, comme prendre une image d'empreinte digitale, la convertir en modèles et stocker l'emplacement, etc.
Dans ce circuit de machine à voter FingerPrint, nous avons utilisé le module de capteur d'empreinte digitale pour authentifier le véritable électeur en prenant leur entrée digitale dans le système. Ici, nous utilisons 5 boutons poussoirs pour correspondre, s'inscrire / revenir, supprimer / OK, haut et bas. Les clés d'inscription et de suppression ont ici des fonctionnalités doubles. La clé d'inscription est utilisée pour enregistrer une nouvelle empreinte digitale dans le système et la fonction de retour. Cela signifie que lorsque l'utilisateur souhaite enregistrer un nouveau doigt, il doit appuyer sur la touche d'enregistrement, puis l'écran LCD demande l'ID ou l'emplacement où l'utilisateur souhaite stocker la sortie d'empreinte digitale. Maintenant, si à ce moment l'utilisateur ne souhaite pas continuer, il peut appuyer à nouveau sur la touche d'inscription pour revenir en arrière (cette fois, la clé d'inscription se comporte comme la touche Retour). Signifie que la clé d'inscription a à la fois une fonction d'inscription et de retour. Touche DEL / OK a également la même double fonction que lorsque l'utilisateur enregistre un nouveau doigt, puis il / elle doit sélectionner l'ID de doigt ou l'emplacement en utilisant deux autres touches, à savoir HAUT ET BAS, maintenant l'utilisateur doit appuyer sur la touche SUPPR / OK (cette fois, cette touche se comporte comme OK) pour continuer avec l'ID ou l'emplacement sélectionné. La clé de correspondance est utilisée chaque fois que l'électeur veut voter, puis il doit d'abord s'authentifier pour le véritable électeur en gardant le doigt sur le capteur d'empreintes digitales.S'il / elle a réussi cette authentification, il peut voter.
Pour en savoir plus sur l'enregistrement des empreintes digitales et d'autres choses, consultez notre précédent tutoriel sur l'interfaçage du capteur d'empreintes digitales avec Arduino, et consultez également notre vidéo de démonstration à la fin de ce tutoriel.
Explication de travail:
Fonctionnement de ce système de vote biométrique pour les élections est un peu complexe pour les débutants. Tout d'abord, l'utilisateur doit inscrire le doigt ou les électeurs (dans ce code, la limite maximale de l'électeur est de 25) à l'aide de boutons poussoirs / touches. Pour ce faire, l'utilisateur doit appuyer sur la touche ENROLL, puis l'écran LCD demande la saisie de l'emplacement / de l'ID où le doigt sera un magasin. Alors maintenant, l'utilisateur doit entrer l'ID (emplacement) en utilisant les touches HAUT / BAS. Après avoir sélectionné Emplacement / ID, l'utilisateur doit appuyer sur une touche OK (touche SUPPR). L'écran LCD demandera maintenant de placer le doigt sur le module d'empreinte digitale. Maintenant, l'utilisateur doit mettre son doigt sur le module d'empreinte digitale. Ensuite, l'écran LCD demandera de retirer le doigt du module d'empreinte digitale et demandera à nouveau de placer le doigt. Maintenant, l'utilisateur doit mettre à nouveau son doigt sur le module d'empreinte digitale. Maintenant, le module d'empreinte digitale prend une image et la convertit en modèles et la stocke par ID sélectionné dans la mémoire du module d'empreinte digitale.L'électeur sera désormais inscrit et pourra voter. Par la même méthode, tous les électeurs peuvent être enregistrés dans le système.
Maintenant, si l'utilisateur souhaite supprimer ou supprimer l'un des ID stockés, il doit appuyer sur la touche DEL, après avoir appuyé sur la touche DEL, l'écran LCD demandera l'emplacement de sélection signifie sélectionner l'ID à supprimer. L'utilisateur doit maintenant sélectionner l'ID et appuyer sur la touche OK (même touche SUPPR). Maintenant, l'écran LCD vous indiquera que le doigt a été supprimé avec succès.
Processus de vote:
Maintenant, lorsque l'utilisateur veut voter, il doit appuyer sur la touche de correspondance, puis le buzzer émettra un bip et la LED s'allumera également et l'écran LCD demandera de placer le doigt sur le module d'empreintes digitales. Maintenant, Arduino vous donnera trois tentatives pour mettre votre doigt. Après avoir placé un doigt sur le module d'empreintes digitales, le module d'empreintes digitales capture l'image du doigt et trouve que ses identifiants sont présents dans le système. Si l'identification du doigt est détectée, l'écran LCD affichera l'électeur autorisé. Cela signifie que l'utilisateur est autorisé à voter. Et puis le système passe à l'étape suivante pour le vote. Maintenant la LED verte s'allumera, cela signifie que les électeurs peuvent maintenant voter pour leurs candidats en appuyant sur une touche relectée (à partir du tableau de pain ROUGE dans cette démonstration). Maintenant, si le même électeur veut voter à nouveau, le système affichera `` Déjà voté '' . Cela signifie que le même électeur ne peut plus voter et le buzzer émettra un bip pendant 5 secondes. Si un utilisateur non enregistré veut voter, le module d'empreintes digitales ne détectera pas son identifiant dans le système et l'écran LCD affichera ' No Fingerprint Found' .
CAN1, CAN2, CAN3 représentent ici le candidat 1, le candidat 2 et le candidat 3, qui se sont présentés aux élections.
Explication du circuit:
Le circuit de ce projet de machine de vote basé sur FingerPrint est très simple et contient Arduino pour contrôler l'ensemble du processus du projet, un bouton-poussoir pour l'inscription, la suppression, la sélection des identifiants et le but du vote, un buzzer pour l'alerte, des LED pour indication et 16x2 LCD pour instruire Électeur et montrant le résultat aussi. La LED jaune indique que le module d'empreintes digitales est prêt à prendre une image du doigt et la LED verte indique que le système est prêt à voter ou à voir les résultats.
Le bouton poussoir est directement connecté à la broche A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) et A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Résultat) d'Arduino par rapport à la terre. La LED jaune est connectée à la broche numérique D7 d'Arduino par rapport à la terre via une résistance de 1k et la LED verte est connectée à D6 d'Arduino avec la même méthode. Rx et Tx du module d'empreintes digitales directement connectés aux broches série Tx et Rx d'Arduino. L'alimentation 5v est utilisée pour alimenter le module d'empreinte digitale provenant de la carte Arduino. Un buzzer est également connecté à A5. Un écran LCD 16x2 est configuré en mode 4 bits et ses RS, EN, D4, D5, D6 et D7 sont directement connectés à la broche numérique D13, D12, D11, D10, D9 et D8 d'Arduino.
Explication du programme:
Dans un programme, nous avons utilisé la bibliothèque de capteurs d'empreintes digitales Adafruit pour interfacer le module d'empreintes digitales avec la carte Arduino. Vous pouvez vérifier le code complet ci-dessous. Nous expliquons ici les principales fonctions du programme Arduino.
Dans la fonction de configuration, nous avons donné des directions aux broches définies et avons lancé le module LCD et d'empreintes digitales.
Après cela, dans la fonction void loop () , nous avons attendu la touche de vérification et appuyez sur la touche Match pour démarrer l'empreinte digitale pour prendre les entrées et comparer l'identifiant de l'image capturée avec les identifiants stockés. Si une correspondance se produit, passez à l'étape suivante.
boucle vide () {lcd.setCursor (0,0); lcd.print ("Appuyez sur la touche Match"); lcd.setCursor (0,1); lcd.print ("pour démarrer le système"); digitalWrite (indVote, LOW); digitalWrite (indFinger, LOW); if (digitalRead (match) == 0) {digitalWrite (buzzer, HIGH); retard (200); digitalWrite (buzzer, LOW); digitalWrite (indFinger, HIGH); pour (int i = 0; i <3; i ++)…………………
La fonction void checkKeys () est utilisée pour vérifier que la touche Enroll ou DEL est enfoncée ou non et que faire si elle est enfoncée. Si la touche INSCRIPTION appuyée, la fonction Enroll () est appelée et la touche DEL pressée, la fonction delete () est appelée.
void checkKeys () {if (digitalRead (inscrit) == 0) {lcd.clear (); lcd.print ("Veuillez patienter"); retard (1000); while (digitalRead (enrôler) == 0); Inscrire(); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Veuillez patienter"); retard (1000); delet (); }}
La fonction donnée est utilisée pour entrer l'ID à supprimer et appeler la fonction uint8_t deleteFingerprint (uint8_t id) qui supprimera le doigt des enregistrements.
void delet () {int count = 0; lcd.clear (); lcd.print ("Supprimer le doigt"); lcd.setCursor (0,1); lcd.print ("Emplacement:"); while (1) {lcd.setCursor (9,1); lcd.print (nombre); if (digitalRead (up) == 0) {count ++; si (compte> 25) compte = 0; retard (500); }……………….
La fonction donnée est utilisée pour supprimer l'empreinte digitale de l'enregistrement de l'ID sélectionné.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Veuillez patienter"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("Supprimé!"); lcd.clear (); lcd.print ("Figer Supprimé"); lcd.setCursor (0,1); lcd.print ("Avec succès"); retard (1000); } else {Serial.print ("Quelque chose ne va pas"); lcd.clear (); lcd.print ("Quelque chose ne va pas"); lcd.setCursor (0,1); lcd.print ("Réessayer plus tard"); retard (2000); retour p; }}
La fonction donnée est utilisée pour prendre une image d'empreinte digitale et la convertir dans le modèle et l'enregistrer par ID sélectionné dans la mémoire du module d'empreinte digitale.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("identification du doigt:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Placer le doigt"); retard (2000); while (p! = FINGERPRINT_OK) {p = finger.getImage ();…………………
La fonction donnée est utilisée pour le vote et l'affichage des résultats:
Void Vote () {lcd.clear (); lcd.print ("Veuillez placer"); lcd.setCursor (0,1); lcd.print ("Votre vote"); digitalWrite (indVote, HIGH); digitalWrite (indFinger, LOW); digitalWrite (buzzer, HIGH); retard (500); digitalWrite (buzzer, LOW); retard (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Vérifiez le code complet et la vidéo de démonstration ci-dessous.