RFID Security System
This project was to design an RFID based security system for accessing OSU Robotics Club lab spaces and equipment. While you might think it was designed to work with the RFID implant I have that I’ve talked about elsewhere on the site, this project was actually completed before I had mine implanted. This project happens to be RFID because all OSU student ID cards are combination magnetic strip and RFID. That meant we could just keep a list of all our members instead of giving out a code to the lab space’s key box, where a key could potentially get stolen by anyone with the code. At least with this system, we’d have a log of who last used it before a key potentially disappeared. Plus, we’re a robotics club. Why not do cool stuff like this?!
Due to the timing of when I was supposed to be working on this project being highly inconvenient, I designed a circuit and sent it off to my friend Nick McComb who did the PCB layout this time. It uses a particle photon (WiFi enabled micro-controller), a relay, some power regulation, and a serial LCD. For one installation, we retrofitted a gun safe to open when the user scanned to reveal a key. In another location, the PCB activates an electronic door strike so the door can simply be pushed open. While it took at lot of initial work to make this system reliable, I’m happy to report that the system has been in daily use for quite a while now and works incredibly well!
While I can’t show the code I wrote to make this system work as it’d give away critical information that could be used to bypass the security features, I can still describe at a high level what the system does. First, a user scans their card on the reader. The micro makes a request to a middleman page on the club’s server that does the necessary communications with a google app script I wrote. Without the middleman, the photon A) can’t follow the redirects that Google uses and B) is very slow due to having to use HTTPS libraries. The middleman script queries the app script which takes the card number and location ID and compares them to the club’s membership lists which are simple google drive spreadsheets. A column for each location ID determines whether the user has access. Then, depending on whether the user is a member and whether they have access, a response is sent to the photon. If the user has access, the open command is triggered an either opens the door or the gun safe.
This was a fun, albeit initially irksome project to work on as the nuances of interfacing the micro with something as secure as a google server was not trivial. You can find more information about the PCB that was made HERE on Nick’s website.