FINGER.ino 2.2 KB

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