Bluetooth Garage Door Opener & Car Starter

 by tcollinsworth
Featured
BluetoothGarageDoorIntro.jpg
BluetoothCaseAndFobEnclosed.jpg
BluetoothModuleAndFobInOpenCase.jpg


If you're like me, you nearly always carry your phone or are frequently at a computer. I often find it more convenient when I can interact with the things around me like the garage doors, car starter, sprinklers, electric blankets, holiday decorations, etc. via my phone or computer.

It is relatively easy to Bluetooth enable many devices. These instructions will explain how I Bluetooth enabled my garage doors and car starter. The implementation is quite generic. Similar techniques could be used to Bluetooth enable many other things too.

The Bluetooth board that was used has at least six different connections that could each possibly control a different thing.

There is a corresponding free Android application that you can download; Daisy On/Off. It allows dynamically creating, labeling, and configuring multiple buttons so that you can easily control the various things that are Bluetooth enabled.

There are risks associated with wireless control and modifying any equipment. You assume full responsibility and associated risks related to your use of this information.

Materials: You can also buy a kit with all components.  For more information, check our website at http://daisyworks.net

Tools:
  • Soldering iron and solder
  • Wire cutters/strippers
  • Screwdriver
  • Knife
In addition to the above materials and tools, you will need an Android device to utilize the corresponding Android Daisy On/Off application for interacting with the Bluetooth module. Alternatively, there are links to the simple commands so that applications for other types of Bluetooth devices can be created. For example, you could control the Bluetooth module from a laptop or PC that is Bluetooth enabled. Apple 'i' product hardware has restricted Bluetooth access and would have to proxy through another device like a PC. Not a difficult task, but another hoop to have to jump through - choice is a good thing.
 
Remove these adsRemove these ads by Signing Up

Step 1: Getting to know the circuit and parts

diagramWithParts.JPG




The Bluetooth board has at least six pins that can be used for general purpose input/output (GPIO). The Bluetooth module on the board operates at 3.3V, however the board has a voltage regulator so that it can be powered from USB power or via other power sources like wall-warts or batteries up to 18VDC. By connecting the Bluetooth module to a general purpose MOSFET switch it can switch higher voltages and currents.

The BS170 MOSFET is a general purpose N-Channel transistor. This means that the switch turns on when the voltage on the gate is positive ~2.1V with respect to the source. The MOSFET source and Bluetooth module ground are connected together so they are properly referenced to each other. The gate of the MOSFET is the control and gets connected to one of the Bluetooth board GPIO pins. The MOSFET is turned on by driving the corresponding GPIO pin high.

When the Bluetooth module is reset or not set as an output, the pin effectively floats - it actually has a weak pull-down. By connecting a resistor between the MOSFET gate and source, we ensure that it always turns off.

Alternatively, if we wanted to turn positive power on to a device instead of grounding it for control, we could connect a P-Channel MOSFET to the N-Channel MOSFET. The source would connect to power, the gate to the drain of the N-Channel MOSFET and the drain to the devices positive terminal. The device would be directly connected to ground. A resistor should be connected between the MOSFET gate and source to ensure proper turn-off.

The Bluetooth board GPIO 3, 6, 7, 10, and 11 default to low upon power-up and will be off. GPIO 8 and 9 default to high upon power-up and will be on. The power-up state of each pin is configurable, see the quick reference manual and/or user manual.
1-40 of 72Next »
JasonS79 says: Apr 25, 2012. 1:33 PM
I did a similar garage door opener project:

http://goo.gl/mnYY2
drmpf in reply to JasonS79Sep 19, 2012. 5:50 AM
So did I .

www.pfod.com.au has step by step instructions for an Android controlled Garage Door opener (via bluetooth), NO Android programming and No Soldering required just plug and play

Uses my pfodApp. which has a user interface controlled completely by the Arduino code. Multiple menus, navigation screens, user input, multiselection lists etc.

Think HTML replacement for micros, with messages <255 chars and simple code on the micro side.

pfodApp is the micro-browser and your micro device (like Arduino) is the micro-server.
mrevil565 says: Feb 6, 2012. 9:35 AM
tcollinsworth,

I setup the project but have run into some issues with it. I think one is that the garage door opener I have is older and it has power running through the lines that control the opener. I think in stead of pulling the transister to ground I need to just close the transistor. I'm not too sure of that. But my other issue is that my bluetooth board has stopped working properly. The indicator LED is no longer working and I may have lost the programming on the controller. Is there a way you can help diagnose this with me? Maybe via email instead of open forum. Let me know if you can.

tcollinsworth (author) in reply to mrevil565Feb 6, 2012. 10:17 AM
Can you please send an e-mail to service@daisyworks.com and we'll try to help resolve the problem. Thank you.
gitanojr says: Jan 14, 2012. 5:35 PM
I dont have a Garage door, but i do have a car alarm that start my car, how do i connect this to my car alarm?? would i have to get some type of Bluetooth receiver for my car alarm?? and if that the case where can i get it, and how do i install it??

Thanks in advance...
tcollinsworth (author) in reply to gitanojrJan 14, 2012. 6:16 PM
I wish I could answer your question, however, I would need to know the make and model of this doohickey car alarm that starts your car. If you tell me that, I could try to figure out how you could interface to it. Interfacing with the starter key fob is much easier. I have a new bluetooth board that has the MOSFETs on it and screw terminals to simplify installation. I'll be posting a new Instructable on it very soon.
Thyce says: Dec 31, 2011. 7:54 AM
Great idea and great work! Thank you for the excellent instructable. This project could only be improved for lazy people like myself by making the setup completely hands free. It has a very big "wow factor" to show friends that you can open and close the garage door or car door with your phone but it would be much more convenient to have the car automatically unlock when you walk up to it, or the garage door open when you drive up without even reaching for you phone. This project may be easily adaptable to a Bluetooth Proximity Detector that simply scans for your Bluetooth MAC address to do just that.
mcasinillo says: Nov 23, 2011. 6:14 PM
sir' can u pls. post a sample video controlling ur device using commands instead of the daisy app.?
tcollinsworth (author) in reply to mcasinilloNov 24, 2011. 5:33 AM
It is simple enough to explain.

Discover and pair with the Bluetooth module. Then connect with SPP through the Bluetooth manager.

On linux rfcomm0 or the next available number will be created in /dev. On windows the next available comm port will be created.

Connect with the port that was created. You can use gtkterm on linux or hyperterminal or teraterm on Windows. You can also connect to the port with most any programming language for automation. This is the command on linux: gtkterm -e -p /dev/rfcomm0 -s 115200

Send $$$ and the module will respond with CMD.
To set PIO3 to an output send s@,0808<CR> and the module will respond with OK.
To set PIO3 high send s&,0808<CR>.
To set PIO3 low send: s&,0800<CR>.

You can find quick reference manual for the bluetooth commands here.
tcollinsworth (author) in reply to tcollinsworthNov 24, 2011. 5:42 PM
On Android devices you can use the Blueterm app to connect and send all the above commands.

The Android Bluetooth chat example is a good basis to begin from in order to create your own Android applications.
mcasinillo says: Nov 22, 2011. 8:46 PM
hi sir'.. if i order ur product how long it will take for me to receive if im in the philippines?
tcollinsworth (author) in reply to mcasinilloNov 23, 2011. 5:27 AM
That would depend on which shipping method you select. If you want it quicker, you can pay more and get it faster. If you want to save your money and are flexible, then choose the USPS shipping and pay only a few dollars or zero depending on total order amount and location. I would expect the order to arrive in ~10 days depending on customs and local service.
mcasinillo says: Nov 22, 2011. 11:18 PM
sir can i use a none touchscreen cellphone for this device?
and doi need to have the daisy app. if i wish to control only one device?

im planning to use ur device for my door lock project using my current cp:

sony ericsson k530

pls.. help..
tcollinsworth (author) in reply to mcasinilloNov 23, 2011. 5:21 AM
You can communicate with the module with any device that supports Bluetooth SPP profile. All you need to do is send it simple commands to turn any pin on or off. This can be done with probably any programming language that can communicate with the Bluetooth stack.

The Daisy On/Off app is an Android app and was specifically written for touch screen. A non-touchscreen app could easily be written.

According to the specs, the Sony Ericsson K530 does support the Bluetooth SPP profile, see: http://www.jawal123.com/1536090795/en-us/sony-ericsson-k530
lcolancecco says: Oct 18, 2011. 10:25 AM
I am trying to make it power a 5v relay I tried manny different resistors but none of them worked.....any suggestions?
tcollinsworth (author) in reply to lcolanceccoOct 18, 2011. 5:50 PM
Yes, you can power a relay. You will need more than a resistor. If you connect the Bluetooth module directly to a relay you will most likely damage it. The pins can only handle about 4 mA which is far less than most any relay. You will need to switch a transistor which can switch the relay. I've created a schematic for you.
lcolancecco in reply to tcollinsworthNov 3, 2011. 10:59 AM
Ok I built the circuit exactly as you're schematic and it still is not working, I double and tipple checked it and I know it's correct, but somehow it just isn't working!
tcollinsworth (author) in reply to lcolanceccoNov 3, 2011. 4:23 PM
It is possible that if you connected and tried to source or sink too much current that you damaged an output. Luckily there are several. The outputs can easily be tested with an LED and a 330 ohm resistor. Just connect them to each output and toggle the PIO pin it to see if the LED goes on and off. Try it with the LED+resistor connected to both +3.3V and to ground. Just remember to reverse the polarity. You might have blown either or both a high side or low side transistor.

I'm happy to work with you to try to identify the issue.
tcollinsworth (author) in reply to lcolanceccoNov 3, 2011. 12:11 PM
Take a closeup picture of the front and back and post it somewhere like google docs and send the links. I will do me best to help you solve the issue.
lcolancecco in reply to tcollinsworthOct 19, 2011. 11:07 AM
In your schematic you have what looks like a resistor but it's labeled U$2 is that supposed to be and inductor, resistor, I'm not familiar with that label
tcollinsworth (author) in reply to lcolanceccoOct 19, 2011. 2:06 PM
U$2 is a resistor. I forgot to change the reference designator. It should have been labeled R1. Any value between 1K and 100K would be fine. I typically just use 10K. It is there to make sure the transistor turns off quickly and completely if the gate is not driven.
lcolancecco in reply to tcollinsworthOct 19, 2011. 5:51 AM
I tried using the mosfet in your schematic but it didn't work, I'll try this circuit, thank you!
jessanthonyronquillo says: Jul 20, 2011. 12:43 AM
Good day sir.. I would like to ask if i can change the name of the switch in the Daisy on/off android apps.??? .example "left garage door" to "Computer starter" ..tnx.
tcollinsworth (author) in reply to jessanthonyronquilloJul 20, 2011. 5:51 AM
Yes, the switch labels, number or switches, and associated pin are easily configurable.
jessanthonyronquillo in reply to tcollinsworthJul 21, 2011. 12:25 AM
Thank you sir...Did you have a blueprint for this project...or some of the digital circuits diagrams .? ? can i ask those sir. THANk ahead...^_^
tcollinsworth (author) in reply to jessanthonyronquilloJul 21, 2011. 5:56 AM
A block diagram of the circuit is shown in one of the pictures and the schematic is drawn and described in one of the videos. The board schematic is available in the documentation listing if you click the link to the board.
jessanthonyronquillo in reply to tcollinsworthJul 24, 2011. 10:33 PM
Sir can i use ordinary bluetooth for this project?
tcollinsworth (author) in reply to jessanthonyronquilloJul 25, 2011. 6:28 AM
I assume by ordinary you mean standard Bluetooth as implemented by most phones and/or PCs. The Bluetooth module implements the most common Bluetooth specs in use today - 2.1/2.0/1.2/1.1 and SPP. That being said, Apple iPhone and iPad do not support SPP and can't be used to directly communicate with the module. They could communicate vi TCP/IP to a PC that has Bluetooth as a proxy.
Skipper333333 says: Jul 6, 2011. 9:05 AM
Great idea! I wonder if it can be hacked like a regular garage door opener?
tcollinsworth (author) in reply to Skipper333333Jul 6, 2011. 10:52 AM
Anything could be hacked given enough time. The Bluetooth module that is utilized supports encryption and up to a 20 character pin code. Since you only have to pair once, having a long pin code is not a big deal and provides decent security. You can manually change the pin code and enable encryption. Adding configuration of those features is planned for an update of the Daisy On/Off application.
vroom350 in reply to tcollinsworthJul 12, 2011. 4:36 AM
Sound great, I will make that one for car, etc. I have a question, supports encryption and up to a 20 character pin code, how change pin in bluetooth module? use USB between computer and module?
tcollinsworth (author) in reply to vroom350Jul 12, 2011. 6:22 AM
You can change all the setting over the air. When you connect to the module, send $$$ to enter command mode. You many need to power cycle the module as it has a command timer so that it doesn't go into command mode arbitrarily. I set the timer to unlimited before I ship the modules to make it easier for users to configure.

SA,1 - to set force pin code on
SP, - to set the case sensitive pin code

I have posted all the docs here. These settings are documented in the user manual.
vroom350 in reply to tcollinsworthJul 12, 2011. 6:52 AM
Cool, thanks. command what need BlueTerm? I will more learn about them.
tcollinsworth (author) in reply to vroom350Jul 12, 2011. 7:07 AM
It doesn't have to be BlueTerm, that is just what I use on the Android. Any terminal should work. I use GtkTerm on Linux. You could use hyperterm or whatever terminal is available on Windows.
vroom350 in reply to tcollinsworthJul 13, 2011. 6:50 AM
Cool. that use on the Android what kind program? like type command.
Installed Daisy On/Off, set Button Behavior is On/Off, when connected and press is on then out of range cause going to disconnect what happen with module will keeping on and wont off itself when disconnect right?
tcollinsworth (author) in reply to vroom350Jul 13, 2011. 7:12 AM
That is correct. The app sends the on and off command within one second. It certainly is possibly that if you were moving away quickly that you could send the on and lose connection and not send the off. There is a connection pin that indicates if the connection is active and changes when lost. I was thinking of adding a self reset to reset all pins to the default state if/when a connection is lost. I didn't for the instructable as I will be using a Daisy (Arduino clone w/Bluetooth) that I'm working on. It will have logic to complete the actions even if you lose your connection. I'm also working on a PC based proxy so that you can communicate via TCP/IP when you are out of Bluetooth range.
vroom350 in reply to tcollinsworthJul 13, 2011. 7:52 AM
Right I see, great for info. when send the on and lost connection and then staying the on, when back to range and re-connection but On is staying without default? but I will more practical with them, I already order RN-41 module, arriving should be tomorrow. What about Bluetooth Bee? maybe different command, isn't it?
Antenna Wifi same frequency 2.4Ghz from router, however possible put on the bluetooth module will work more range?
I wish trigger input module send to cellphone Android get a alert like pager, somehow might very practical to reprogram the bluetooth module, have available something?
tcollinsworth (author) in reply to vroom350Jul 13, 2011. 8:17 AM
The module allows you to program the default power up state of the GPIO pins. When reset, all pins are floating or tri-state, that's why I recommend the pull-down resistor.

Yes, Bluetooth and some WiFi share 2.4Ghz. I have ordered an antenna to try to increase the range myself. I plan to post information on the results when I have it.

I haven't investigated reprogramming the module. Also, the ICSP port is not broken out on this breakout board.
vroom350 in reply to tcollinsworthJul 20, 2011. 7:49 AM
I received the package last week just RN-41 module only, I made up own PCB with module. I set commands by Android use Blue Term, changed to the timer to unlimited, and pin (SA,SP), its great working with Daisy On/Off app, very well, module keep staying on after disconnect, and re-connect and Daisy will show button turn on green follow module stayed on, its amazing!

Pin I changed same 4 digit, but up to 20 like 20 digit use number or word or mix both? I haven't try yet.

I read other schematic RN-41, I see pull down with resistor 10K pin is 22 (P04_FAST_RST), I decide better follow put resistor 10K pull down 22pin, and all fine, maybe be safe, do you know that should be or doesn't matter?

How set just separate one output when connected and turn on then disconnect or out of range cause module will reset back to turn off? just separate one outside, other output keep stay on when disconnect or lost signal.
tcollinsworth (author) in reply to vroom350Jul 20, 2011. 8:52 AM
Little bit hard to follow the English.

The code is 20 characters, so you can use both upper and lower case letters and numbers.

The reset pulldown is not required as it has an internal pulldown - see the RN-41 spec sheet. It might be a good idea if you had a long trace or other logic connected, but not necessary if you don't.

It wouldn't be hard to add a self reset on connection loss. There are both positive and negative connect logic pins call CONN. You can program the powerup state of the pins so some will power up on and others off. When reset, they will tristate, you might want to add a low pass filter so they don't bounce when reset. A simple resistor cap circuit to slow down the gate voltage on reset would probably work just fine.
1-40 of 72Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!