Held Captive By Arduino And Multiple RFID Readers

If you’re the kind of person who has friends, and/or leaves the confines of the basement from time to time, we hear that these “Escape Rooms” are all the rage. Basically you get locked into a room with a couple other people and have to solve various problems and puzzles until you’ve finally made enough progress that they let you out. Which actually sounds a lot like the working conditions here at Hackaday HQ, except they occasionally slip some pizza rolls under the door for us which is nice.

Whichever side you find yourself on in one of these lighthearted hostage situations, knowledge of this multi-tag RFID lock created by [Annaane] may come in handy. By connecting multiple MFRC522 RFID readers to an Arduino Uno, she’s come up with a method of triggering a device (like an electronic door lock) only when the appropriate combination of RFID tags have been arranged. With a little imagination, this allows for some very complex puzzle scenarios which are sure to keep your prisoners enthralled until you can lower the lotion down to them.

Her code allows you to configure the type and number of RFID cards required to trigger one of the Arduino’s digital pins, which usually would be connected to a relay to fire off whatever device you want. The Arduino sketch is also setup to give “hints” to the player by way of a status LED: fast blinking let’s you know the tag scanned is wrong, and slow blinking means you don’t have enough scanned in yet.

The video after the break shows some highlights of the build, as well as a quick demonstration of how both the RFID “combination” and manual override can be used to trigger the attached relay.

Hackers do love RFID. Using them for physical access control is a fairly common project around these parts, and we’ve even seen similar setups for the digital realm.

18 thoughts on “Held Captive By Arduino And Multiple RFID Readers

  1. I always thought it would be cool to have an escape room where they give you a textbook on some obscure subject, and the textbook would come in handy solving the puzzles, kind of like speed study!

  2. There is an escape room out near where I live that I am fairly certain uses this RFID tag method for a few of their puzzles. The escape room in question has quite a lot of electronically activated puzzles and is a lot of fun.

  3. :-D I’m the owner of an escape room in Germany and we’re also having one riddle with four RFID-readers hooked to an Arduino Mega. It’s a variation of the Master Mind Game where you have to put the right item in the right box, the output is an analog gauge.
    The communication works via ethernet over mqtt protocol, the logic of the whole system is browser based (paho client + java script).
    We had great difficulties to get the system stable – timing ist quite a thing with these cheap readers – one works fine, three tend to make trouble, four plus an ethernet shield … ugh. And even if all the readers ordered from ali express look nearly the same – there are great differences in reliability. Funny thing is, there seems no obvious correlation between price and quality.
    To increase the possible distance between card & reader, we ended up with RFID-readers that were a litte more expensive but have an external antenna. But still: our riddle sometimes has good days and sometimes doesn’t.


    These readers are not 5v tolerant. This project shows the readers being powered by the 3.3v pin, however the SPI pins on an UNO (and pretty much any 5v microcontroller for that matter) also run on 5v.

    Yes it may work for a while, but you will start encounter inconsistancies in readings, and sensor registration, the longer you use 5v signals. Eventually, the reader will die.

    The simple addition of a logic converter will save you a lot of pain and confusion: https://www.sparkfun.com/products/12009. The ones linked are 4 channel, so you would need 2 for this circuit (SDA, SCK, MOSI, MISO & RST).

    Other than that this is a great project, many thanks to @tomnardi

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.