Clear a weekend and a bench, and here is the shopping list: an ESP32-WROOM-32E, a DFRobot dual-camera palm-vein module, a 5V relay board, a 12V solenoid lock, a 0.96-inch I2C OLED, and a separate barrel jack for the 12V rail. Sachin Soni of Techiesms put that exact stack on one custom PCB and ended up with a door lock that reads the veins inside your hand.
What the build actually does
Fingerprint readers get fooled by lifted prints. Face unlock gets fooled by a good photo. Palm-vein scanning sits in a harder category, because the pattern it reads is under your skin. The module floods your palm with near-infrared light at roughly 940nm. Haemoglobin in the veins swallows that wavelength while surrounding tissue bounces it back, so the camera sees a dark vein map against a bright background. Copying that pattern means imaging someone’s palm without them noticing, which is a much taller order than dusting a doorknob for prints.
Wiring and firmware notes
The DFRobot sensor carries its own SoC, so the ESP32 never touches raw image data. Enrolment and matching both happen on the module, and only the verdict travels to the ESP32 over UART as a short serial message. On the ESP32 side that is two GPIO pins for RX and TX on a second hardware UART, plus SDA and SCL on GPIO 21 and 22 for the OLED at I2C address 0x3C. Watch your levels here: the ESP32 is a 3.3V part, so a 5V relay board wants an opto-isolated input or a small transistor to drive the coil. Keep the 12V solenoid on its own supply and share only ground. Skip that and the inrush current when the plunger fires will brown out the microcontroller in the middle of a match.
Where it stays honest
The biometrics hold up better than the enclosure will. Anyone who reaches the PCB can jump the relay contacts and walk straight in, and anyone who reaches the sensor cable can replay the approved byte on the UART line. Mount the board on the secure side of the door, run the sensor lead through a sealed grommet, and checksum the serial messages if you want the firmware half to match the hardware half. Soni’s full walkthrough and PCB files are on Hackster.io. Bench-test the whole chain on a loose solenoid before you cut a single hole in a real door.
Frequently Asked Questions
How does the palm scanner actually read your veins?
The module shines near-infrared light at around 940nm onto your palm. Haemoglobin in the veins absorbs that wavelength while the surrounding tissue reflects it, so the camera captures a dark vein pattern against a bright background. That pattern sits under the skin, which makes it far harder to copy than a fingerprint.
What parts do I need and how does the ESP32 talk to the sensor?
An ESP32-WROOM-32E, a DFRobot dual-camera palm-vein module, a 5V opto-isolated relay board, a 12V solenoid lock and a 0.96-inch I2C OLED. The sensor has its own SoC and does the matching itself, then sends the result to the ESP32 over UART on two GPIO pins. Keep the 12V solenoid on a separate supply sharing only ground.
What will I learn if I build this?
You practise UART and I2C on the same microcontroller, level-shifting between 3.3V logic and a 5V relay, and driving an inductive load without browning out your board. On the software side you handle serial message parsing and simple integrity checks. It also doubles as a solid thesis or capstone demo, since you can discuss real attack surfaces like relay jumping and UART replay rather than just showing a working lock.
