In this video you see me unlock the car using a RFID tag, wait 25sec and the car relocks.

Basic Overview
This project outlines a way to lock and unlock your car using Radio-frequency identification(RFID, For more info please check out http://en.wikipedia.org/wiki/Radio-frequency_identification). The main reason for me doing this is as you will see in the pictures i have an old car(300k+ miles old) and so it doesn't have any of these new key less entry options or a remote control dongle. While it would be simple enough to add a remote it would cost some money and i would rather do something myself. I had a friend who did something very similar to this but having his car only unlock so i thought it would be nice to also have it lock. As with all instructables this is a guide, its what worked best for me by no means is it the most efficient or the easiest hopefully it will give you ideas to go do your own project that's different and share in turn share that with us. This is my first instructable and so if you have any suggestions/questions please don't hesitate to let me know. 

This is a basic overview of the order of operations for my system.
  • Walk up to car and scan in RFID tag.
  • The RFID readers send the tags data serially to the micro-controller.
  • The micro-controller then verifies that the tag has the right code to unlock the car.
  • If the code is invalide the tag is ignored.
  • If the code is valid the micro-controller sends a signal to the switching circuit to unlock the car.
  • 25sec later the micro-controller locks the car
As you can see i currently have it setup to unlock and then re-lock the car after 25 seconds, This was not my original plan but after thinking about it i found it worked best for me doing it this way.

Difficulty Level
I would say that this project is not so much difficult as time consuming. For me the hardest part was the wiring the system into the car. Also something to note, if you have a security system it maybe significantly more complicated depending on the layout of your system. In my car the passenger side window does not go down there for giving me a lot of free space in the door, and the driver side rear door/window are not used giving me the ability to easily place a reader in its window.

Future versions of this project
In the future i plan to modify this project in several ways, I hope to replace RFID with bluetooth and also incorporate the ignition system to allow of keyless/remote start. The next change i will make is probably adding a 2nd RFID reader to the passenger side of the car.

Legal blah blah
RFID is by no means a secure system, no lock is. All that to say if you install this and someone steals your car i am in no way responsible. That said, your car is full of windows, glass is a lot easier to hack into then RFID ;) 

Step 1: Switching Circuit

The way i have it setup i have the switching circuit for the locks wired in parallel with the door lock/unlock switch. My passenger side door's window does not work which means i had ample room to place things inside the door without worrying about possible interference with the windows operation. 
On my car to lock/unlock there are two 12V wires, when they are shorted to ground it locks/unlocks depending on which is shorted. 

There is not much current when you connect the 12V lock/unlock wire to ground, but i decided to be on the safe side and used N-Channel MOSFET (RFP30N06LE) as my switch, i used 2 one for locking one for unlocking. 

So for this part of the system all you will need is 2 RFP30N06LE , and two 10k& resistors,  a perf board and wire. 
you connect the sourse to ground, the drain to the 12v off of the car, and the gate is connected to a 10k resistor which goes to ground, and the arduino input signal goes to the gate was well. 

This is a video i made after installing the switching circuit

Step 2: Main Board

For this project i used an Arduino Pro 5V, I could have easily gotten away with using a less powerful/smaller micro-controller but this is what i had on hand already from another project. Also the Pro will work well for the future when i change from RFID to bluetooth.
In the  picture here you can see i am using a 5V regulator (LM7805 ) 
with a .33µF capacitor on the input side to ground and a .1µF capacitor on the output side to ground(although these values are not very important ).
The 5V regulated output from the voltage regulator was then sent to power both the Arduino, and the Parallax RFID readers

As you can see i used screw in wire clamps here, that was so i could remove the main box without having to desolder/cut wires so when i get to future versions of this project it will be easy to adapt.

Not listed on the scematics is i have 2 LED's on the main enclusre, one is not  being used(i used it as a diagnostics indicator when working on the code ), the other turns on when there is power to the box.  

Step 3: Code

The following is the code i used, i tried to comment things to give you an idea of whats going on, its somewhat  messy and complex but i think most should be able to figure out whats going on without too much work.
Also please note i did not use the built in Arduino serial bus, i did this because i wanted to be able to reprogram the micro-controller without unplugging anything, if you have anything plugged in to pin0 or pin1 you will not be able to program the Arduino. In order to use a different port for serial communications i used newsoftserial(http://arduiniana.org/libraries/newsoftserial/) this is a fantastic library that allows not only other serial ports on the Arduino but also allows for multiple serial devices to run.
I am running this on a Arduino Pro 328 5V/16MHz this board is overkill for this project, but i choose it due the the easy of mating it with a Bluetooth module for a future version where i will use BT to lock/unlock the car. 

The code is attached in a .c file, you can copy/paste into the arduino development. I added some comments, but that said it probably is somewhat convoluted, if you have questions please let me know. I by no means claim that this is the best way to do it, im positive there's more efficient code out there, but this worked for me. 

Step 4: RFID Readers

For my project i am using a Parallax RFID reader (http://www.parallax.com/tabid/768/ProductID/114/Default.aspx) I connected the reader using CAT5e cable and a 4pin servo cable to actually connect the to the readers.

I have one reader mounted in my driver side rear window, this door does not open so it was very easy to stick the reader there and a good spot for when i walk up to my car.

In the future i will be adding a second reader to the other side of the car, but i have not gotten there yet. 

Step 5: Connecting to Car

Once everything is assembled it needs to be placed into the car, i decided not to really conceal the box, although it would be easy to put it under a seat or something like that but rather mine is in the foot well of the passenger side. I used a constantly on 12v line to provide power to the unit, and grounded it to the frame of the car. Another reason i left it exposed is although the system only draws a very little amount of power if i were to be parked somewhere for an extended amount of time i would like to easily be able to turn it off(the switch on the top) to prevent excess battery drain.
<p>Hi, can someone explain why do you have to connect the gate from the mosfet to the ground using he 10k resistor? thanks</p>
<p>Did you ever replace it with bluetooth? I just got a LightBlue Bean that has bluetooth built in and I'd like to do something like this. </p>
I did not, however replacing with the bean would be easily done you'd just use the bean's I/O pins to toggle the control board's transistors to actuate the lock. There would be some changes in software for toggling the bean, but the hardware side would remain very close to how it is here.
Just a heads up for anyone looking to use this on the latest revision of the Arduino software, converting NewSoftSerial to SoftwareSerial is easy. Just seriously replace anything that says &quot;NewSoftSerial&quot; with &quot;SoftwareSerial&quot;. ONLY those parts. <br> <br>Further info can be located here: <br>arduiniana.org/libraries/newsoftserial/
hey thanks for the update, i knew NewSoftSerial was incorporated into the Arduino software so you no longer need the external library, i do appreciate the update for everyone. I may redo the code in the future. I have a new car now so need to redo this system to work on it.
I never was able to get this going in my bug. Now it's totalled, so that's probably never going to happen.... <br> <br>However I do have a motorcycle. Not sure how that would work though.
I have a friend who has it working on his motorcycle, he used a different interface board but was able to do it, in fact his controls the ignition of his bike.
hello, whats the idea behind this if perhaps, I wanted to do similar thing for a FORKLIFT. to grant access to authorize user. will i still use the same device?
You could use this for a fork lift, you will have to change the section i have unlocking the doors to a different circuit possibly something in-line with the ignition and some slight changes in the code, however feel free to take and butcher whatever parts of this project software or hardware to fit your needs. Once you get it going please share with us all what you did :)
hey this is a cool project, but i have a raspberry pi and was wondering if you knew how it would work with that.
Well you could do it with a raspberry pi however i think that device is overkill for this application also you would need different code, and a slightly different hardware interface. Be sure to share if you get it going though. :)
Just wondering, but what version of Arduino did you use to upload this code? I can't seem to get it to work for the life of me. I've tried 1.0.1 and 0021, and so far no luck. <br> <br>Awesome setup by the way, I've been trying to figure out how to get this setup in my '69 bug after I install a lock actuator.
Well back then it would have been pre 0021, but that really shouldn't matter, i just quickly skimmed over the code and didn't see anything that would have been arduino version specific. Are you copying the code from the file i uploaded and pasted into a .ino? if not try that. What errors are you getting when you try to compile it?
Well turns out with the new Arduino 1.0 they dropped NewSoftSerial , now it's just SoftwareSerial. I replaced the two instances with that and it works just fine. I'm slowly learning about coding, so sorry about that. It was giving me some funky error earlier, but it seems to be working now. Just have to get something other than my Seeeduino mega to try it on and I should be in business.
Oh yeah i forgot i used newsoftserial there, that's cool you got the code working. I have sense given away my car so i have not yet improved upon this setup but once i get back in country and buy a new car ill be doing it again. Looking forward to seeing the results of your project with the bug.
The RadioShack RFID reader circuitry was discontinued some time ago, and sold at increasingly reduced prices thereafter. I seriously doubt that you could still find one in a store.
That is correct RadioShack did phase them out when that happened i bought a handful, however they are still very easy to find online by searching for &quot;parallax rfid reader&quot; and there are other alternative readers out there both in 125kHz and other frequencies.
Great Instructable! No Key entry. <br>In a simular 'structable, an other author had set up RFID for his college dorm room. His transmitter was the same chip as used in canine id service. He had this injected in the fleshy area of his hand between thumb and index finger. To use he merely waved his had at the door, &quot;abra-cadabra&quot; the door unlocks.
yeah i have a friend who did that with a chip in his hand, i guess im just not that hardcore lol
Did you try mounting the reader somewhere a little less noticeable? i was thinking behind the door panel near the handle or something would be nice<br>
It would be possible to obscure it somewhat, I wanted it to be pretty obvious. The issue with going behind the door panel is rfid has a very limited range and a metal door panel might block the signal completely. Its fairly simple to remove the LED on the reader which would also make it alot less noticeable.
well, i was just thinking that it might would lessen the value to some people's mind if you were reselling down the line. thinking hey this guy screwed with his cars wiring<br>
Thats defiantly something to consider before doing this, i know for me i plan on removing it from the car to transfer it to my next car when the time comes. That said almost all the people i show this system to think its really cool, so it might even increase the value of the car to some people kinda just depends on who it is i suppose.
That would be so awesome for my truck, but I'd have to get automatic locks for it instead of the manual ones it has :(
Might be worth pulling off a door panel and having a look, often cars will be wired for all the options(electric locks, extra door lights etc) and then those options may/maynot be installed so you might well have the wiring there even if you don't have the switches
Intresting. I considered doing this on my old car because I kept locking my keys in my car, but that car died, so now I have a remote for my new one. I'm not sure how much that rfid reader is on the website, but I think retail is $99. I picked one up at radioshack for $10.
$99? I own 3 of them and didn't pay more than 20 for each so that seems kinda high, but maybe you are right. Radioshack used to have them im not sure if they still do, however I know they have gotten alot of new parallax stuff recently so maybe they do.
I agree that it's over-priced, but according to radio shack that was retail... like I said, they marked them down to 10.
Who use screws, anyway? We have tape! Lmao :)
My thoughts exactly ;)

About This Instructable




More by thematthewknot:Awesome button, and then some. Hack Your Canon Camera Simple Arduino Stoplight Controller 
Add instructable to: