- Composants requis
- Description du projet:
- Module FingerPrint:
- Fonctionnement du système de présence basé sur les empreintes digitales
- Schéma de circuit et description du projet de système de présence d'empreintes digitales
- Explication du code:
Les systèmes de fréquentation sont des systèmes couramment utilisés pour marquer la présence dans les bureaux et les écoles. Du marquage manuel de la présence dans les registres de présence à l'utilisation d'applications de haute technologie et de systèmes biométriques, ces systèmes se sont considérablement améliorés. Dans nos projets précédents, nous avons couvert quelques autres projets de systèmes de présences électroniques utilisant un microcontrôleur RFID et AVR, 8051 et raspberry Pi. Dans ce projet, nous avons utilisé le module d'empreintes digitales et Arduino pour prendre et conserver les données et les enregistrements de présence. En utilisant un capteur d'empreintes digitales, le système deviendra plus sécurisé pour les utilisateurs. Les sections suivantes expliquent les détails techniques de la création d'un système de présence biométrique basé sur les empreintes digitales à l'aide d'Arduino.
Composants requis
- Arduino -1
- Module d'empreinte digitale -1
- Bouton poussoir - 4
- LED -1
- Résistance 1K -2
- 2.2K résistance -1
- Puissance
- Fils de connexion
- Boîte
- Buzzer -1
- Écran LCD 16x2 -1
- Planche à pain -1
- Module RTC -1
Description du projet:
Dans ce circuit de système de présence d'empreintes digitales, nous avons utilisé le module de capteur d'empreintes digitalespour authentifier une vraie personne ou un employé en prenant leur saisie du doigt dans le système. Ici, nous utilisons 4 boutons poussoirs pour enregistrer, supprimer, monter / descendre. La touche INSCRIPTION et DEL a trois fonctions. La clé INSCRIPTION est utilisée pour l'inscription d'une nouvelle personne dans le système. Ainsi, lorsque l'utilisateur souhaite enregistrer un nouveau doigt, il doit appuyer sur la touche INSCRIPTION, puis l'écran LCD demande l'ID, où l'utilisateur souhaite stocker l'image d'empreinte digitale. Maintenant, si à ce moment l'utilisateur ne souhaite pas continuer, il peut appuyer à nouveau sur la touche INSCRIPTION pour revenir en arrière. Cette fois, la touche INSCRIPTION se comporte comme la touche Retour, c'est-à-dire que la touche INSCRIPTION a à la fois une fonction d'inscription et une fonction de retour. Outre la clé d'inscription est également utilisée pour télécharger les données de présence sur le moniteur série. De même, la 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'identification du doigt en utilisant deux autres touches, à savoir HAUT et BAS. Maintenant, l'utilisateur doit appuyer sur la touche DEL / OK (cette fois, cette touche se comporte comme OK) pour continuer avec l'ID sélectionné. Et la touche Del est utilisée pour réinitialiser ou supprimer des données de l'EEPROM d'Arduino.
Module FingerPrint:
Le module de capteur d'empreintes digitales capture l'image d'impression du doigt, puis la convertit en modèle équivalent et les enregistre dans sa mémoire selon l'ID sélectionné par Arduino. Tout le processus est commandé par Arduino, comme prendre une image de l'empreinte digitale, la convertir en modèles et la stocker en tant qu'ID, etc.
Système de sécurité basé sur les empreintes digitales
Machine à voter biométrique basée sur les empreintes digitales
Ici, nous avons ajouté une LED jaune qui indique que le module d'empreintes digitales est prêt à prendre une image du doigt. Un buzzer est également utilisé pour diverses indications. Arduino est le composant principal de ce système, il est responsable du contrôle de l'ensemble du système.
Fonctionnement du système de présence basé sur les empreintes digitales
Fonctionnement de ce projet de système de présence d'empreintes digitalesest assez simple. Tout d'abord, l'utilisateur doit enregistrer les empreintes digitales de l'utilisateur à l'aide de boutons poussoirs. Pour ce faire, l'utilisateur doit appuyer sur la touche ENROLL, puis l'écran LCD demande la saisie de l'ID de l'empreinte digitale pour l'enregistrer en mémoire par nom d'ID. Alors maintenant, l'utilisateur doit entrer l'ID en utilisant les touches HAUT / BAS. Après avoir sélectionné l'ID, l'utilisateur doit appuyer sur la touche OK (touche SUPPR). Maintenant, l'écran LCD vous demandera de placer le doigt sur le module d'empreintes digitales. Maintenant, l'utilisateur doit placer son doigt sur le module d'empreinte digitale, puis le module prend l'image du doigt. Maintenant, l'écran LCD dira de retirer le doigt du module d'empreintes digitales, et demandera à nouveau de placer le doigt à nouveau. Maintenant, l'utilisateur doit remettre son doigt et le module prend une image et la convertit en modèles et la stocke par ID sélectionné dans la mémoire du module d'empreintes digitales.Maintenant, l'utilisateur sera enregistré et il / elle peut alimenter la présence en plaçant son doigt sur le module d'empreintes digitales. Par la même méthode, tous les utilisateurs seront enregistrés dans le système.
Maintenant, si l'utilisateur souhaite supprimer ou supprimer l'un des ID ou empreinte digitale stockés, il doit appuyer sur la touche SUPPR. Une fois la touche de suppression enfoncée, l'écran LCD vous demandera de sélectionner l'ID qui doit être supprimé. 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 l'empreinte digitale a été supprimée avec succès.
Fonctionnement de la participation dans ce projet de système de présence d'empreintes digitales:
Chaque fois que l'utilisateur place son doigt sur le module d'empreinte digitale, le module d'empreinte digitale capture l'image du doigt et recherche si un identifiant est associé à cette empreinte digitale dans le système. Si l'ID d'empreinte digitale est détecté, l'écran LCD affichera Présence enregistrée et dans le même temps, le buzzer émettra un bip et la LED s'éteindra jusqu'à ce que le système soit prêt à reprendre les entrées.
En plus du module d'empreintes digitales, nous avons également utilisé un module RTC pour l'heure et la date. L'heure et la date fonctionnent en permanence dans le système. Ainsi, Arduino prend l'heure et la date chaque fois qu'un véritable utilisateur place son doigt sur l'empreinte digitale et les enregistre dans l'EEPROM à l'emplacement alloué de la mémoire.
Ici, nous avons créé 5 espaces utilisateurs dans ce système pendant 30 jours. En appuyant sur le bouton RESET dans Arduino, puis la clé d'inscription immédiate sera responsable du téléchargement des données de présence sur le moniteur série à partir de la mémoire EEPROM Arduino.
Gestion de la mémoire:
Nous avons une mémoire de 1023 octets dans Arduino UNO, dont nous avons 1018 octets pour stocker les données et nous avons pris 5 données de présence des utilisateurs pendant 30 jours. Et chaque présence enregistrera l'heure et la date, ce qui deviendra des données de 7 octets.
La mémoire totale requise est donc
5 * 30 * 7 = 1050 donc ici nous avons besoin de plus de 32 octets
Mais si nous allons utiliser 4 utilisateurs, nous avons besoin
4 * 30 * 7 = 840
Ici, nous avons fait cette démonstration de projet en prenant 5 utilisateurs de mémoire. De ce fait, nous ne pourrons pas stocker 32 octets ou 5 enregistrements de présence du 5 ème utilisateur.
Vous pouvez l'essayer par 4 utilisateurs en modifiant certaines lignes du code. J'ai fait les commentaires dans le code là où les modifications sont nécessaires.
Schéma de circuit et description du projet de système de présence d'empreintes digitales
Le circuit de ce projet de système de présence basé sur les empreintes digitales, comme indiqué dans le diagramme ci-dessus, est assez simple. Il dispose d'Arduino pour contrôler tout le processus du projet, d'un bouton-poussoir pour l'inscription, la suppression, la sélection des identifiants et la participation, un buzzer pour l'alerte, des LED pour l'indication et un écran LCD pour instruire l'utilisateur et afficher les messages résultants.
Comme le montre le schéma de circuit, un bouton-poussoir est directement connecté à la broche A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) d'Arduino par rapport à la terre et la LED jaune est connectée à la broche numérique D7 d'Arduino par rapport à la terre via une résistance de 1k. Rx et Tx du module d'empreintes digitales directement connectés aux broches série D2 et D3 (série logicielle) 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é à la broche A5. Un écran LCD 16x2 est configuré en mode 4 bits et ses RS, EN, D4, D5, D6 et D7 sont directement connectés aux broches numériques D13, D12, D11, D10, D9 et D8 d'Arduino.
Explication du code:
Le code du système de présence d'empreintes digitales pour arduino est donné dans les sections suivantes. Bien que le code soit bien expliqué avec des commentaires, nous discutons ici de quelques parties importantes du code. Nous avons utilisé une bibliothèque d'empreintes digitales pour interfacer le module d' empreintes digitales avec la carte Arduino.
Tout d'abord, nous incluons le fichier d'en-tête et définissons les broches d'entrée et de sortie et définissons la macro et les variables déclarées. Après cela, dans la fonction de configuration, nous donnons la direction à la broche définie et initions le module LCD et d'empreinte digitale
Après cela, nous devons écrire un code pour télécharger les données de présence.
void setup () {delay (1000); lcd.begin (16,2); Serial.begin (9600); pinMode (enrôler, INPUT_PULLUP); pinMode (haut, INPUT_PULLUP); pinMode (bas, INPUT_PULLUP); pinMode (del, INPUT_PULLUP); pinMode (correspondance, INPUT_PULLUP); pinMode (buzzer, OUTPUT); pinMode (indFinger, OUTPUT); digitalWrite (buzzer, LOW); if (digitalRead (enrôler) == 0) {digitalWrite (buzzer, HIGH); retard (500); digitalWrite (buzzer, LOW); lcd.clear (); lcd.print ("Veuillez patienter"); lcd.setCursor (0,1); lcd.print ("Téléchargement de données");
Après cela, nous devons écrire du code pour effacer les données de présence de l'EEPROM.
if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Veuillez patienter"); lcd.setCursor (0,1); lcd.print ("Réinitialisation….."); pour (int i = 1000; i <1005; i ++) EEPROM.write (i, 0); pour (int i = 0; i <841; i ++) EEPROM.write (i, 0xff); lcd.clear (); lcd.print ("Réinitialisation du système"); retard (1000); }
Après cela, nous lançons le module d'empreinte digitale, affichant un message de bienvenue sur l'écran LCD et également le module RTC initié.
Après cela, en fonction de boucle, nous avons lu l'heure RTC et l'avons affichée sur LCD
boucle vide () {maintenant = rtc.now (); lcd.setCursor (0,0); lcd.print ("Heure->"); lcd.print (now.hour (), DEC); lcd.print (':'); lcd.print (now.minute (), DEC); lcd.print (':'); lcd.print (now.second (), DEC); lcd.print (""); lcd.setCursor (0,1); lcd.print ("Date->"); lcd.print (now.day (), DEC); lcd.print ('/'); lcd.print (now.month (), DEC); lcd.print ('/'); lcd.print (now.year (), DEC);
Après cela, attendez que l'empreinte digitale prenne l'entrée et comparez l'ID d'image capturée avec les ID stockés. En cas de correspondance, passez à l'étape suivante. Et vérifier également les clés d'inscription
int result = getFingerprintIDez (); if (résultat> 0) {digitalWrite (indFinger, LOW); digitalWrite (buzzer, HIGH); retard (100); digitalWrite (buzzer, LOW); lcd.clear (); lcd.print ("ID:"); lcd.print (résultat); lcd.setCursor (0,1); lcd.print ("Veuillez patienter…."); retard (1000); présence (résultat); lcd.clear (); lcd.print ("Présence"); lcd.setCursor (0,1); lcd.print ("Enregistré"); retard (1000); digitalWrite (indFinger, HIGH); revenir; }
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.
La fonction void delet () est utilisée pour entrer l'ID à supprimer et appeler la fonction uint8_t deleteFingerprint (uint8_t id) qui supprimera le doigt des enregistrements.
La fonction donnée est utilisée pour prendre une image d'empreinte digitale et la convertir dans le modèle et l'enregistrer également 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 stocker l'heure et la date de présence dans le créneau alloué de l'EEPROM
participation vide (int id) {int user = 0, eepLoc = 0; si (id == 1) {eepLoc = 0; utilisateur = utilisateur1 ++; } sinon si (id == 2) {eepLoc = 210; utilisateur = utilisateur2 ++; } sinon si (id == 3)………….
La fonction donnée est utilisée pour récupérer les données de l'EEPROM et les envoyer au moniteur série
void download (int eepIndex) {if (EEPROM.read (eepIndex)! = 0xff) {Serial.print ("T->"); if (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++)); Serial.print (':'); if (EEPROM.read (eepIndex) <10) Serial.print ('0'); Serial.print (EEPROM.read (eepIndex ++));………….