GKP Attendance System
At the English school I taught at in Tokyo, we needed an attendance system to record when the kids arrived which would email the parents automatically. Instead of an expensive commercial system I offered to make it. I used an Arduino Ethernet with an RFID reader, programmed to read RFID cards and log the attendance into a database, using a student number to call a parent's email address, which the script would email to say the student arrived safely.
I started with getting the Arduino to cooperate with the RFID reader, which was easy enough, but the status lights were reversed (red = success, green = idle) for some bizarre reason on the reader. This meant I had to add (brighter) LEDs to the system to correct the problem and give users the correct feedback. After getting the RFID functionality down, I worked on the internet connectivity and scripting. Setting up the database was easy, as was the system for managing student and parent records. Getting the Arduino communicating with the server was easy, especially with a stable Ethernet connection.
After setting up the reader in the school inside a plastic box (so it looked nice and clean), I noticed kids couldn't really figure out where to touch their card, or for how long they should touch it, meaning a few double emails were getting sent. I refined the code to stop these double readings (a challenge because of the way the charbuffers work in the Arduino code) and added a sign on where to touch exactly. After that there were only small issues to fix.
It will be hard for me to maintain the system from Australia, but anything I can't do through the web, I should be able to do though sending a new system (if I need to). Future improvements will be soldering all the connections permanently, and maybe using Wifi to connect instead of an Ethernet connection. I have a big problem with IoT and Wifi connections, because of the security and the initial setup difficulty. Until the chips have a truly safe option, I will have to work out a way to idiot-proof (no offence) the set up process.
I worked with Arduino and other electronics a lot in this project, and it was my first time making an internet connected device. I also used PHP for purely scripting purposes for the first time too.