Smart Attendance is a system that helps lecturers checking attendance at classes.
One day I thought that there could be a better way to check attendance than to read every name from a list and wait for students response.
Smart Attendance is based on STM32F407VG/STM32F4DISCOVERY (main operation), RC522 RFID cards reader (reading cards' ID), ESP8266 (network connection) and SD card reader (reading network and classroom configuration).
The project uses Flask-based HTTP server to forward read id from STM32F4 to database.
The program for STM32F4 is written in C/C++, built with GCC/G++ compilers and downloaded via OpenOCD.
Base code for STM32F4 was generated by STM32CubeMX (version 5.1).
We were using JetBrains CLion IDE for programming. The 2019 version of CLion or plugin (for older versions) is required.
HTTP server is Flask-based. It was programmed for Python 3.0 with JetBrains PyCharm. It uses database (Microsoft SQL Server) to store data.
To run our app you need to download latest release version (current is 1.0), have Python 3.0 installed with all dependencies (look into main.py script file) and use STM32 ST-Link utility to download software to the board (use .hex file fo this).
Before being able to use your device, you have to prepare configuration file (CONFIG.INI) with structure as below.
{
"USB_SERIAL" : true,
"SERVER" : { "TYPE" : "TCP", "ADDRESS" : "192.168.0.1", "PORT" : 80 },
"NETWORKS" : [
{"SSID" : "first_network" , "PASSWD" : "first_password" },
{"SSID" : "secnd_network" , "PASSWD" : "secnd_password" }
],
"CID" : classroom_id,
"ROOM" : "room_name"
}
The main purpose was to build card reader that would be very easy to use. Students just have to put their ELS close to the reader and that is it. Users are also given with 4 led indicators to inform about its state:
- green -> ready to use
- orange -> waiting for cards
- blue -> id on card is read and sent to the database
- red -> network configuration failed (need to restart)
Remember that device setup takes few seconds to finish.
- better SD cards reader
- handling real students' card
- better packing
- LCD screen to display states etc
- improve power usage (the device is always on)
Project is based on MIT license. Check LICENSE file for further details.