I had been wanting to build something to control my garage doors for quite a while. With the success of the Fuel Oil Sensor, I figured it was time to make this work. We have 4 garages with openers, 3 of them on a detached building. The remotes that came with the openers don’t have decent range to them. If we’re inside the house and went to close up the garages for the night, most of the time they just don’t reach. Making a Wifi enabled systems seemed like the best method to control the doors.
This is using an Arduino Pro Mini, ESP-01 Wifi Board and a 4 channel Relay board. The program that runs it all is in 3 parts, one on the Arduino, one one the ESP-01 and one on my webserver. The ESP-01 handles all the connection to the Network and monitoring a JSON file on my webserver. When a button is pressed in a browser, it updates the JSON file indicating which door should open, the ESP-01 reads that value and sends it to the Arduino, which then fires the correct relay for 1 second. The ESP-01 then updates the JSON file so that the program doesn’t loop.
Overall this went together rather easily. I etched two boards for this, one is the board holding the Arduino and the ESP-01 as well as headers for the button and relay boards as well as voltage regulators. I used the UV transfer method to etch the boards with my UV Exposure box I built. The button board was etched using the same method, but it was a little tricky to get the hole drilled in the lid. One of them is a little off center, but it still works.
There’s a single LED on the lid, this will light during the boot process while the ESP-01 and the Arduino are handshaking. If everything goes ok and the it connects to the network the light will go out. After that it will light each time a relay is fired.
An RJ-45 jack is mounted on the side and a CAT5 cable was run the length of the center beam in the garage. At each door opener, I split open the outer insulation and pulled out a pair of wires and jumped it over to the relay contacts on the opener.
Testing The Garage Controller
There’s a delay from when you hit the button on the device to when the door starts to move, that’s expected because of the time needed for the ESP-01 to read the file. It might be about 2 seconds or so, but that’s reasonable in my opinion. I did add buttons to the box so that while I’m in the garage I can open either one of the other doors. Many times the kids want me to open up one of the other bays so they can get their bikes out.
Excuse the mess in my workshop, it’s been a little too cold out there to spend much time getting it cleaned up.
I have no external access to my network through my firewall, so I’m not terribly worried about someone accessing it. The only method to get to the buttons is to be on my wireless network, which is properly secured.