3D model description
Some weeks ago I left myself locked out home (I forgot keys inside). Spare key in a flower vase (LOL) isn't a good idea, of course, so I decided to design a multifunction door opener, RFID and keyboard, to avoid happening it again.
The keyfob is useful to open door with busy hands.
The thin box at case top is for holding business cards, messages to the postman and whatever.
How it works
Video available at Youtube
A couple of things to say you...
- in CODES.RAR you'll find the .ino code and Wiegand libraries I use
- Using key fob with present code you must present it three times in 20"; modify these at your choice in .ino, changing 'sumFob=(fobx+fobx+fobx)' and 'double max_time_since_first_button=20000'. This is a first approach to make trouble to electronic RFID crackers around
- Pwd length now is 8 chars, but you can easily change it in 'lenPass=8'
- User 1 and User 2 are allowed to change their password, User 3 is not
- To register and save new fobs you've to:
know your fobs embedded code
compile and run 'WiegandTest.ino' from library examples
open Arduino IDE serial monitor, present fob and write down somewhere its code;
repeat as needed
write down codes and pwd in 'CODES' section
/-------------------------------CODES---------------------------------------/
// PWD
String password1="12345678"; //Variable to remember user1 password
String pass1=""; // leave blank
boolean changepass1=false;
String password2="87654321"; //Variable to remember user2 password
String pass2=""; // leave blank
boolean changepass2=false;
String password3="31313131"; //Variable to remember User3 password
String pass3=""; // leave blank
// FOB
String fobkey1="1666333111"; //Variable to remember user1 fob code
String fob1=""; // leave blank
String fobkey2="1666333112"; //Variable to remember user2 fob code
String fob2=""; // leave blank
String fobkey3="1666333113"; //Variable to remember User3 card code
String fob3=""; // leave blank
uncomment
// write_StringEE(1, password1); //Write string starting at address 1
// delay(100);
// write_StringEE(11, fobkey1); //Write string starting at address 11
// delay(100);
// write_StringEE(21, password2); //Write string starting at address 21
// delay(100);
// write_StringEE(31, fobkey2); //Write string starting at address 31
// delay(100);
// write_StringEE(41, password3); //Write string starting at address 41
// delay(100);
// write_StringEE(51, fobkey3); //Write string starting at address 51
// delay(100);
compile and run once
comment newly lines above, compile and run
Layout
RFID reader -----> Arduino
Red 12VDC +
Black 12VDC -
Green ----------------- 2
White ----------------- 3
Grey ------------------- 6
Purple ----------------- 7
LCD2004
VCC ------------------- 5V
GND ------------------- GND
SDA ------------------- A5
SCL ------------------- A4
BOM
- n. 1 Arduino UNO, see Aliexpress
- n. 1 LCD 2004 I2c, see Aliexpress
- n. 1 RFID Wiegand reader + keyboard, see Aliexpress
- n. 1 or more keyfob, see Aliexpress
- n. 1 Relay module 5VDC, see Aliexpress
- n. 1 power supply 12VDC for reader
- n. 1 power supply 5VDC for Arduino or 12V/5V stepdown converter
- n. 6 M3x15mm screws
- n. 6 M3 knurled brass nuts