Considering that the attendance has a major role in the industry - where it impacts directly the employer-employee relationship - and in the education system - where it impacts directly or indirectly the grade of a student - an automatized system is preferable to a classical one in which every employee/student writes its name on a piece of paper. Therefore, the system proposed in this project and inspired from another similar projects available online comes to address this matter. In order to create this automatized system, another question raised: Which method has the smallest possibility of fraud? The answer was that a system based on biometric authentication is the most fraudless and because of that this project it is based upon the user fingerprint to introduce the attendance in a spreadsheet.
The software that makes this hardware to behave like it is desired has three main sections:
To define the fingerprint module a Hardware Serial from the library with the same name was used, WiFi.h was used to take care of the connection of the board to WiFi, while the Adafruit_Fingerprint.h and Adafruit_SSD1306.h were used for the fingerprint module and display. This libraries took care of the UART and I2C communications between the sensors and the dev board. To be able to launch the HTTP Request that triggers the Google Script the HTTPClient.h library was used.
The project intends to solve the problem that appears when the attendance can be altered and fraudulent - some people writing names in attendance for other people and so on. The use of the fingerprint modules, that represents a type of biometric authentication, try to address this problem and increase the level of security to 5, on a scale of 1 to 5. Also the project respects the privacy of the attendants because in the Google Spreadsheet stores only an ID that is known only by the attendant and the admin. From my point of view it was an interesting and challenging project that with some more improvements can become an interesting method to get the attendance for courses/labs or work. It was a way to learn how to use MCUs like ESP32 in do-it-yourself IoT projects and to see what are the advantages and the disadvantages (the one that challenged me the most was the fact that ADC pins cannot be used at the same time with WiFi on my ESP32 dev board).