Introduction

I decided to make this so I had a way of opening my garage door from anywhere. Very often I'm getting ready for bed upstairs when I realize that I left the garage door open and I have to go back downstairs to close it. Every now and then and friend or relative needs access to my home, so I thought this would also be a neat way to give them access.

You'll need some basic experience in a few different areas to replicate it. Basic electronics, soldering, and programming are pretty much required here. Also helpful is some experience configuring your router and setting static IP addresses on your computer.

The full stack from the top down includes:

A top level web site that knows where to send the /click GET request to on the internal network. The idea with this is that I'll be able to eventually control multiple devices from one app. My router is port forwarding requests to a computer on my home network with a static IP that's hosting the site.

An ESP8266 WiFi module listening for a /click request on its own static IP on the network. When it gets that request, it writes a " 1 " to serial on 9600 baud.

A Pro Micro that waits for a "1" to come across serial. When it sees that character, it momentarily sets pin 9 to HIGH. Pin 9 is connected to an NPN transistor's base pin.

An NPN transistor with the garage door opener's positive connection connected to the collector, and the garage door opener's ground connected to the emitter. I measured 16V on my garage door opener so it was well within the range of a basic transistor.

The circuit

The whole circuit is powered by a 5V 750mA phone charger that I cut and re-soldered to a barrel jack connector. Since both chips are 3.3V the power adapter is running through a 3.3V regulator with a 100uf capacitor on the voltage in (5V)/ground and a 10uf capacitor on the voltage out (3.3V)/ground.

As soon as I get the chance, I'll post a schematic and my code.

Eventually I'll 3D print a case for this so it looks a little nicer.

I had some issues with it clicking twice hitting the outside URL, but on WiFi it works perfectly.