WeMo Garage Door Opener

Connect a Belkin WeMo device to your garage door to allow open/close remotely, tracking door status, and integration with IFTTT

Similar projects worth following
Integrate an off-the-shelf WeMo switch to your garage door using an Arduino as the controller and two reed switches for sensing the door status.

****PLEASE NOTE: While this system does nothing more than add an additional “button” to open/close the garage and does nothing to defeat the safety IR Beam on the door, I can’t say for sure whether the system is completely safe as the garage door can open or close via remote command from anywhere based on an internet connection.****

A WeMo is basically a WIFI/remote controlled switch. You plug it into the wall and then something else into the WeMo (e.g., Christmas tree lights). Then you get the WeMo joined up to your WIFI at home and install the App on your iPhone/Droid and you can then turn the WeMo on or off from your phone. Big deal, right?. Well, I bought one this past summer as I installed a small fountain on my porch that did not have a switch…so before the WeMo I had to crawl under the porch to plug/unplug it from the extension cord every time I wanted to enjoy the peaceful surrounds of my Zen porch. But putting a WeMo down there meant I could turn it off and on from my phone.

But the WeMo is a bit more interesting than that. It can also have a set of rules for each WeMo switch. I created a rule to always turn the fountain off at midnight if someone left it running. And I wrote another to run the fountain one hour a day in the morning to ensure the water did not get gross or become a mosquito estuary if no one ran it for enjoyment. Now you get how these things are kind of cool. right?

But WeMo is even cooler as you can hook a WeMo switch into (If THIS then THAT). IFTTT is an internet automation system. So I have a rule on IFTTT to look for any picture someone posts to FaceBook which I am tagged in the image. If IFTTT finds an image I am tagged in on FB, it copies the image to a folder in my Dropbox account which allows me to keep an archive of Facebook images. You could use IFTT and a WeMo for a rule like “If I arrive home, turn ON the WeMo for the fountain” which will turn on the fountain when I get home.

I bought some more of these WeMo switches and started using them around the house for other things. By now I was really finding fun things to do with the WeMo. So I started thinking large. It has always annoyed me that we leave our garage door open all night, sometimes. What if I could use a WeMo to control the door and close it at 11pm every night? I started to think about how to do it and realized it would not be as simple as the a fountain. Why?

Well, the WeMo is not set-up all that well to work with a garage door as they work differently. The WeMo is more like a light switch - it is ON or OFF and it has a little light (blue LED) to reflect its state. But a garage door is different - it has a button that toggles the state of the door only. There is no ON or OFF switch for your garage door - just the ability to toggle its state. So how would you connect a device that is ON or OFF to a toggle device?

What’s worse is that the garage door system works by shorting two contacts on the motor for a second or so which tells the door to change states (that’s what happens when you press the button for your garage door). The WeMo device has no sense of “toggle”. The WeMo is just an ON or OFF device.

So how would you connect the two and make them work together? What I wanted was to tell the WeMo to change states from my iPhone and have that trigger the garage door. So I would need to program something in between the WeMo and the garage door to see that the WeMo changed states (from ON to OFF or the other way) and then tell a relay (or transistor) that is attached to the garage door motor to CLOSE for a second and then OPEN again. The CLOSING of the relay would short the contacts on the garage door which would cause it to move. There are simple electronic components that can do this (like a FLIP FLOP). So I could have the WeMo tell the Flip Flop to tell the relay to CLOSE for a second and then OPEN again which would work to get the door to move and change states.

A Flip Flop paired with a relay might have been a good first step...

Read more »

View all 6 components

  • On Chip Pull Up Resistors Not Enough

    cdh09/16/2014 at 01:22 0 comments

    After adding the small capacitors on the long transmission wires with the reed switches, the stability of the Arduino was much better. Instead of freezing/hanging once a day, the frequency was now once every few weeks. But it still happened. So I put some more capacitors on the long wires but this time closer to the Arduino I/O pins instead of the ones I initially put on the reed switches. This caused other issues and made the Arduino not able to sense door status properly. Then I had the realization that it was not RFI interference anymore and that the likely culprit was the pull_up resistors I was using on-chip on the Arduino must be very big and not pulling up very "hard". So I changed the Arduino code to eliminate using those on PIN 4 and 6 (the reed switch I/O ports) and instead soldered in some roughly 350 ohm resistors between the I/O port and +5V (pull ups). I think this will pull up much harder and likely keep the 5V (ON) logic in place solidly when the reed switches are open (N/C). Time will tell, but I am thinking this is the last improvement :-)

  • Did I never link the Arduino Source Code?

    cdh08/22/2014 at 13:19 0 comments

    Ughhh, sorry. Here it is:

  • Start-up Issues

    cdh08/22/2014 at 13:14 0 comments

    Note: When you first turn on the Arduino/Wemo system, it takes the Wemo time to crank up, attach to WIFI, etc. The Arduino starts up much faster, of course. But because of this, on startup (or a couple of minutes after), the system may be out of sync in that the WeMo and the state of the garage door are not properly matched. Simpy opening or closing the garage door once will sync things up. I can't think of a good way to fix this issue as I would love to sync everything when the Arduino starts up but I can't since the WeMo takes so long to start up. I could just put a silly delay in the Arduino start up code and maybe this is the best solution. then after the delay run the normal "sync" operation in the Arduino code (which is already there) and things will be happy.

  • RFI issues

    cdh08/22/2014 at 13:10 0 comments

    Added in some 100µF ceramic caps across each of the input/output lines that fun from the Arduino board out to garage components. This includes the lines that go out to the reed switches which detect the garage is open or closed as well as the lines that go to the garage door motor telling it to switch state. What I think was going on was that sometimes the spark of the garage door motor starting caused enough RFI coupling into those fairly long wires that it would cause a voltage spike and essentially render the Arduino into a hung state. Seems to be much more stable now for months at a time (instead of a week or so). YMMV on this one :-)

  • Switched from Relay to Darlington NPN Power Transistor

    cdh04/07/2014 at 22:53 0 comments

    Initially used a relay to trigger the garage door which just wants to be shorted to ground for a half second or so. But for the final version went to a (solid state) Darlington NPN transistor which is much simpler, cheaper, smaller, and just the right way to do it.

  • Belkin will begin selling a Maker WeMo

    cdh04/07/2014 at 22:44 0 comments

    So sometime in the Spring of 2014, Belkin will begin selling a "Maker" version of the WeMo switch. Not exactly sure if it will cost less or be better than taking apart a normal WeMo device. But looks positive. If it has all the right pin outs, it could be a lot easier to use one of these compared to soldering in a wire, etc.

View all 6 project logs

  • 1
    Step 1

    The first step is to find out how your garage door opener works. What you need to figure out is what happens when you press the physical switch (assuming you have one). If all you have is wireless remotes then you have to look closely at the garage door motor housing and see if there is a pair of contacts that can be used (shorted?) to trigger the "close/open the door" action. Once you have that understood, you can proceed to try and build this.

    I can't say I am an expert in all types of garage door opener motors. I have a Chamberlain system and the physical button next to the door of our house just has two wires that run to a pair of contacts on the door motor. When these are shorted, the door goes down or up (toggles state).

    If your door is different, you may need to figure out another approach. But basically you are looking for a way to electronically trigger the door state change.

  • 2
    Step 2

    Once you know how the garage door is electronically triggered, you need to figure out if you can use either a Darlington NPN transistor or maybe just a relay to trigger the door. One of these must be used as the Arduino itself is not capable of doing it directly in most cases. Why? Because the voltage and possibly current demands are outside of what one of the digital I/O pins is capable of.

  • 3
    Step 3

    Buy a WeMo and take it apart and grab the low voltage board.

View all 7 instructions

Enjoy this project?



james wrote 08/22/2014 at 03:08 point

  Are you sure? yes | no

cdh wrote 08/22/2014 at 13:26 point
"You guys need to check out iHued Cable, it does this for $30 and uses a webcam so you can watch the garage door up/down. Super easy to install, 2 wires and an App."

Well, maybe this is a good alternative approach. And while having a camera is a nice benefit, it is rather limited. For example, I never use my phone to open my garage. I do have a simple button for that in my car. What I use this system for nearly 100% of the time is to know WHEN the garage door opens/closes, automatically open/close it via geofences (coming home in my car or on my bike), log the door opening/closing to a text file, have tell the door to close at 11pm at night if we forget and leave it open, etc.

So I guess there are lots of ways to open your garage door with your phone, but my project is not really intended for that (although you certainly can do that too).

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates