|RFID Access System|
|Start Date: 1/12/2012|
The purpose of this project is to build a modular RFID Access System for all of the tools, doors, and vending machines in the Hive.
- Uses the Access Protocol
- Accepts NFC tags and phones with NFC for access and tracking control (our badges run at 125 KHz)
- Central database (Postgres, accessed via HTTP, served by a Perl Catalyst app)
What needs to be done
Main Door RFID
Battery backup somehow?It's PoE and that's on battery backup.
- Have it log temperatures
Annex Door RFID
- Schematic and PCB is on GitHub
- Battery backup somehow?
- Motion sensor so it unlocks when you approach it from the inside.
- Consider switching it to wired for power backup reasons.
- Add in a mechanical key for when the power's out.
Vending Machine RFID
- Get compressor being controlled by the Arduino
- Mount the relay board instead of it being set on a block of wood
- Clean up the wiring
The Snack Vending Machine has been gutted, its coin validator removed, and RFID card mounted to the machine, however, no work has been done to bring that machine to vending status.
Places it'd be nice to have badge readers
- Doors out to annex hallway
- Outside door by the Dumpster
- Certification-only tools
One of the goals of this project is to build a case where cash payments to the hive can be recorded (and membership automatically extended), and cash payments can be automatically made to the card for the purposes of purchasing sodas.
This project is in the planning phase right now -- however, if you want to help, I would appreciate the time and can provide my guidance for this project.
- The annex uses a WeMos D1 mini.
- The main door uses an Arduino Mega.
Scanner to MCU wiring
- This is correct for the annex door
- The main door needs to have its wiring changed to match.
|Function||Scanner Wire Color||Ethernet cable wire color|
2020 Temporary Rework
Hodapp is working on a makeshift solution for the new space at 2701. Right now this is running from a Raspberry Pi with Alpine Linux, a hacky Python script to interface with intweb, and a C program based on  to communicate with an RFID reader via the Wiegand protocol.
Current connections from RFID reader to Raspberry Pi are as follows:
- Wiegand D0 (green) to BCM 17 *through a resistive divider to ground* (two 1K resistors)
- Wiegand D1 (white) to BCM 18 *through a resistive divider to ground* (likewise two 1K resistors)
- Beeper (purple) to BCM 26
- Grey (LED) unconnected
The resistive divider is because D0 and D1 use 5V, while the Raspberry Pi runs at 3.3V - so they may damage the Pi if used directly. The divider steps this down to a safer 2.5V. Any kind of level shifter that works similarly should be fine here.
The beeper and LED pins do not need a divider. Simply put them on a GPIO pin and bring the pin low to trigger the beeper and the LED.
- Reading RFID cards from badge reader, and producing proper badge number
- Authenticating this badge number for door access with intweb
- Triggering beeper and LED on badge reader.
- Actual door electronics & mechanism!
- A more solid wiring layout, perhaps through some level shifter boards.
- More robust Python code (that won't explode from an errant exception)
- Commandline arguments to the C program (rpi-wiegand-reader) might be nice rather than hard-coding the GPIOs
- Some use for beeper and LED in the code. Note that py3-rpigpio is in the Alpine repositories; this doesn't have to be done in WiringPi.
- A more finalized setup in Alpine Linux - i.e. running the code in OpenRC, enabling the Raspberry Pi's hardware watchdog, and perhaps having some other monitoring on the LAN to ensure that the Pi has not gone offline or crashed.
- A backup of this Linux image someplace that people can find it easily if needed.
- Maybe: a TVS on Wiegand D0 and D1 pins?