// the find
khoapham98/RFID-door-lock
STM32 door lock with RFID access and SMS alerts via Twilio
A hobbyist STM32F411 door lock that authenticates RFID cards over SPI, drives a servo latch, shows status on a small OLED, and pushes SMS alerts through an ESP8266 co-processor talking to Twilio over UART. It's aimed at makers who want a buildable access-control demo with real notifications, not at anyone needing an actual secure lock.
Wiring is documented down to exact GPIO pins per peripheral (SPI for the RC522, I2C for the OLED, PWM for the servo), which is more useful than the usual 'see the diagram' hand-wave in similar projects. Splitting the design across two MCUs — STM32 owns the lock/RFID logic, ESP8266 owns WiFi and the Twilio HTTP calls — keeps a TLS/HTTP stack off the same chip that's driving the physical latch. The ESP8266 side is a proper PlatformIO project with the Twilio client pulled in as a library under lib/, not an Arduino sketch with everything pasted into one file. Three modes (access/enroll/remove) mapped onto press-and-hold/single-click/double-click on one button is a reasonable amount of UX for a project with a single input device.
MFRC522/RC522 access control here is UID-only — no mention of using MIFARE's encrypted sectors or any challenge-response, so the 'access control' is defeated by a cheap UID-cloning reader in seconds. Enroll and remove are both single-button gestures (single vs. double click) with no confirmation step shown beyond an OLED message, so a mis-timed double click on the next card scanned silently revokes someone's access with no log or undo. Debug build output (.o, .d, .su, .cyclo, the .elf/.bin/.map) is committed straight into Debug/ instead of gitignored, which bloats the repo and means there's no guarantee the checked-in binary matches the current source. There's no mention anywhere of how enrolled UIDs persist across power loss — if they're only held in RAM, every registered card has to be re-enrolled after a reset, which is a bad failure mode for something guarding a door.