Skip to content

PUT-PTM/2019_SmartAttendance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Attendance

Overview

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.

Tools

STM32F4

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.

Links:

Server

HTTP server is Flask-based. It was programmed for Python 3.0 with JetBrains PyCharm. It uses database (Microsoft SQL Server) to store data.

How to run

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"
}

Manual

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.

Future improvements

  • better SD cards reader
  • handling real students' card
  • better packing
  • LCD screen to display states etc
  • improve power usage (the device is always on)

Attributions

License

Project is based on MIT license. Check LICENSE file for further details.

Credits

Piotr Kwiatkowski (kwitnoncy)
Tomasz Kiljańczyk (Gunock)