Introduction: RFID Car Lock/Unlock V1.0
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
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
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.
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.
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.
Attachments
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.
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.