Our space has been equipped with an RFID-based door system since the beginning. It has worked well, but when we got the laser cutter, it was necessary to restrict access to the cutter to members who had received training. At first, the laser cutter had its own simple ‘database’, but it soon became inefficient to maintain two separate fdsfsystems. Also, the door system was not integrated with the member database, so we actually had three different databases that had to be maintained.
So we started talking about making a new system, and after extended discussion we actually started to code. The center of the system ia a backend, written in Rails. The backend provides a web interface for administration, and a REST interface for use by the various peripherals – called ‘machines’.
The primary ‘machine’ is the card reader located at the door. It uses the REST API to determine if the card is associated with a user who has access to the space.
In the same way, a number of other machines (lathe, mill, CNC router, 3-D printers) are equipped with a box containing an RFID reader, a relay, and an ESP8266. The ESP8266 connects to the backend over WiFi. For most of the machines, the power is only on as long as the card is inserted into the reader, but for the 3-D printers, the card can be removed once the print is started (the box measures current consumption of the printer, and shuts off once the print is done and the printer has cooled down).
The backend runs on a Cubieboard (an SBC based on an Allwinner ARM core, with on board SATA) with an SDD for storage. The connection between backend and the door ‘machine’ is USB, so you can open the door as long as there’s power, even if internet access should be down.
The backend is placed near the door and has a display and two buttons; the green one unlocks the door for fifteen minutes, and the red one locks the door.