Instructables

DIY Fingerprint Scanning Garage Door Opener

FeaturedContest Winner

As a person without a car, I don't need to carry keys around everywhere I go. Because of this, I've been locked out of my own house several times. It's a pain to wait for someone with a key, so I thought I would do something about it.

This project is my way of solving this problem, while getting the chance to interface with an awesome fingerprint scanner (aka: FPS).

Also, this module isn't restricted to just garage doors, for you can create different kinds of simple motorized locks to suit your needs.

 
Remove these adsRemove these ads by Signing Up

Step 1: Materials

Picture of Materials
53a2e8f2ec8d83ae9d000051.jpg

Electronics:

Part Supplier (pictures are clickable!)
Fingerprint scanner (and JST connector) Sparkfun Sparkfun
Serial LCD kit (w/ATmega328)Sparkfun
ATtiny85Sparkfun
PNP transistor Sparkfun Radioshack
BuzzerSparkfun Radioshack
Speaker wireRadioshack
3D printed caseSee step 9 for files
Copper tapeSparkfunAmazon
5V voltage regulatorSparkfunRadioshack
9V batterySparkfunRadioshack
9V battery connector SparkfunRadioshack
SPDT limit switch
SparkfunRadioshack

Here is a list of almost all of the parts (It's a Sparkfun wishlist).

Tools:

  • Soldering iron/solder
  • Electrical tape
  • Hook up wire/ jumpers
  • Wire cutter/stripper
  • Perfboard
  • Assorted resistors
  • Screws
  • Drill
  • A few LEDs for testing
  • 5V FTDI board (Sparkfun)
  • Hot glue gun
  • Access to a 3D printer
  • Optional: IC holder (8 pin for ATtiny and 28 pin for ATmega)
  • Optional: Another Arduino board/10uF capacitor (see step 5 for details)
1-40 of 123Next »
moomooman010 hours ago

This was a great project..

I was trying to make it so that only user 0, could add other users to the data base.

could i add a line in prior to the while(true); with something like..

if verify(0);

while(true);

else if

beep();

Im defiantly not a great at code:

maybe there is an better way , thanks again so much really enjoyed this project a lot..

marios85435 days ago

Hi nodcah, Great ible dude. Can I use an arduino uno and an lcd shield instead of this serial lcd ? I mead an arduino is more easy to program instead of this serial lcd because it does not need an external ftdi breakout board. Thanks

nodcah (author)  marios85435 days ago

It depends what kind of shield. The coding might need to be changed if it uses I2C like the Adafruit one. Reply back with a link to the shield you have and I'll let you know. =)

You can also use a smaller Arduino board (Arduino Micro, mini, etc.) and an LCD.

Hi nodcah, I'm sending you the link to my lcd shield. If it needs recoding can you send me the code? Thats the link: http://goo.gl/eBtRhe

P.S: I'm not really good at reading these kind of schematics so can you send me the same schematics but on a breadboard so i can open it with fritzing

Many thanks nodcah.

nodcah (author)  marios85433 days ago

Hmmm... this shield uses I2C, which will need a few changes in the code. One of the changes was adding this library.

Code and Fritzing files below.

Note: I haven't had a chance to test the code, so let me know if it works. Also, be sure to ask if you have any more questions! =D

fps_schem.jpg
nodcah (author)  nodcah3 days ago

Whoops! The 220ohm resistor is actually supposed to be a 1kohm. Here is the updated stuff:

fps_schem.jpg

Hi nodcah, I'm sending you the link to my lcd shield. If it needs recoding can you send me the code? Thats the link: http://goo.gl/eBtRhe

P.S: I'm not really good at reading these kind of schematics so can you send me the same schematics but on a breadboard so i can open it with fritzing

Many thanks nodcah.

riicardoo5 days ago

Hi nodcah, what about how to delete a fingerprint that is already registered? which is the command? I would greatly appreciate your response

nodcah (author)  riicardoo4 days ago

The command is fps.DeleteID(idToBeDeleted). fps is the object and idToBeDeleted is the ID of the fingerprint you want deleted.

In my code, you will be prompted before overwriting a fingerprint, then it will be deleted/rewritten to.

if(fps.CheckEnrolled(enrollid)){

lcd.clear();

lcd.print(" Warning! ID #");

lcd.print(enrollid);

lcd.setCursor(0,1);

lcd.print(" has data. OK? ");



waitForFinger(); //waits for the fps to be pressed



fps.DeleteID(enrollid); //delete data

delay(100);

}
brmarcum6 days ago
How long does the scanner take to register a print? I just got mine in the mail and I'm planning on using it where speed of accessibility is a concern
nodcah (author)  brmarcum5 days ago

The datasheet says it takes less than 1.5 seconds. Through my experience, it seemed to take around half a second or less. I believe this also depends on how many fingerprints are stored on the device (less fingerprints = more speed) :-)

Yeah, datasheets aren't always real world though. That's a good point. I imagine sorting out 200 prints could take some time. Thanks.

hi im doing eee can i do it easily and i want to knw how much this whole set costs

nodcah (author)  thivakarsivan5 days ago

Around $70. Here is a list with prices.

ijako97 days ago

So If i'm understanding this correctly you could essentially program with just using the Arduino board instead of the ATtiny85 chip is that right?

nodcah (author)  ijako95 days ago

You could replace the ATtiny85 with an Arduino board and it would work fine!

But, if you only want to use the ATmega328 on the Serial LCD Kit, you would need to protect it well. =D

whunckler15 days ago

Very cool, I'm in the process of building a version of this right now! How did you go about controlling a servo with the ATtiny85? I'm having trouble getting the a servo library onto the chip. Did you have to manually code the pulses?

nodcah (author)  whunckler14 days ago

Sorry for the confusion, but the ATtiny85 isn't actually controlling anything in the example with the chest; it is simply supplying power (the ATmega328 sends the servo commands). But I was looking into using the Software Servo library as an option for controlling the servo using the ATtiny. Hope that helped! =D

Thanks, I saw that library too. It seems that the first version I'm building will substitute the ATiny85 with an arduino, it's overkill but I can add some extra features as well. I plan to try and have my Phillips Hue lights turn on in my room when I scan my finger, and that requires a bit more power than the tiny. Let me know if you make any progress, I always like a simpler approach. Great instructions!

nodcah (author)  whunckler13 days ago

Thanks! If you don't end up using the ATtiny, you should look into the Micro or the bare ATmega328. They are each below 10 USD and pretty small.

jack198615 days ago

there is an alike fingerprint lock here: http://www.instructables.com/id/Arduino-Fingerprin...

it seems yours is more beautiful...

nodcah (author)  jack198615 days ago

Thanks for the compliment! The one you linked was beautifully simple (in a good way). A lot of the times, the easiest route is better (quicker to build, easier to operate, etc.)! =D

Darthorso17 days ago

Congratulations for your grand prize, my friend!

I voted for you and you absolutely deserve this! :D

nodcah (author)  Darthorso17 days ago
Thanks! =D

No prob! :) Stay great

brmarcum18 days ago
Congratulations on the win! I will definitely be coming back to this project in the future
nodcah (author)  brmarcum17 days ago
Awesome! If you've got any questions anytime, just ask! =)
bergerab20 days ago

Congrats on winning grand prize! Very impressive instructable especially from someone in high school! This is what its all about, keep it up.

nodcah (author)  bergerab19 days ago

Thanks! Congrats to you too on your prizes! In my opinion, one of the best parts about winning a contest is getting an instructables t-shirt, and you're getting two! =D

jtorres4725 days ago
i'm a fairly new maker, but I had a thought that maybe you could hook this to a raspberry pi and make a security system with it. what you think?
nodcah (author)  jtorres4725 days ago

Absolutely!!! I was originally going to add a bluetooth module in this (to connect with a Pi), but decided against it (for now). I don't have any experience with a Raspberry Pi, but if you look around, you'll definitely find other Pi security systems. =D

bergerab27 days ago

One of the most innovative and well formatted instructables ever! I'll be jealous of all the contests you'll win with this one! Great job

nodcah (author)  bergerab27 days ago

Thanks! Don't sorry about me winning all of the contests, your pocket-sized ultrasonic ruler has a pretty good chance! =D

nodcah (author)  nodcah27 days ago

*Don't feel sorry about...

Sorry, I just felt like fixing that. XD

The delay pattern based code is cute and simple, and better than just setting a pin high to communicate a successful unlock, but it's still really insecure. It wouldn't take much for someone to embed their own tiny recorder in your box in the middle of the night, wait for the trigger signal to be sent, and then copy it.

The best way would be to use a cryptographic handshake (something perhaps like a simplified Diffie-Hellman key exchange).

It would take a little (not much) work to set up, but you would benefit from using a serial connection between your 328 and your Attiny. The instructable "Attiny serial monitor using arduino walkthrough" shows you how to do this. Once you get a serial transmit/receive connection up and running, a simple test would be to set up a number rule, i.e. the 328 sends a random number that is a multiple of 7. The Attiny checks, says, 'yup, that is a multiple of 7' and pushes the button.

The fancier way of doing it is such (much simplified): Upon getting an unlock signal, the 328 sends a random number (a nonce) to the Attiny, which performs a modulo operation with Secret Number A, sends that response back to the 328, which performs a modulo with Secret Number B, sends than back to the Attiny. Since it knows both secret numbers, it can verify that the signal is valid.

Wow, that was long-winded >.<

nodcah (author)  DeusXMachina1 month ago

I will definitely look into this. I'll reply to you again when I get the code working. There might be a problem with the timing because the ATtiny85 is pretty darn off-time at 8Mhz

If you can figure it out, can you put that in the instructions? I plan to build this, but I'm not as familiar with coding as I would like to be.

nodcah (author)  tennisguy1871 month ago

Absolutely! =D I should get it done sometime this week. I'll reply to this comment again when it's done.

nodcah (author)  nodcah28 days ago

So I tried to set up a one-way serial port and it didn't work out for me. What is currently on the module should provide enough security. If someone REALLY wanted to get into your house, they wouldn't bother trying to crack this, but something a little easier to crack, like a window. XD

Yeah, exactly. Crobar > crypto

But what's the fun in that!? :P

1-40 of 123Next »