I have an early 1990’s garage door opener that does all of the things you need a garage door opener to do (it… opens the garage door). However, the remotes are the size of cinder blocks and I never have one with me when I need it, so I decided to find a way to use my phone instead. This project is part of a long history of unnecessarily connecting items in my house to the Internet.
- A janky garage door opener, ideally the kind with wired switches attached to your garage wall
- Some form of a server… nothing powerful. A $50 Raspberry Pi is about 50x more powerful than you need
- A relay controller. For this project I happened to have a CanaKit UK1104 USB relay controller laying around
- Some wire to connect from your server to the garage door opener, CAT5 is overkill and works great
- A patient / forgiving significant other
- Wait for your significant other to leave the house for at least 90 minutes.
- Connect the relay controller to your server
- Grab my Garage-Door-Controller code from Github and copy it into the html directory of your server. In includes PHP and Perl scripts, the best programming languages 😜
- Install the Perl package Device::SerialPort. On Ubuntu / Debian:
sudo apt-get install libdevice-serialport-perl
- Make sure the script can access the serial device… On Linux, you can add the web user
dialoutgroup, or if you want a less secure option, use
visudoand add this line:
www-data ALL=(root) NOPASSWD: /var/www/html/garage/garageinterface(use the path for your server)
- Make sure the file garageinterface is executable,
chmod a+x garageinterface
- Run a wire from the relay 1 on the controller to the same terminals on your garage door that the buttons on your wall are connected to (you can leave those wires in place, too… no need to make the buttons not work). On your relay, the wires should connect to “COM” and “NO” (common and normally open)
When connected to the same network as your server, simply point your web browser to /garage and the magic begins. If you are using your phone browser, the “Add to Home Screen” option creates an icon on your phone and eliminates the menu bar, making a clean interface.
The scripts provide a simple web interface that is responsive (it automatically adjusts to the screen where it is being rendered), so it works well on a phone web browser or whatever other web-capable device you want to use to open your garage..
There is a single “Garage Door Button” and pressing it… that’s right… it does the same thing as if you pressed the button connected to your garage door opener.
Of course you can connect the relay to whatever else you want to control… lights, refrigerators, bug zappers, sprinklers, your toaster.
If you are silly enough to follow in my path, I strongly suggest you only run this on a local home network (e.g. you must be connected to your home wifi) if you are using it on something like a garage door, partially because I didn’t consider security at all when writing the scripts, and more importantly, why in the hell would you want to open your garage door when you are not near your garage door? I know it sounds cool, but… no.
If you have a habit of wiring things up to teh Interwebs, I’d love to hear about your experiences… especially the ones that didn’t work out exactly as planned. Please leave a reply, below!