FINGER.ino 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #include <M5Stack.h>
  2. #include "finger.h"
  3. uint8_t userNum; //User number
  4. FingerPrint FP_M;
  5. void CleanScreen()
  6. {
  7. M5.Lcd.setTextColor(WHITE);
  8. M5.Lcd.fillRect(0,50,400,300,BLACK);
  9. M5.Lcd.setCursor(0, 50);
  10. M5.Lcd.setTextSize(2);
  11. userNum = FP_M.fpm_getUserNum();
  12. M5.Lcd.print("userNum:");
  13. M5.Lcd.println(userNum);
  14. }
  15. void setup() {
  16. M5.begin();
  17. M5.Power.begin();
  18. Serial.begin(115200);
  19. Serial2.begin(19200, SERIAL_8N1, 16, 17);
  20. pinMode(5, OUTPUT);
  21. pinMode(26, OUTPUT);
  22. digitalWrite(5, 1);
  23. digitalWrite(26, 1);
  24. M5.Lcd.clear(BLACK);
  25. M5.Lcd.setTextColor(YELLOW);
  26. M5.Lcd.setTextFont(2);
  27. M5.Lcd.setTextSize(3);
  28. M5.Lcd.setCursor(20, 0);
  29. M5.Lcd.println("Finger example");
  30. Serial.printf("Finger example\n");
  31. M5.Lcd.setTextColor(WHITE);
  32. M5.Lcd.fillRect(0,50,400,300,BLACK);
  33. M5.Lcd.setCursor(0, 50);
  34. M5.Lcd.setTextSize(2);
  35. userNum = FP_M.fpm_getUserNum();
  36. M5.Lcd.print("userNum:");
  37. M5.Lcd.println(userNum);
  38. }
  39. //ButtonA: Add user
  40. //ButtonB: Matching
  41. //ButtonC: Delete All User
  42. void loop(){
  43. uint8_t res1;
  44. if(M5.BtnA.wasPressed()){
  45. CleanScreen();
  46. M5.Lcd.println("Fingerprint Typing");
  47. res1 = FP_M.fpm_addUser(userNum,1);
  48. if(res1 == ACK_SUCCESS){
  49. M5.Lcd.println("Success");
  50. }
  51. else if(res1 == ACK_FAIL){
  52. M5.Lcd.println("Fail");
  53. }
  54. else if(res1 == ACK_FULL){
  55. M5.Lcd.println("Full");
  56. }
  57. else{
  58. M5.Lcd.println("Timeout");
  59. }
  60. userNum++;
  61. }
  62. if(M5.BtnB.wasPressed()){
  63. CleanScreen();
  64. M5.Lcd.println("Matching");
  65. res1 = FP_M.fpm_compareFinger();
  66. if(res1 == ACK_SUCCESS){
  67. M5.Lcd.println("Success");
  68. }
  69. if(res1 == ACK_NOUSER){
  70. M5.Lcd.println("No Such User");
  71. }
  72. if(res1 == ACK_TIMEOUT){
  73. M5.Lcd.println("Timeout");
  74. }
  75. }
  76. if(M5.BtnC.wasPressed()){
  77. res1 = FP_M.fpm_deleteAllUser();
  78. CleanScreen();
  79. if(res1 == ACK_SUCCESS){
  80. M5.Lcd.println("Delete All User Successful");
  81. }
  82. else{
  83. M5.Lcd.println("Delete All User Failed");
  84. }
  85. }
  86. M5.update();
  87. }