Introduction: RFID Controlled Car Trunk

Picture of RFID Controlled Car Trunk

Projected Achievement:
One will be able to walk up to the trunk of the car, touch their hip (which contains their wallet which contains an RFID card) to a specified point, causing the trunk to pop open. It will employ radio frequency identification to sense the human subject, a servo to pull the cord that pops the car trunk and an arduino to control the system. The system will be completely hidden from the outside.
This project will also allow me to explore a deeper understanding of electronics and C based code. 

Overarching Goal:
It is important to integrate technology into our lives, enhancing day to day activities, and the standard of life. My goal in this project is turn a mindless but routine task into a natural extension of our lives.

Thank you to and Electronics plus for being great part suppliers with awesome consumer service and an infinite amount of helpful information. Shout out the Open Source community...

I don't expect anything negative to occur, but this is electronics, so that being said:
I am not responsible for anything bad that may come from this instructables, by reading this, you agree to not hold me responsible for anything.

Step 1: What Is RFID

Picture of What Is RFID

RFID stands for Radio Frequency Identification. It is a system that employ's low power radio waves to transmit data. The system requires a reader and a tag. The tag stores the data which gets read by the reader. All tags will transmit data but how they are activated or actually transmit the data varies depending on the tag.

Three main types of tags:

- Passive 
Cheap, small tags that require no internal battery. The reader outputs a radio frequency which "activates" the tag's circuit. The energy from the radio wave is also enough to activate the tag and then send back the data through the returning radio wave. This relies heavily on the connection between an electric field and a magnetic field. The radio wave induces a magnetic field in the circuit and thereby induces electric current, powering the system. The tag includes a small amount of circuitry and an antenna. The larger the antenna, the greater the range as a result of greater energy "absorption". 

- Semi-passive
Relies on the reader to supply the power required to send the signal (radio wave full of data) back to the reader. They have a small battery to power the circuit but rely on the energy from the radio wave to broadcast the signal back to the reader (similar to how the passive tag broadcasts it signal) 

- Active
Active tags are completely battery powered. They still respond to a reader but the circuit and the return signal are battery powered. This greatly increases the range as well as the cost. 

Extra Sources (and sources used):

Step 2: Arduino Basics

Picture of Arduino Basics has a great description of what is an arduino:

"Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. Or more simply, you load on some code and it can read sensors, perform actions based on inputs from buttons, control motors, and accept shields to further expand it's capabilities. Really, you can do almost anything."

"All Arduino boards have one thing in common: they are programmed through the Arduino IDE. This is the software that allows you to write and upload code. Beyond that, there can be a lot of differences. The number of inputs and outputs (how many sensors, LEDs, and buttons you can use on a single board), speed, operating voltage, and form factor are just a few of the variables."

Arduino used in this project:

Arduino Uno:
Great for prototyping, includes a direct USB hub for easy connection to a computer, female headers for easy breadboard and direct wire connection 

Arduino Pro Mini:
Great for use in final project, through hole soldiering for solid connections, perfectly capable but small and light, does require an adapter of sorts (FTDI basic) to upload code though

Uno Picture:

Step 3: Preparation

Picture of Preparation

Overview of RFID Controlled Trunk:
This system uses a passive RFID system to activate a servo when the card-like tag is sensed. The reader is embedded in a empty cavity in the car where it is easily within range of a human. It is meant to be easy and helpful. 

Parts list:
ID-20 Reader:
 - See step 1
USB Reader (interface hardware for ID-20 to computer or arduino/microprocessor):
 - Breakout (device) used to interface the ID-20 to the computer or arduino/microprocessor
Passive RFID tags (non-reprogramable ):
 - See step 1
Arduino Pro Mini 5v:
 - See step 2
Large Limited Rotation Servo (limited rotation makes it easier to program):
Wire (insulated!!) 
Hot Glue
Electrical Tape (lots of electrical tape)
Soldering materials
Nuts, bolts, and other metal pieces used to attach servo to car trunk
Optional: Arduino Uno and breadboard (selectively conductive board used for prototyping) 

Soldering Iron (and accompanying equipment) 
Wire Strippers
Screw driver/wrench 
FTDI basic for uploading code to arduino:
Other tools that you will find necessary  


Step 4: Setting Up the Electronics

Picture of Setting Up the Electronics

 When it comes to hooking up electronics, I recommend starting with the Arduino Uno. Its easier and less risky to setup, and is a great way to make sure the system works. I keep use my uno for prototyping and when I finish my system, I buy a pro mini and solder  the wires to that (which proves to work better in the long term). 

The flowchart below depicts the setup (scroll over the parts to learn more). Be careful when soldering, use a soldering heat sink (I learned this the hard way). 

Another important lesson I learned was the use of female headers. Instead of soldering directly to the board, I soldered wires that were connected to female headers. Then I plugged in the components into these female headers. This may sound pointless, and even after testing with the uno, problems will still arise. With this setup, you can stay flexible, and when your completely done, you can just hot glue them the wire to the header. 

Step 5: Understanding the Code

Picture of Understanding the Code

Thanks to an unknown code writer for most of this code!
#include <Servo.h>  // Includes libraries (computer files) that include lines of code for the servo
Servo myservo; // Gives the servo a name

int RFIDResetPin = 0;

//Register your RFID tags here
char tag1[13] = "------------";  //First tag ID, I replaced the letters and numbers with a corresponding amount of dashes (i'd rather you              
                                                  //not hack my system...)

char tag2[13] = "------------";  //Second tag ID

void setup(){                        // everything within the void setup runs the code once on start-up 
  Serial.begin(9600);    //Sets up a connection to the computer when prototyping, incredibly useful to figure out whats happening in                      
                                        //the code because it can print lines of code onto a computer screen 
  myservo.attach(8);     //Attaches the servo to a specific pin on the arduino, this is like the lane of a highway for information 
  myservo.write(178);  // Sets the limited rotation (0-180 degrees) servo to 178, the idle position
  pinMode(RFIDResetPin, OUTPUT);  //Clears the slate for sensing a tag
  digitalWrite(RFIDResetPin, HIGH);    //puts it on "high alert"


void loop(){              //everything within the void loop is run through in a linear fashion over and over again 
  char tagString[0];                    //the next couple of lines work with the incoming data to turn it into numbers and letters which form
  int index = 0;                            //the ID tag 
  boolean reading = false;

  while(Serial.available()){               //while there is a serial connection (while the reader is communicating to the board...)

    int readByte =; //read next available byte          //code that begins decoding (haha) the binary 

    if(readByte == 2) reading = true; //begining of tag
    if(readByte == 3) reading = false; //end of tag

    if(reading && readByte != 2 && readByte != 10 && readByte != 13){
      //store the tag
      tagString[index] = readByte;
      index ++;

  checkTag(tagString); //Check if it is a match
  clearTag(tagString); //Clear the char of all value
  resetReader(); //reset the RFID reader

void checkTag(char tag[]){                   //Check the read tag against known tags

  if(strlen(tag) == 0) return; //empty, no need to contunue

  if(compareTag(tag, tag1)){                 // if matched tag1, do this
    servoGo();                                            //Activate the servo!
    Serial.println("card 1 read");             //print "card 1 read" to the computer, helps see if the code reaches this point when and how it
  else if(compareTag(tag, tag2)){           //if matched tag2, do this
   servoGo();                                                //Activate the servo!
   Serial.println("card 2 read");
/* else{
    Serial.println(tag); //read out any unknown tag
    Serial.println("unknown card");


void servoGo(){                                     
  Serial.println("Servo Activated");         //prints a line to the computer that tells me that its reaches this point 
    myservo.write(20);                               //writes the servo to a position that will pull the cord that pops the trunk
    myservo.write(178);                            //resets the position for the next activation 
  Serial.println("Servo Action Complete");    //prints a line to the computer confirming the completion of this method (external code of

/////////////////////////////////// The rest is code used to control the system that reads the code

void resetReader(){

//Reset the RFID reader to read again.

  digitalWrite(RFIDResetPin, LOW);
  digitalWrite(RFIDResetPin, HIGH);

void clearTag(char one[]){

//clear the char array by filling with null - ASCII 0
//Will think same tag has been read otherwise

  for(int i = 0; i < strlen(one); i++){
    one[i] = 0;

boolean compareTag(char one[], char two[]){

//compare two value to see if same,
//strcmp not working 100% so we do this

  if(strlen(one) == 0) return false; //empty

  for(int i = 0; i < 12; i++){
    if(one[i] != two[i]) return false;

  return true; //no mismatches


Step 6: Installing the System

Picture of Installing the System

This is where is really gets complicated. You will most likely not be installing your system onto a 2003 Mazda Protege, so you are going to have to get creative. 

Key points to remember when installing system:
 - Install the reader close to the surface of the car (less resistance = more range)
 * Install the reader where the radio waves will not have to travel through metal!! (This is a low power system, if the waves have to travel through metal, they lose their energy and effectively block the communication between the tag and the reader) 
 - Use lots of wire, its better to have extra than to realize half way through the install that you need to solder on more wire
 - Cover the reader with many, many, zip-lock bags and cover the entire system with waterproof electrical tape, make sure the tape extends to the wire (don't want a short causing a fire...)
 - As for installing the servo: My car's trunk is not furnished and there is an accessible cord that pops the trunk. I attached the servo to this cord, when it rotates, it pulls the cord. There are convenient holes that I used for mounting the system. I used some flat metal pieces and nuts and bolts to attach the servo to the car, so far this has worked great. 
 - Put the system in a box ( doesn't have to be fancy) to protect the electronics from unnecessary crushing 
 - Try to be neat and not do damage to the car (I hope this one is obvious) 

Step 7: Power Supply

Picture of Power Supply

Power Issues:

There are two main power systems that I considered: Battery power and power from the car. I choose to use battery power because its safer and won't run the risk of running down the car battery. It also makes it easier to maintain. I am using a 6v 4.5 amp hour battery that is rechargeable. This should be ample (pun intended) to power the system for a little while (months), but I have not yet tested this. 

UPDATE (5/28/12) - Copied from my comment on this 'Ible:
I powered the arduino with a regular 9v (just a regular Duracell) and powered the servo separately with the same 9v. I had two sets of alligator clips connected to the 9v. One set was simply connected to the raw and ground pins on the arduino and the other set was sent to the ground wire for the servo and a variable voltage regulator which then went to the servo's vcc wire. This allowed me to play with the voltage values for the servo only. I was very surprised by what I found: the arduino ran fine with the 9v and strangely the servo ran best on 1.55v pulling 6.8 mA. I always thought this servo would take 5-6v but it clearly ran best on 1.55v.
Now I need to figure out how I can permanently power the system. I can find a battery that is 9v with a high amp/hour rating (am open to suggestions though) but need to find a power system for the servo now. I will probably try to connect it to the car like jwhitley suggested. Thanks again for the help everyone!

Problem: For some reason, whenever I plug in the battery, the system pulses as if a capacitor is hooked in series. This is strange because the same thing happens when the system is powered through the vcc port. The system works fine when powered by the computer, which is strange because this goes through the vcc port that was not working. It does not seem to work with any port. I thought it might be a problem with the voltage, so I created a variable voltage regulator. This keeps the voltage level at a constant rate, which I assumed would also help regulate the current (I=V/R). While the system would pulse less at certain voltages, the system proved stubborn. For now I am stuck experimenting in an to attempt to identify the problem.

To use the system, I use the FTDI basic, which for some reason, works...


Step 8: Conclusion

Picture of Conclusion
It works (Except for the power issue)!!


taifur (author)2015-09-18


muddog15 (author)2014-02-15

Maybe add a reed valve to turn on the power only when the card with a magnet and RFID chip is presented.

yeti bear (author)2013-09-19

I would like to purchase an rfid setup. Basically powered from 12 to fire a spst relay.
If you can supply something like that please email me direct. Greenzero13 at gmail


WABIX (author)2013-01-01

I have a pro micro and I never solder my FTDI headers into it. Instead, I stick the long end of a 6 pin straight header into the USB - FTDI. Then stick the short end into the 6 holes on the pro micro while programming. When finished, all you have to do is remove the header + FTDI. If you are doing small projects, this can save a lot of space.

AJMansfield (author)2012-06-26

Why do you have a computer hard disk, an old tape cassette reader, a graphics card, and either a dial-up modem or an Ethernet board pictured at the top right of the image?

Lucas Reed (author)AJMansfield2012-06-26

It is just a title picture. I could have set up all of my supplies and tools for a photoshoot but I choose to progress my electronic projects instead :)
Sorry if it was confusing.

mr monoply33 (author)2012-05-30

This is the first time I've been truly disappointed in a feature of my car. I know my trunk latch mechanism inside & out from when I had everything dismantled to install a rear-view camera...and there is no way I can manage this :'(

SuzyMac (author)2012-05-29

I am not an electronics geek, but I am a Braille Geek and very curious about why you included the Braille....I love to see Braille where ever it is!

Hycro (author)2012-05-28

With my car I could just run a power wire from the car battery to a relay triggered by the Arduino, since with my car the interior trunk release is electric...

josephlebold (author)2012-05-28

Great place to start. I can see where it could be integrated into the car a little more. One could use the car's own battery, make sure your Arduino can take 14 volts or use a regulator. Most cars now have an electric trunk release so you could hook into that using a relay instead of the servo.
Heat sinks, good idea, I rarely use one though. I would recommend anyone new to soldering use one. I find if you move quickly you get the best joints. If your flux is smoking get the joint completed before it quits and don't be afraid to use lots.

Lucas Reed (author)josephlebold2012-05-28

Thanks, I am looking into integrating parts of it into my car battery but am also trying to be careful in order to not find my car with a dead battery one day.
Unfortunately my car does not have an electric trunk release. That would have made things a lot easier for me.
As for the soldering heat sink, it turns out I didn't need it, my board is not broken. I had not ruled that out as a possibility because the power system was not working, but since it now is, I have no reason to blame the board.

jwhitley (author)2012-05-27

The Arduino's lowest >required< voltage is 6V, but recommended is 7V. The "pulsing" you are experiencing may or may not be too much current draw. You can test this by using a multimeter on the 5V + GRND pins. If the 5V drops to 0 during the "pulse off" phase, then it is likely that the Arduino is seeing more current than it can handle and the overcurrent protection is kicking in. I've had this happen with certain loads.

After looking at your "flow diagram," here is my recommendation: Use a separate supply for the servo. That size of servo is very likely to pull more amperage than the Arduino can handle regardless of what supply you have hooked up to the Arduino. I think the best option is to use the 12V from your car, regulated down to the required 6V, to power the servo and buy a different battery with a higher voltage to power the Arudino. The servo obviously doesn't use power unless you're actually actuating it so it won't be a drain on the battery and it can draw much more current without bothering the Arduino.

Lucas Reed (author)jwhitley2012-05-27

Thanks, those are some good suggestions. If the issue is that the current is more than the arduino can handle, why would the system work when plugged in to the computer? I will definitely try the higher voltage battery though, I could see that being the problem. Thanks for the help!

jwhitley (author)Lucas Reed2012-05-27

The USB connection is current-limited. The battery is not. You can pump as much current as the battery will allow through the Arduino (and eventually hit the overcurrent protection) but the USB connection will only allow a certain amount of current to be drawn thanks to current-limiting resistors in your motherboard.

kd5jtc (author)jwhitley2012-05-28

I agree with jwhitley, use the car's battery as the power source(s) and let the arduino become a "relay-like" trigger, not a power supplier. Also, USB is MB limited to 500mw max and yes I'd think the arduino would switch to it's USB power mgmnt upon USB connection. It looks like you have a crown vic so running a voltage line is easy enough by removing the trim along the bottom of the doors and you can punch through the thick rubber boot that allows the car's wiring harness through the firewall. Just remember to fuse at the battery (as close as you can get) to limit any potential damage from shorts to GND. You can also find switched voltage under the dash that is only "HOT" while the key is in the "RUN" position or only "HOT" while the key is in the "STARTING-ONLY" position should you choose to explore other options! I have kitted a few Crown V's up for police use (as well as other cars/truck/suvs) and this has way more potential than just a novelty! Great job! See now I need to dig out my barely used UNO kit and get an RIFD kit too! Peace n God bless! <><

When plugged into the PC, doesn't the Arduino automatically switch it's power to run off of the USB? That would have a much higher amperage capacity, to run the servo.

jimmytvf (author)2012-05-24

wow, this gave me an idea to how to make an anti thief system. instead of powering up the servo with the RFID, you can put a heavy duty relay from the spark plug wires in your car and trigger it with the RFID, so anybody can drive it! you could start the car also with the RFID, but is a pretty seen idea.

nice ible dude, i mean duke!

I have never seen a relay that would hold up to a spark plug voltage and surges for long. I would think you could wire in the switch to the rfid easier.

mr. stacey davids got the solution.
skip to 1:52

Lucas Reed (author)jimmytvf2012-05-27

That's a cool idea, it would be fun to touch my wallet to a predefined spot thereby stating my car. Unfortunately though I am already working on a push button start system that is tied into a Nike + door unlock system.

im3733 (author)jimmytvf2012-05-24

How would that be anti-theft? Unless you're saying disable the key-ignition so it can't be hotwired? But at that point you would probably want to hide somewhere on the dashboard.

If that's what you were referring to, that a very creative use. Though it may be just as effective to also set it up to use the RFID tag to unlock the doors.

reborne (author)2012-05-28

I really like this and is IS really informative; but me being the simple guy I am went for an easier option with the same results (well, almost same, mine was on the doors instead of the boot).

I purchased an rfid unit that was ready made for £20 complete with fobs from ebay. No playing about with voltage regulation or losing an arduino unit to doing what is in effect a very simple thing for it. (I'm thinking cost effectiveness here).
At the same time a central locking kit with 4 servos and control unit - crucially the control unit allowed a voltage input to mimic a keypress on a normal fob.
The system was also going to allow keyless ignition from the initial RFID response, but unfortunately the car didn't last long enough :-(

Again, I don't want to take anything away from your 'ible, I think it's great, I've just never had the time to get into the whole arduino thing :-)

Lucas Reed (author)reborne2012-05-28

I completely understand, electronics take forever to build.
Personally though, I enjoyed learning more about the electronics and found that using an arduino allows for an unlimited amount of flexibility. The instillation process is one of the hardest parts (if you want it well integrated) so flexibility was important to me.
Also, for unlocking of the doors, I choose to use the2.4Ghz spectrum because of it's range (Nike + with arduino).
I am also working on a keyless ignition system, but it is important to me to use a button so I don't have to take my wallet out of my pocket (yes, I am lazy). I also need the system to allow me to active electricity on, all electricity on, and car on.
Again, I understand where you are coming from though.

Lucas Reed (author)2012-05-28

Thank you to everyone for the comments, its quite encouraging and makes me want to make more ibles!
An update (that I will reflect in my ible soon) on the power issue:
I powered the arduino with a regular 9v (just a regular Duracell) and powered the servo separately with the same 9v. I had two sets of alligator clips connected to the 9v. One set was simply connected to the raw and ground pins on the arduino and the other set was sent to the ground wire for the servo and a variable voltage regulator which then went to the servo's vcc wire. This allowed me to play with the voltage values for the servo only. I was very surprised by what I found: the arduino ran fine with the 9v and strangely the servo ran best on 1.55v pulling 6.8 mA. I always thought this servo would take 5-6v but it clearly ran best on 1.55v.
Now I need to figure out how I can permanently power the system. I can find a battery that is 9v with a high amp/hour rating but need to find a power system for the servo now. I will probably try to connect it to the car like jwhitley suggested. Thanks again for the help everyone!

iwoodinspire (author)2012-05-27

So tell me about the servo, before I buy one (for a different idea), since I don't know anyone who messes with servos. Does it just rotate that wheel like 90 degrees, and return it to "0"? Could I program it to rotate 90 degrees, and stop until I want it to return to 0? I want something that could open a spring with an electronic signal, then return it when I want it to afterwards. Am I on the right track here? Great instructable, btw.

Untold (author)iwoodinspire2012-05-28

Hi, servos are used with Arduino on lots of robot projects such as this one, where you can find sample code using the servo library:

There may be better examples than this, but you can get an idea.  I am building this as my first robot project and I found it very easy to drive the servo to any position within its range (easily 90 degrees or more) and hold it there. For this 'ible, if the cord is stiff to pull, you might need a very strong servo though. I am not sure the average hobby servo will be strong enough - This depends a lot on the car.  Good luck with your project!

Lucas Reed (author)Untold2012-05-28

I agree with Untold's comment. The code is simple if you use a limited rotational servo. If you use a unlimited rotational servo it will be harder to code because it will use pulses to detect its position.
As for the strength of the servo, Untold is again correct. I started with a smaller servo but needed to upgrade to the one I listed.
Good luck on your project duggerpato!

jweirs (author)2012-05-23

too many amps maybe. usb is typically 100-150 mA, and youre putting 4.5 Ah to it. thats way more current than the module wants.

Lucas Reed (author)jweirs2012-05-23

Good point, I am a bit confused though because I thought that the amp hour rating was more of a maximum and that the arduino draws the current it needs (in other words, the amp hour rating is not the same as the amp rating)?

rpb (author)Lucas Reed2012-05-28

You're absolutely right. 4.5 Ah just means that the battery can provide an amp for 4.5 hours, or 100mA for 45 hours, 10mA for 450 hours, etc. - it says nothing about how much current will be drawn by your circuit, which, as you rightly state, is just determined by the voltage of the battery and the arduino itself (plus any other things you have connected to the battery).

So a bigger Ah figure just means your battery is going to last longer - it's not going to push any more current through the circuit. (author)Lucas Reed2012-05-23

Amp Hours is the amount of amps drawn over one hour, amps is the immediate amount of amps flowing in. Amp hours is more of a size thing for things like batteries.

dkkim (author)jj.inc2012-05-27

Closer. Amp-hours is the total charge capacity of the battery (like how much fuel in a tank).

The basic definition is:
Charge (coulombs) = Current (Amps) x Run time (Sec)
= Current (Coulombs/sec) x Run time (Sec)
But it's easier to use in units of Amp x hours rather than Amp x sec, like so:
Charge (Amp Hours) = Current (Amps) x Run time (Hours)
Helps you figure out how long the battery will last (roughly, it won't discharge evenly).

Current capacity is how fast the fuel can flow out of the system. That is what sounds more related to the issue you guys are discussin.g

Hope this helps,

Lucas Reed (author)jj.inc2012-05-23

Thanks, that's what I was thinking, which is why I thought the listed battery would work. I will have to try the 9v to see if it is the battery or the arduino...

jweirs (author)2012-05-23

overall, this is kickass. can you use one arduino module for more than one rfid reader? if you put the arduino in the center console, and ran an rfid reader for the trunk, doors, and starter (maybe), could the one arduino differentiate between signals? or just fire all the servos at once?

Lucas Reed (author)jweirs2012-05-23

Thanks, it was fun to build!
That's a good idea, I didn't think of using two RFID readers. Since I have this system ( set up, I was just going to have the push button start work only within a specified time after the doors are unlocked. I like your idea, but I am not sure if the range of the RFID reader (even the ID-20) would be enough.

You could put a reader on the drivers seat.

Then just for fun, I would have another project that monitors both the seat switch that triggers the seatbelt warning, and the RFID status - if someone sits in the seat without the correct RFID card, then a bogus security message will prompt them to enter a code on a keypad in order to bypass the alarm. The keypad will actually be a way to compose music over an external PA speaker. This prompt of course will inform you that your card isn't registering properly.

Haha, that could be fun, especially if I did it to a friends car while they were away...

For pranking, I would skip the RFID and just use the seatbelt switch to start the show.

You could have a rhythm track that plays for 5 seconds whenever a key is pressed. And a countdown timer that plays the rhythm track plus any key presses that were recorded to memory. The implication being that your friend needs to enter something before the timer runs down. All the while another track keeps playing 'Please enter code'

DustySeven7 (author)2012-05-27

You may need a powet filter. This "smothes" out the bumps in the power and gives a clean level power. DC current in cars is tricky. I have leds in my car under the dash runnig of the 12volt rail. I have the regulator and power filter in a 12volt power plug. I also have a protection fuse.

And on the ardunio, when the programer is pluged in the unit switches to usb power. Which is 5volt at around 750ma. 750ma is the max usb can give out. This may not be enough for certian servos. A method I see that works is a relay to control the highet power for the servo. Yes it is more wiring and tweaking in the code. Hope this helps

nadav (author)2012-05-27

it may be because the battery's voltage is 6V and if I'm pretty sure that unless you're running of usb the arduino need a higher voltage in order to drop it down properly to 5V (using its onboard 5V regulator)

louisw (author)2012-05-27

hi, great able, one question, ever accidentally unlock trunk just walking by?

Lucas Reed (author)louisw2012-05-27

Thanks, I have never accidentally unlocked it because the range is small enough that you need to almost brush the car.

zmashiah (author)2012-05-27

Very nice.
I see you are not putting the Arduino to sleep. This means it constantly takes about 40mA from the battery which is quite a bit. with 4.5A/h battery you get 110 hours of operation. If you are putting it to sleep for 1second, wakes up for polling the RFID (that will be very few mill-seconds and back to sleep) you will get an average current drawn that is substantially less and much more battery time. You could easily apply a factor of 20 to the above (so few months instead of current ~5 days). Plenty of samples for that, you can see my simple parking sensor instructable for one .

Few things to note when doing that:
1. Reduce unnecessary debugging messages and shorten them to reduce wake up time.
2. Make the serial fastest you can (115,200)
3. Remain time efficient in code, even at cost of space.

I got a factor of almost 50 with sleep of 2 seconds. The downside of that is the user experience can be of a delayed response to sensing the RFID. I think one second sleep will not an issue (on average a delay of 0.5second).

Lucas Reed (author)zmashiah2012-05-27

Thats awesome, thanks! I will have to try that.

farna (author)2012-05-27

For a security system you would want to kill power to the ignition switch, maybe from under the hood. A simple relay activated by the RFID. This is basically how the new cars with push-button ignition work. The RFID "key" kicks in a relay that powers the switch so you just push the button to start. So now you can convert any car to push-button ignition if you want, and still be secure.

KT Gadget (author)2012-05-23

For your power issue, as funky says, it could be too many amps going through.

Another possibility is not enough voltage (if it works the same as the Uno). The usual voltage I give for my ardunios is 9 volts, so try a 12 volt lead battery to see if it does the same pulsation as the 6 volt does.

Other than that, this could work together with another project someone did who took a keyfob and a nike+ rfid tag. The guy was able to unlock his car when he was about 10 feet away without using his keys to unlock his car.

Cool ible!

noname420 (author)KT Gadget2012-05-24

I was thinking the same about the voltage. 6v just not be enough.

noname420 (author)noname4202012-05-24

Oh and Amazing build. Love the idea and plan to make one of my own.

Lucas Reed (author)KT Gadget2012-05-23

Cool, thanks, I will try the 9v! I thought that since it was a 4.5Ah/hour battery that the actual current value would be less but I am not too experienced with this.
As for the Nike + door unlock system, are you referencing the one that Nate from sparkfun made? I have made that system as well (I would make an instructables for it but he has a tutorial on sparkfun) and will hopefully top everything off with a push button start system.

KT Gadget (author)Lucas Reed2012-05-23

Just be careful when going over 12v, the built-in regulator on the arduino can get hot. So use an external regulator and put it to 9v (fixed or varied regulator).

About This Instructable




More by Lucas Reed:Make an Optical Disk DisplaySimple and Fun Proximity AlarmLaser Painting with Motion Control and Arduino
Add instructable to: