====== Doorbot ====== The doorbot is responsible for scanning key fobs and unlocking the door for members. The software is written in C++ and runs on an ESP32. It expects to use the Wiegand protocol for reading fobs. It communicates with a server written in Python. Implementation of the system is split up into a few repositories: * https://github.com/bodgery/doorbot-server - The server for the API and management frontend * https://github.com/bodgery/esp32_doorbot - ESP32 firmware, plus a hat for making the connections ===== Building a Doorbot ===== To deploy a doorbot, you will need the following major materials: * RFID reader for 125KHz fobs that outputs the Wiegand protocol (https://www.amazon.com/Waterproof-Wiegand-125KHz-Control-Proximity/dp/B01LWRQMN5) * Electronic strike running at 12V or 24V (https://www.amazon.com/UHPPOTE-Standard-Fail-Secure-Fail-Safe-Adjustable/dp/B00V49S2NI) * A power supply matching your 12V or 24V strike * An ESP32 [TODO: exact model of dev board] * The doorbot hat (see below) * An enclosure (3d printed) [[Howto connect the doorbot|doorbot_connection_howto]] Building the hat is covered elsewhere (TODO make that page) * TODO: RFID reader connections * TODO: Power connection * TODO: Strike connection * TODO: Configure firmware * TODO: Uploading firmware ===== Serial Port Debugging ===== The ESP32 has a USB port, and much useful information is given about the cache status, key reading, etc. There are also a few commands you can send: * check - Check if a keyfob is valid * newcache - Rebuild the cache * open - Open the door * stats - Dump info about this doorbot