What you'll need:
- A spare remote car starter
- Microcontroller \ computer with GPIO (Raspberry PI, Beagle Bone Black, etc...)
- NPN Transistor (I used a PN2222)
- A Resistor (I used 1K Ohm. other values will probably work too)
- heat shirk (or other means of isolation)
- Small Piece of wood or something similar (you'll see why)
- Soldering Iron and solder
What are we going to do:
We are going to use a transistor as a switch, emulating a button press on the remote.
What are we NOT going to do and why:
You could try to connect the digital pin of the micro controller directly to one of the button's leads, but depending on the button configuration, you risk short circuiting. the safest approach is the emulate the button completly using a transistor.
Another method, is to search the part number at fcc.gov, read about the wireless frequency and modulation. then you can 'record' the button's signal and re-transmit it. this approach is a lot more work. I might have consider trying that had I only had one remote. but since i had a spare, it didn't seem to be worth the effort.
Step 1: Open It Up and Test the Button
The way the remote works, is that pressing the central button for 3 seconds triggers the signal.
We are going to emulate a button press using the transistor and micro controller. start by opening up the remote. you will see a button.
first thing, we need to identify which of the button leads are connected to ground, and which are the input voltage (they usually come in pairs).
To figure this out, we are going to use a multimeter.Make sure that your remote has power (i.e. batteries are connected). set the mulitmeter to test direct voltage, and test two leads at the time (the button leads are circled in red in the picture).
once you find a positive voltage reading, remember that the lead connected to black wire is ground, and the one connected to the red wire is input voltage.
Step 2: Wire It Up
- the Emitter leg of the transistor to the ground lead of the buttong.
- the Collector leg to the input voltage
- the Base leg to the resistor
- Connect the other leg of the resistor to your micro controller \ board computer.
- Connect the negative lead of the holder to ground of the micro controller
- Connect voltage source to the positive lead of the battery. you might be able to use the micro-controller vout pins. if you can't, the connect an external power source to the + and - leads of the battery.
For me, it was pretty hard to solder wires to the battery holder, so i just use a piece of wood to push the wires there. (see pictures)
Now, as we turn a digital pin on using the micro controller, it will be as if we pressed the button.
Step 3: Add a Cron Job!
In my case, I connected the remote to pin number 23 on my raspberry pi. the remote requires 3 second press to send a start signal.
The attached python script "presses" the button for 3.5 seconds.
Download it to your raspberry pi, and "chmod +x" to give it execution permissions.
Now all that's left is to write a cron job to start it daily!
with the rasperry pi, just type:
sudo crontab -e
and then add this line:
*/30 08 * * 1-5 /home/pi/start_car.py
Your car will now start every weekday on 8:30 am! (change the path of the script to match yours)
I used this website to check that my cron job does what I want it to do: http://cronchecker.net/