Accueil > ARDUINO > Capteurs > Capteur biométrique d’empreintes digitales GT511C1

Capteur biométrique d’empreintes digitales GT511C1

mercredi 16 décembre 2015, par thebault

Présentation.

Ce capteur biométrique permet de mémoriser 20 empreintes auxquelles sont associées un numéro d’identification (id).

La communication se fait par liaison série UART. Pour le mettre en oeuvre, on utilisera la bibliothèque SoftwareSerial (https://www.arduino.cc/en/Reference/SoftwareSerial) et la bibliothèque FPS_GT511C3.h )

Pour utiliser la bibliothèque, il faut installer les fichiers FPS_GT511C3.cpp et FPS_GT511C3.h dans le répertoire ..Arduino/Library/FPS_GT511C3 (le dernier répertoire est à créer)

Branchements

Le capteur nécessite une alimentation de 3,3V à 6V. Il sera donc alimenté entre +5V et GND de la carte Leonardo.
Par contre, pour la communication, le capteur travail en 0V-3,3V alors que la carte Arduino communique en 0V - 5V :
- dans le sens capteur Tx -> Arduino Rx, pas besoin d’adapter la tension car la carte Arduino lit 3,3V comme un niveau logique 1,
- dans le sens Arduino Tx -> Capteur Rx, on passera par un pont diviseur de tension qui permet d’abaisser le 5V en sortie de la carte Arduino à 3,3V.

calcul du pont diviseur de tension :
3,3=5*R1/(R1+R2), donc on peut choisir R1=2,2K et R2=1k

D’après la documentation sur la bibliothèque SoftwareSerial, on peut utiliser les broches 11 (Rx) et 12 (Tx).

Les programmes Arduino


Tester le branchement et faire clignoter la led du capteur.

Mise en oeuvre :
- téléverser le programme dans la carte,
- débrancher et rebrancher la carte Arduino (problème de fonctionnement si l’on ne fait pas cela),
- ouvrir le moniteur série ("outil -> moniteur série" ou loupe en haut à droite de l’interface),

JPEG - 89 ko
  1. /*
  2.   FPS_Enroll.ino - Library example for controlling the GT-511C3 Finger Print Scanner (FPS)
  3.   Created by Josh Hawley, July 23rd 2013
  4.   Licensed for non-commercial use, must include this license message
  5.   basically, Feel free to hack away at it, but just give me credit for my work =)
  6.   TLDR; Wil Wheaton's Law
  7.  
  8.   This simple sketch turns the LED on and off similar to the Arduino blink sketch.
  9.   It is used to show that communications are working.
  10.  */
  11.  
  12. #include "FPS_GT511C3.h"
  13. #include "SoftwareSerial.h"
  14.  
  15. FPS_GT511C3 fps(11,12);
  16.  
  17. void setup()
  18. {
  19. Serial.begin(9600);
  20. while (!Serial) { // attend l'ouverture du terminal série (nécessaire pour cartes LEONARDO
  21. }
  22. fps.UseSerialDebug = true; // active le debugage
  23. fps.Open();
  24. }
  25.  
  26. void loop()
  27. {
  28. // FPS Blink LED Test
  29. fps.SetLED(true); // turn on the LED inside the fps
  30. Serial.println("led");
  31. delay(1000);
  32. fps.SetLED(false);// turn off the LED inside the fps
  33. delay(1000);
  34. }

Télécharger


Enregistrer une empreinte dans la mémoire du capteur

- téléverser le programme dans la carte,
- débrancher et rebrancher la carte Arduino (problème de fonctionnement si l’on ne fait pas cela),
- ouvrir le moniteur série ("outil -> moniteur série" ou loupe en haut à droite de l’interface),

  1. /*
  2.   FPS_Enroll.ino - Library example for controlling the GT-511C3 Finger Print Scanner (FPS)
  3.   Created by Josh Hawley, July 23rd 2013
  4.   Licensed for non-commercial use, must include this license message
  5.   basically, Feel free to hack away at it, but just give me credit for my work =)
  6.   TLDR; Wil Wheaton's Law
  7.  */
  8.  
  9.  
  10. #include "FPS_GT511C3.h"
  11.  
  12. FPS_GT511C3 fps(11,12);
  13.  
  14. void setup()
  15. {
  16. Serial.begin(9600);
  17. while (!Serial) {// attend l'ouverture du terminal série (nécessaire pour cartes LEONARDO
  18. }
  19. delay(100);
  20. fps.Open();
  21. fps.SetLED(true);
  22. }
  23.  
  24.  
  25. void Enroll()
  26. {
  27. // Enroll test
  28.  
  29. // find open enroll id
  30. int enrollid = 0;
  31. bool usedid = true;
  32. while (usedid == true)
  33. {
  34. usedid = fps.CheckEnrolled(enrollid);
  35. if (usedid==true) enrollid++;
  36. }
  37. fps.EnrollStart(enrollid);
  38.  
  39. // enroll
  40. Serial.print("Press finger to Enroll #");
  41. Serial.println(enrollid);
  42. while(fps.IsPressFinger() == false) delay(100);
  43. bool bret = fps.CaptureFinger(true);
  44. int iret = 0;
  45. if (bret != false)
  46. {
  47. Serial.println("Remove finger");
  48. fps.Enroll1();
  49. while(fps.IsPressFinger() == true) delay(100);
  50. Serial.println("Press same finger again");
  51. while(fps.IsPressFinger() == false) delay(100);
  52. bret = fps.CaptureFinger(true);
  53. if (bret != false)
  54. {
  55. Serial.println("Remove finger");
  56. fps.Enroll2();
  57. while(fps.IsPressFinger() == true) delay(100);
  58. Serial.println("Press same finger yet again");
  59. while(fps.IsPressFinger() == false) delay(100);
  60. bret = fps.CaptureFinger(true);
  61. if (bret != false)
  62. {
  63. Serial.println("Remove finger");
  64. iret = fps.Enroll3();
  65. if (iret == 0)
  66. {
  67. Serial.println("Enrolling Successfull");
  68. }
  69. else
  70. {
  71. Serial.print("Enrolling Failed with error code:");
  72. Serial.println(iret);
  73. }
  74. }
  75. else Serial.println("Failed to capture third finger");
  76. }
  77. else Serial.println("Failed to capture second finger");
  78. }
  79. else Serial.println("Failed to capture first finger");
  80. }
  81.  
  82.  
  83. void loop()
  84. {
  85. Enroll();
  86. delay(2000);
  87. }

Télécharger

JPEG - 85.5 ko

tester une empreinte

- téléverser le programme dans la carte,
- débrancher et rebrancher la carte Arduino (problème de fonctionnement si l’on ne fait pas cela),
- ouvrir le moniteur série ("outil -> moniteur série" ou loupe en haut à droite de l’interface),

  1. /*
  2.   FPS_Enroll.ino - Library example for controlling the GT-511C3 Finger Print Scanner (FPS)
  3.   Created by Josh Hawley, July 23rd 2013
  4.   Licensed for non-commercial use, must include this license message
  5.   basically, Feel free to hack away at it, but just give me credit for my work =)
  6.   TLDR; Wil Wheaton's Law
  7.  
  8.   This sketch will attempt to identify a previously enrolled fingerprint.
  9.  */
  10.  
  11. #include "FPS_GT511C3.h"
  12. #include "SoftwareSerial.h"
  13.  
  14. FPS_GT511C3 fps(11,12);
  15.  
  16. void setup()
  17. {
  18. Serial.begin(9600);
  19. while (!Serial) {
  20. }
  21. fps.Open();
  22. delay(500);
  23. fps.SetLED(true);
  24.  
  25. }
  26.  
  27. void loop()
  28. {
  29. if (fps.IsPressFinger())
  30. {
  31. fps.CaptureFinger(false);
  32. int id = fps.Identify1_N();
  33. if (id <20)
  34. {
  35. Serial.print("Id. valide ID:");
  36. Serial.println(id);
  37. }
  38. else
  39. {
  40. Serial.println("Empreinte non valide !");
  41. }
  42. }
  43. else
  44. {
  45. Serial.println("Poser votre doigt.");
  46. }
  47. delay(1000);
  48. }

Télécharger

JPEG - 96.7 ko
SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL