Wi-Fi Enabled Garage Door Opener

Normally, internet-controlled household devices are a cobbled together mashup of parts. This is great for a prototype, but if you’re looking for something that will last a decade in your garage, you’ll need something a little cleaner and more robust. [Phil]’s Internet-enabled garage door opener is just that, replete with a custom-made enclosure for his Arduino powered system.

The main hardware for [Phil]’s build is a Freetronix EtherTen, an Arduino clone with a built-in Ethernet interface. Aside from that, the electronics are simple: a relay, transistor, and diode provide the connection from the EtherTen to the garage door opener.

The software for this setup consists of a main file that sets up the web page, the serial monitor, and loops through the main program. There are a bunch of classes for initializing the web page, writing passwords to the EEPROM, activating the door, and setting the MAC and IP addresses.

Opening the door with this remote is a snap: with any WiFi enabled smartphone or tablet, [Phil] only needs to log onto his network, surf on over to the page hosted on the Arduino, and enter a password. From there, opening the door is just a press of a button. Passwords and other configuration settings cane be entered with MegunoLink. This software also includes a serial monitor to log who opened the door and when.

It’s an interesting and compact system, and handy to boot. You might sometimes forget your garage door opener, but we’re thinking if you ever find yourself without your phone, a closed garage door is the least of your problems.

27 thoughts on “Wi-Fi Enabled Garage Door Opener

    1. Also did it with raspberry pi – my setup uses tornado for webui with google account auth. But I didn’t use relay – just a single optoinsolator, which emulates button press. I could use transistor, but it was still cheap, and I don’t have the requirement of common ground. For connectivity beside local wifi network I use autossh to port foward to the server with public IP.

      I still didn’t make any detection of the state of the door – when I do that I will probably provide some writeup of the overall setup. For now I’m thinking to use raspberry camera, as camera in garage would be nice anyway.

      As for software (which is very basic tornado app) features: beside google auth (which is built-in in torando) I implemented some refresh protection, which prevents you from closing/opening garage door accidentally after refreshing the site or resending request because of bad connectivity (which can happen on mobile phone).

  1. This made me chuckle:
    “Opening the door with this remote is a snap: with any WiFi enabled smartphone or tablet, [Phil] only needs to log onto his network, surf on over to the page hosted on the Arduino, and enter a password.”

    I guess the definition of “in a snap” varies a lot. Imagine yourself pulling in front of your house and starting to fiddle with your phone for a couple of minutes, just to open the garage door. Who want to do that?

    I think this would be a better/faster approach: a dedicated garage door phone app connects, through an encrypted TCP socket, directly to your tiny Linux box in the house and does a simple handshake based on a shared secret and a session key that you setup once. No need to type passwords each time. The arduino connected through usb to the Linux box, handles the garage door opening/closing and the door sensors (leaf switch, quadrature encoder, what have you). If you lose your phone, someone may have some fun with your garage door until you get to unplug your arduino or change your shared key. This is how this one works:

    https://sites.google.com/site/stefanvpantazi/projects/my-android-garage-door-opener

    Enjoy.

    1. Not as bad as it sounds… I hope. You can have your phone auto logon to your home wifi and make the webpage be a shortcut. The password on the page seems over the top if your wifi network is secured unless you want to access it from the internet and not just your private network.

  2. I might as well jump in with a “me too” then. Mine does garage door and lighting using a Netduino Plus (as I was playing with that at the time) with relays for lighting and the garage door button.

    Mine runs a simple web server that reponds to rest URLs like (device)/garage/door/open and returns XML for the current state. It hosts a tiny website that has a couple of links to these URLs so it can serve its own UI to a browser. I also did a slightly nicer Android front-end.

    All I did for security was not to expose it outside my local network. If you cracked my WiFi password then you’d have access but I decided that was good enough.

    Always a nice little project however you go about it.

  3. I will enter my “me too”…..

    For my web opener I am using a device called webcontrol from CAI networks (I bought it for $35 on ebay). It has 8 DIO terminals, runs a very light web server, and is meant to be an industrial controller for HVAC (I think), because it has built in support for DS1820/DS1822 temperature sensors and Honeywell HIH-4000 Series humidity sensors. Anyway, I just took one of my RF garage door openers and wired it to the webcontrol’s DIO terminals. Then I used one of the output pins to power the opener board, and another to simulate a button press. From my phone I have a link on my home screen that sends the url request. When the webcontrol receives the request it sends power to the board, sets the switch to high, then sets the board power output back to low. The result is an door open or close within 5 seconds. Also, my phone automagically connects to my home wifi when I pull in the driveway. Yes I could just use the RF remote opener, but now I can do it from the web as well. I did the same thing with an RF X10 controller on the webcontrol board, back when I still had x10 devices for automation and control.

      1. Exactly. I have so many x10 modules I hate to throw in the parts bin….I would like to attempt to directly control the mains relays if it can be done safely…It’s really a shame that x10 (or any PLC, really) was so problematic and unreliable. It is so much easier to send x10 commands from a webserver with a python script than zwave or other replacements I’ve tried

        1. check out the micasaverde vera for easily scripted zwave control, big community too. the modules are kind of expensive if you plan to cover lighting but with an array of sensors the vera has the brains and radio to centralize the control of many automated functions quite well, especially for the cost.

  4. I appreciate trying to drag garage door openers into the new millennia. And this is a nice build. However, my door opener is from the late 60’s, still running strong with a simple astable frequency transmitter. I have hacked the controller into a newer enclosure, but all of the original solid state electronics still function without replacement. As a proven design, it has clearly lasted more than “ten years”. In fact, the technology is so old, it is unlikely to be compromised by younger hackers ;)

  5. technically, this is an awesome project.

    personally, i would never EVER put a lock of my house on the internet where it is convineently accesible to anyone in any country in the world or even more ;P
    … becuase they could sell the information to the local robbers…

    what i would do however is make bluetooth action from my phone AND keep bluetooth power on my phone off unless using it to unlock the door. also give the softeware a fake bluetooth power-on indicator to confuse anyone stolen my phone! haha

  6. It’s a neat proof of concept but I don’t think it really has any practical application. Your garage door opener should be in your car. If you can afford another car you can darn well afford another opener to put in it. Now, if he could program it for access over the internet and key it to open the door once the phone got, say, twenty or so meters away from the house such that he could pull right in without waiting or reaching for his phone, that would be useful. As it is, it’s just a typical “create something out of an arduino that does a worse job than what already exists” project.

    1. I agree, a proximity (while pulling into the driveway) trigger would be the most useful aspect of any *opener* project. I have been working on this aspect, plus a meter to gauge how far you are into the garage (for the door), plus automatically close the door after 90 seconds with no obstructions or activity. I wrote a picaxe program for the 18x back in 2005, but need to port it over to the Atmega C platform… (post pending)…maybe the tech for tollways/paycards could be useful in this endeavor?

    2. If the garage door opener remote is in your car they why is there typically a keypad on the door frame? I personally have been using the phone opener for a few years now. My wife uses it too, and that tells a lot. If it were not useful, she’d have no qualms giving it up. Here are some use cases where your regular garage door opener does not stand a chance..

      1) Sometimes your like to check on the garage door while away from the house, just to be sure it is closed. Or you may have an elderly relative that forgets their door open so you want to check on them.
      2) Sometimes, you may want someone to drop an item off at your house when you are not at home. You can open the door for them while talking on the phone. They can place the item in your garage after which you can close the door.
      3) You have a garage door opener that is so old that a second remote is not available in stores. You’re stuck to sharing the only one you have. Plus, leaving the remote in the car and forgetting to lock the car doors may have unintended consequences.
      4) Your garage door opener is old and the wireless protocol of the remote can be very easily hacked as it is not encrypted and the password is a 4 digit pin. Arguably, smart phone control is more secure..
      5)….

      1. I don’t argue that it could be easily hacked. The protocol via phone/internet or Bluetooth/keypad code is certainly more secure. For our purposes the situation will work until my porting of the old code is completed. None of the situations you listed apply in our situation, however I appreciate you pointing out the value of the newer designs, but they seem pretty obvious.

Leave a Reply to djittCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.