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 130Next »
moomooman08 days 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..

nodcah (author)  moomooman06 days ago

Thanks!!

To only allow user 0 to add a print, you can add:

if(id==0){
//The enroll code goes here
}
else beep();

You can also condense this down to one line, which would be put right before the waitForFinger():

if(id!=0)beep(); //if id is not equal to 0, go straight to beep()

Thanks for the reply , that was defiantly muck more eloquent than the way I had come up with.. now that i have that part working like it should on to the attiny85 .. i have flashed it with the blink program and it works just fine , but when i have it flashed with the code above the red led comes on at boot up, but the yellow pin flashes the pattern that is on the input side ie. pin 12 on the mega. i get three flashes and if i change the delays on the mega side the flashes correspond on the yellow light..dont think that is right so might have an 85 flash problem, i am assuming that the yellow light should be giving me the response from pin 3 on the 85. cause end result right now im not getting the door to pop, even though i am getting flash responce on the yellow led..

nodcah (author)  moomooman04 days ago

If the blink sketch works, then there shouldn't be any problems programming the ATtiny.

The first thing I noticed was that you mentioned pin 3 (which is unused). So, you might need to check your wiring (unless that was a typo).

Secondly, I would recommend removing the transistor and see if the yellow LED is still acting up.

Lastly, you can try uploading this code to the Serial LCD and this to the ATtiny85.

Hope it helps

-Nodcah:-)

following the diagram above attiny85 pin3 connects to the base on the npn and the yellow light tied to ground ...hmmm .. am I reading that wrong.?

the attiny85 code attached above is the same as the serial code attached above is that a boo boo ?

Never mind got it...Wire problem didn't have the resistor tied in between (physical pin 3) on the 85 and the base on the npn..

Great project thanks very much for the help and sharing..

nodcah (author)  moomooman03 days ago

Yeah sorry about the pin 3 thing (I didn't know you were talking about physical pin 3).

But I'm glad you got it!!

Thanks!

-Nodcah

marios854313 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)  marios854313 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)  marios854311 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)  nodcah11 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.

riicardoo13 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)  riicardoo12 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);

}
brmarcum13 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)  brmarcum13 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) :-)

brmarcum nodcah13 days ago
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)  thivakarsivan13 days ago

Around $70. Here is a list with prices.

ijako915 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)  ijako913 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

whunckler23 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)  whunckler22 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)  whunckler21 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.

jack198623 days ago

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

it seems yours is more beautiful...

nodcah (author)  jack198623 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

Darthorso25 days ago

Congratulations for your grand prize, my friend!

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

nodcah (author)  Darthorso25 days ago
Thanks! =D

No prob! :) Stay great

brmarcum26 days ago
Congratulations on the win! I will definitely be coming back to this project in the future
nodcah (author)  brmarcum25 days ago
Awesome! If you've got any questions anytime, just ask! =)
bergerab28 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)  bergerab27 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

jtorres471 month 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)  jtorres471 month 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

bergerab1 month 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)  bergerab1 month ago

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

1-40 of 130Next »