Amazon Echo Starts Your Car

Introduction: Amazon Echo Starts Your Car

About: DIY, electronics...and loves getting creative...

Using your voice to control everything has always been very interesting. With my shiny new echo I could connect all the usual "connected home" devices, but I really wanted the echo to keep my car warm and toasty on a winter morning. In this instructable we are going to make the Amazon Echo start any car. We will do this by programming a Raspberry pi zero to act like a Belkin Wemo switch, named My Car. You can then ask "Alexa turn ON my car"

1. Any remoter starter (compustar, drone mobile, Viper(viper has web APIs you can use :) )) + 1 extra remote (45$)

2. One 74HC4052 (~1$) (or use https://www.sparkfun.com/products/13906)

3. Pi-Zero (5$)

4. 10k resistor 1/4 W (https://www.sparkfun.com/products/11508)

5. USB OTG(https://www.sparkfun.com/products/11604) + Wifi Adapter(dongle) (15$)

6. pcb bare board (https://www.sparkfun.com/products/8808)

Step 1: Build Your Circuit

Open up the remote starter remote and disconnect the battery before you start. You could get away with connecting two wires on the opposite sides of the start button on your remote [shown in pic]. Every remote is wired differently, and you might have to figure out which two leads of the switch short when the start button is pressed. Also make sure you draw out the battery positive and battery negative(GND), this will power the 74HC4052 (Analog Mux). Now build the circuit shown in pic. This IC can support multiple buttons, but we are only using one channel right now. Make sure you short the enable pin to GND.

Step 2: Setup Your Pi

Now all you need to do is clone this repo to your home directory on the raspberry pi.

git clone https://github.com/sajingeo/EchoCarStarter

Run the device.py,

cd EchoCarStarter/

sudo ./device.py

Go to settings>connected home on the alexa app and run "Discover devices".

You should see a device "My Car" show up on the list. Now go ahead and ask Alexa to turn on your car. If it does not work the first time, retry "Discover devices"

Step 3: Auto Start the Scripts

Make sure all the scripts inside EchoCarStarter directory are executable (run chmod 777 *). Time to get more lazy :)

To run the script on startup (boot) edit the /etc/rc.local file
sudo nano /etc/rc.local

add this before exit.

sudo /home/pi/EchoCarStarter/device.py

also run "sudo raspi-config" and enable wait for network option (4) - assuming you have already setup the wifi or Ethernet on the pi zero.

1 Person Made This Project!

Recommendations

  • Make It Bridge

    Make It Bridge
  • Big and Small Contest

    Big and Small Contest
  • For the Home Contest

    For the Home Contest

15 Comments

0
JohnP673
JohnP673

6 years ago

Can this be modified to do two (different) button presses? I have a Chevy RKE fob which requires a quick press on the door lock button, then a 4 second long press on the start button. Could I use 2z and 2y1 for the second button, if so, how would I connect them to the pi zero? And how could I encode the second button press? Thanks for any help I can get on this, and for sharing this great project.

0
BradKuz1
BradKuz1

Reply 4 years ago

I have the same sequence with my truck. Were you able to get this working with your Chevy?

0
sajingeo
sajingeo

5 years ago

Nice... @coreyf311 you should post your schematics, for our maker friends :)

0
coreyf311
coreyf311

Reply 5 years ago

working on the write up now :)

0
coreyf311
coreyf311

5 years ago

Can you capture and log the IP of the Echo thats talking to the pi?

0
mitcha3154
mitcha3154

6 years ago

This is great, thanks for sharing. I hope you don't mind me adding some things that might help others like myself who might not be as electronically inclined as yourself and others.

1. Remember that the remote fob you will be using still needs to be programmed to start your car before this mod will work. I say this because I ordered another remote just for this project, and I went right to work on this project with it before realizing this, so be sure to program yours before starting this job.

2. I-think the item number from Sparkfun for the USB/OTB dongle (11604) is incorrect. This has a micro USB female. In my case the Raspberry Pi required a micro USB MALE, not female. (I'm not 100% sure this is correct, however the 11604 did NOT fit my RPi)

3. You will also need a power supply and an SD card for the Raspberry Pi.

Before I can continue I have a couple of questions.... Your circuit diagram clearly shows what needs to be grounded, but I don't understand what they need to be grounded to.

On your circuit diagram, one of the ground connections is called "remote GND". Does this go to the negative from the remote's battery ? (looks like the VCC goes to the positive battery terminal).

Thanks for your time. I did do a thorough search to find answers to all the above but it seems like you are a pioneer of this operation since there is almost no other information available on this topic.

0
JohnMBR
JohnMBR

6 years ago

Hey,

Would it be possible to upload a photo of the underside of the pcb board with the mux on? I'm a complete electronics noob and trying to work it out but I'm using the alternative mux option you provided

0
mseidel2
mseidel2

6 years ago

This is fantastic! My remote uses 3 key (lock) presses to launch the start sequence. What would be the easiest way to modify the GPIO command to have it fire the button command 3 times?

0
sajingeo
sajingeo

Reply 6 years ago

in your case you will need to use 3 gpios.

GPIO.output(REMOTE_GPIO1,GPIO.HIGH)

GPIO.output(REMOTE_GPIO2,GPIO.HIGH)

GPIO.output(REMOTE_GPIO3,GPIO.HIGH)

time.sleep(4)

0
mseidel2
mseidel2

Reply 6 years ago

I'm assuming you mean that I should have the gpio command run 3 times rather than using 3 separate GPIOs.
Here is where I placed it.

def changeIOState(state): ##simulate long key press

if state:

GPIO.output(REMOTE_GPIO,GPIO.HIGH)

time.sleep(4)

else:

GPIO.output(REMOTE_GPIO1,GPIO.HIGH)

GPIO.output(REMOTE_GPIO2,GPIO.HIGH)

GPIO.output(REMOTE_GPIO3,GPIO.HIGH) ## check this if you two buttons to turn ON/OFF

time.sleep(4)

GPIO.output(REMOTE_GPIO,GPIO.LOW)

I'm not seeing any continuity Between Y1 and Z when it runs. Did I place the code wrong, or is something wrong on the hardware side.

0
mseidel2
mseidel2

Reply 6 years ago

Thank you so much!

0
hkwaltermire00
hkwaltermire00

6 years ago

Hi, I just bought an Amazon Echo and want it to start my car. Can you please send me a list of exactly everything I would need to do this? My car is a 2015 Buick Encore.

0
Lindseybrown4
Lindseybrown4

Reply 6 years ago

What are the names of the other parts you are working with? I see you used some blue cord, wire, and a round board. This is my first project and I am a little unfamiliar.

0
sajingeo
sajingeo

Reply 6 years ago

the blue wiring, is described on step 1 (circuit diagram)

0
sajingeo
sajingeo

Reply 6 years ago

I have just updated step 1 with all required components.