loading

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 awesomefingerprint 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.

Step 1: Materials

Electronics:

PartSupplier (pictures are clickable!)
Fingerprint scanner (and JST connector)SparkfunSparkfun
Serial LCD kit (w/ATmega328)Sparkfun
ATtiny85Sparkfun
NPN transistor SparkfunRadioshack
BuzzerSparkfunRadioshack
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)
<p>Hi,</p><p> Great post! Im currently trying this at home, I have all the hardware built, but when I try to compile the blink example, it just says, 'no such file or directory' </p><p> Is there something else I need to do other than just upload the program</p><p>(I'm new to this as you can probably tell!) Many thanks for any advice you can give!</p><p> Thanks, Andy</p>
<p>Double check you've downloaded <a href="https://github.com/sparkfun/Fingerprint_Scanner-TTL/archive/master.zip">the FPS library</a>. To install the library, follow instructions given <a href="https://www.arduino.cc/en/Guide/Libraries#toc5">here</a>. Inside the zip, you should move the file called &quot;FPS_GT511C3&quot; to your arduino libraries folder. Let me know if you have any more questions!</p>
<p>Hi nodcah, thanks for the reply.</p><p> I did do lots of forum searching and eventually moved them here which I thought would solve it, but it didn't.</p><p>I have attached a picture of where I have put the files, I think I have them in the right place..?</p><p> Thanks again :)</p>
Try moving the FPS_GT511C3 directory into the libraries directory. Arduino doesn't like libraries with a &quot;-&quot; in them. Also, you may need to restart the Arduino program for it to work
<p>Hi nodcah,</p><p> I have moved it to the correct location, but still having the same problem! Do you have any other suggestions? Im guessing it must be something simple, but just cant see what. I really appreciate your help on this :)</p>
<p>Do you see the library in examples? Also, would you mind sending me the full error message plaese?</p>
<p>Hi nodcah,</p><p> No the library doesn't seem to be appearing on that list on the arduino example...I guess its a case of just moving it somewhere, I experimented with putting them in a few different places but still doesn't seem to work :( Here is the full error message...Thanks again!</p>
<p>I included a zip file with this comment. First, download the zip file. Go to the menu &quot;Sketch-&gt;Include Library-&gt;Add .ZIP Library...&quot; then select the zip file. Hope this helps!!</p>
<p>Hi nodcah,</p><p>I have moved it now it is definitely in the Arduino libraries folder, but it is still saying the same thing! :( Really struggling now, do you have any thing else I could try?</p><p> Thanks..again! :) :) </p>
On the serial monitor
<p>Thanks for including a picture! The problem you are having probably means there is a communication issue with the fingerprint scanner. Does the blink sketch from step 6 work?</p>
<p>Are the same Arduino library (GT-511C1R) &amp; </p><p>(GT511-C3)???????</p>
<p>Yup!</p>
When I test the program enroll there is nothing
Is it necessary to use the attiny for the project if I ve an arduino ATmega
<p>can you tell me why do you use the attinypin in your program</p>
I'm not sure I understand your question. But the reason there is a pin that connects the ATtiny and the ATmega is so they can communicate to each other. If you follow the schematics and upload the code, I think your problems will be solved. Let me know if you have any more questions! :-)
<p>with the ATmega</p>
<p>HI,<br>I start with the arduino and I would like to use your project but I have a problem to record an ID and I don't arrive to use your program </p>
Can you be more specific please? Are you having trouble uploading code or running the fps enroll program?
<p>Hi nodcah I've a problem with the Gt511-C3 can you give your email adress to ask you one thing?</p>
<p>Please see the <a>product page</a> for more information about the fps. If you are still having trouble, please post a comment publicly so everyone can benefit from your question!</p>
<p>can anyone send me pdf file? i cant see</p>
Which part do you need a odd of? The entire instructable?
<p>*Which part do you need a PDF of?</p>
<p>Hello</p><p>I can not get the FPS is possible to use another sensor? For example https://www.adafruit.com/products/751</p><p>Which library should I use?</p>
<p><a href="https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library">https://github.com/adafruit/Adafruit-Fingerprint-S...</a></p><p>It will require quite a few code changes from the code I wrote in step 8, but it's possible! Please share if you end up getting it working!!! =D</p>
<p>I solder a USB cable at the back of the scanner and when I used the demo software I successfully managed to enrol two prints. However, when I used the FPS_Enrol example file, I am not getting any thing at the serial monitor ? Any feedback will be much appreciated. </p>
<p>Can you send a picture of your setup please? It should be the same as mine in the picture attached, but using an Uno instead of the serial LCD.</p>
<p>Hi Nodcah</p><p>thanks for this instructable. I'm have the same problem, I am not getting anything at the serial monitor. any help please!!</p><p>thank you</p>
<p>If the FPS light doesn't go on, that means the code line <em>fps.open(); </em>didn't run properly. This means there is a bad connection somewhere because the Arduino can't communicate with the fps. </p><p>I can help you find the problem if you send a more zoomed out picture of your wiring (with the arduino and fps in the picture)! </p>
<p>Hi nodcah</p><p>I manage to fix the problem. secondly. i'm trying to use a servo like in step 12. should I still program the ATtiny. any help with how to go about it. </p>
<p>The use of the ATtiny85 is for extra security through a wall. If your implementation allows for just the fingerprint sensor to be showing, then the ATtiny is unnecessary. I don't have code pre-written for the ATtiny in a box, but using a servo library for ATtinys (I don't know one off-hand), you should be able to tweak the code found in step 7. Hope it helped!</p>
<p>Thanks for the quick respond. I really appreciate it.</p><p>These are the zoomed out pictures. I hope they are helpful.</p><p>i.e The last picture is what happens when I upload FPS_blink. LED still ain't on. </p>
<p>Hi nodcah</p><p>I manage to fix the problem. secondly. i'm trying to use a servo like in step 12. should I still program the ATtiny. any help with how to go about it.</p>
<p>And can you please send me the final Code that controls the servo. thanks. bigestbear@hotmail.com</p>
<p>Hi nodcah</p><p>I manage to fix the problem. secondly. i'm trying to use a servo like in step 12. should I still program the ATtiny. any help with how to go about it.</p>
<p>I am working with the same scanner and an arduino uno, however, I am not getting anything at the serial mointor </p>
<p>I am having the Same problem. di you manage solve it?</p>
<p>I love this concept. If the Arduino is optional how do you program the ATtiny85 without it though? Is also possible the concept of having two different outputs. Say opening a door or a garage door? I'm guessing I'll need two ATtiny and some different programming on the ATmega.</p>
Without an official arduino, you would need to use the at mega on the serial lcd kit to program the ATtiny. So follow the same steps for the normal arduino, but with the serial lcd kit. <br>Also, the ATtiny has multiple outputs, so you can definitely hook up another output to it! <br>Thanks for commenting!<br>-Nodcah =D
<p>hey can you show me ur code please ? I need an exemple for my door pls ^^ </p>
<p>I believe that the code you're referring to is in step 8 =)</p>
<p>Actually I didn't see it thx :D</p>
Can you all help me, i want to built an attandence thumbprint project , anybody here can tell me about the circuit or have some video how to make it , really need it , as soon as possible ?
You can follow the same instructions for this project, but just make the main case. Then you will need to enroll everyone's fingerprint that it would need to scan. Finally, the code can be changed to save an attendance log in the EEPROM which can be read only by scanning your fingerprint. <br>Something of the sort may already exist, so you should definitely browse around a little more if you need more specific instructions!
<p>That looks really nice, Great job!</p>
Thanks!! =D
What type of motorized lock would you use if used for a locker
<p>@nodcah, here is my current situation and I believe it branches off of seppderdepp's problem, running my blink example I get the same errors as him, so I figured alright, it's a programming error (im probably wrong), so, since I have everything hooked up I uploaded the final code just to make sure everything works before I hook it up permanently to the garage. Here is the current state of everything:</p><p>1.) LCD is on, nothing is displayed however.</p><p>2.) FPS blinks for a millisecond and takes a watchful eye to see and then stays off.</p><p>3.) RED LED is on for a bit when first attached to battery and then stays off (probably because there is no need for it to come on because everything else is not working at the moment.)</p><p>4.) Here is the output when I uploaded the final code, for you to hopefully interpret.</p><blockquote><em>In file included from C:\Users\hampt\Downloads\FPSGarageDoorOpenner\FPSGarageDoorOpenner.ino:20:0:</em></blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3/FPS_GT511C3.h:12:21: warning: extra tokens at end of #include directive [enabled by default]</blockquote><blockquote> #include &quot;Arduino.h&quot;;</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3/FPS_GT511C3.h:13:28: warning: extra tokens at end of #include directive [enabled by default]</blockquote><blockquote> #include &quot;SoftwareSerial.h&quot;;</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:9:25: warning: extra tokens at end of #include directive [enabled by default]</blockquote><blockquote> #include &quot;FPS_GT511C3.h&quot;;</blockquote><blockquote> ^</blockquote><blockquote>In file included from C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:9:0:</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.h:12:21: warning: extra tokens at end of #include directive [enabled by default]</blockquote><blockquote> #include &quot;Arduino.h&quot;;</blockquote><blockquote> ^</blockquote><blockquote>In file included from C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:9:0:</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.h:13:28: warning: extra tokens at end of #include directive [enabled by default]</blockquote><blockquote> #include &quot;SoftwareSerial.h&quot;;</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp: In constructor 'Response_Packet::Response_Packet(byte*, bool)':</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:89:108: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[0], COMMAND_START_CODE_1, COMMAND_START_CODE_1, &quot;COMMAND_START_CODE_1&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:90:108: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[1], COMMAND_START_CODE_2, COMMAND_START_CODE_2, &quot;COMMAND_START_CODE_2&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:91:105: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[2], COMMAND_DEVICE_ID_1, COMMAND_DEVICE_ID_1, &quot;COMMAND_DEVICE_ID_1&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:92:105: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[3], COMMAND_DEVICE_ID_2, COMMAND_DEVICE_ID_2, &quot;COMMAND_DEVICE_ID_2&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:93:66: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[8], 0x30, 0x31, &quot;AckNak_LOW&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:95:67: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[9], 0x00, 0x00, &quot;AckNak_HIGH&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:100:85: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[10], checksum_low, checksum_low, &quot;Checksum_LOW&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>C:\Users\hampt\Documents\Arduino\libraries\FPS_GT511C3\FPS_GT511C3.cpp:101:88: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]</blockquote><blockquote> CheckParsing(buffer[11], checksum_high, checksum_high, &quot;Checksum_HIGH&quot;, UseSerialDebug);</blockquote><blockquote> ^</blockquote><blockquote>Sketch uses 15,732 bytes (51%) of program storage space. Maximum is 30,720 bytes.</blockquote><blockquote>Global variables use 1,451 bytes (70%) of dynamic memory, leaving 597 bytes for local variables. Maximum is 2,048 bytes.</blockquote>

About This Instructable

329,044views

3,113favorites

License:

Bio: I am a senior in high school and a member of a FIRST robotics team. I love to tinker on my own, which is mostly ... More »
More by nodcah:Turn Your Entire Phone into a TouchscreenDIY Glowing BraceletFix Any Video Game Controller
Add instructable to: