FINGER_FPC1020A.ino 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. M5.Lcd.clear(BLACK);
  21. M5.Lcd.setTextColor(YELLOW);
  22. M5.Lcd.setTextFont(2);
  23. M5.Lcd.setTextSize(3);
  24. M5.Lcd.setCursor(20, 0);
  25. M5.Lcd.println("Finger example");
  26. Serial.printf("Finger example\n");
  27. M5.Lcd.setTextColor(WHITE);
  28. M5.Lcd.fillRect(0,50,400,300,BLACK);
  29. M5.Lcd.setCursor(0, 50);
  30. M5.Lcd.setTextSize(2);
  31. userNum = FP_M.fpm_getUserNum();
  32. M5.Lcd.print("userNum:");
  33. M5.Lcd.println(userNum);
  34. }
  35. //ButtonA: Add user
  36. //ButtonB: Matching
  37. //ButtonC: Delete All User
  38. void loop(){
  39. uint8_t res1;
  40. if(M5.BtnA.wasPressed()){
  41. CleanScreen();
  42. M5.Lcd.println("Fingerprint Typing");
  43. res1 = FP_M.fpm_addUser(userNum,1);
  44. if(res1 == ACK_SUCCESS){
  45. M5.Lcd.println("Success");
  46. }
  47. else if(res1 == ACK_FAIL){
  48. M5.Lcd.println("Fail");
  49. }
  50. else if(res1 == ACK_FULL){
  51. M5.Lcd.println("Full");
  52. }
  53. else{
  54. M5.Lcd.println("Timeout");
  55. }
  56. userNum++;
  57. }
  58. if(M5.BtnB.wasPressed()){
  59. CleanScreen();
  60. M5.Lcd.println("Matching");
  61. res1 = FP_M.fpm_compareFinger();
  62. if(res1 == ACK_SUCCESS){
  63. M5.Lcd.println("Success");
  64. }
  65. if(res1 == ACK_NOUSER){
  66. M5.Lcd.println("No Such User");
  67. }
  68. if(res1 == ACK_TIMEOUT){
  69. M5.Lcd.println("Timeout");
  70. }
  71. }
  72. if(M5.BtnC.wasPressed()){
  73. res1 = FP_M.fpm_deleteAllUser();
  74. CleanScreen();
  75. if(res1 == ACK_SUCCESS){
  76. M5.Lcd.println("Delete All User Successful");
  77. }
  78. else{
  79. M5.Lcd.println("Delete All User Failed");
  80. }
  81. }
  82. M5.update();
  83. }