Step 2. Program the remote control
A universal remote needs to be programmed to work with your garage opener.
Follow the directions to program it.
Check that it works
Step 3. Take apart a Garage Door Remote
Now that the remote control works, rip it apart.
Take off the clip on the back. Next, remove the screw.
Pry open the plastic case on the remote.
The goal is to get a standalone circuit board from the remote.
garage remote
remove clip and screw
pry open
Bottom of Remote
Top of Remote
Step 4. Prototype Smart Switch Solution
The Arlo doorbell has a 16 V AC and the Raspberry Pi Zero only uses 5V. So, I don't want any voltage or current going from the remote to the RPi. So, a relay with appropriate protective circuitry is required. I am using two relays on a board (see image below). Relay 2 is used for a doorbell push.
Run this command to pull the script from github:
$ wget "https://raw.githubusercontent.com/dumbo25/garage-door/main/home/pi/pushGarageRemote.py"
There are three boards: Raspberry Pi, Relay and Arlo.
The connections are as shown below. Instead of using a breadboard, I used male-female, and female-female jumper cables for the prototype:
RPi0 GND (pin 6) to Relay GND
RPi0 BCM GPIO 23 (pin 16, wPi pin 4) to Relay IN2
RPi0 5v (pin 2 or 4) to Relay VCC
Relay NO to Front doorbell wire
Relay Power to 16V AC to Transformer doorbell wire
Note: the command line interface (gpio) uses the Wiring Pi (wPi) numbering rather than RPI.GPIO BCM numbers. If you want, using "gpio -g" will use the BCM pin numbers.
2 Relays on a board (diagram on left of board is shown above on the right. The header pins for the RPi0 are on the top right)
Normally Open (NO), Normally Closed (NC) and Power (DC+ or VCC)
Step 5. Drill holes and Solder 90 degree Header Pins
This step will depend on the universal remote that you use.
On my remote, the blue button on the top of the remote is what normally opens and closes the garage door. Instead of the button, I will use a relay that can be opened or closed using a programmable GPIO pin on the Raspberry Pi.
The first step is to put in two right angle headers (only one is required). On my remote, a 12V+ line runs from the battery to the left side of the blue button.
Hold the board up to a light so you can see the lines and components on both sides of the board. Locate a free spot for the header pins.
I clipped the edges off a perf board right through the middle of the holes. I wanted to use the perf board holes as a guide to mark the header pin holes. I lined the perf board up with the pins on the blue button and clamped the two together, then with light force I marked three holes for the header pins.
Using a very small drill bit, I gently driller three holes. I cut two small pieces from the lead of transistor (any component or any appropriate electrical wire can be used.
Using Blue Tack to hold the header pins in place, I soldered one header pin and wire to each side of the blue button (see the images below and the highlighted areas).
Top of remote with Header Pins
Bottom of remote with solder
junction box
sensor
wall outlet
Step 6. Install Garage Door Sensor (SECO-LARM) and run wires
The magnet is attached to the left-hand, top indoor side of the garage door (yellow box on bottom right of picture)
The sensor is attached to the garage wall (bottom left and middle above) .
I ran solid thermostat wire from the sensor back to the raspberry pi. This required a hole from the garage into the attic and from the attic into the wall containing the garage door opener (doorbell switch).
The SECO-LARM wires are too short to run all the way back to the Raspberry Pi. So, I inserted a blue junction box between the SECO-LARM sensor and the solid wires running back to the Raspberry Pi.
In my house, there is an 18 inch gap between the ceiling of the first floor and the bottom of the second floor. I assume this is where the heating and cooling ducts run. I needed a drill bit extension long enough to go through the second floor and through the top 2x4 (top plate) containing the doorbell.
The most important part is when drilling from the attic into the area where the wires will run to the garage door opener is to NOT drill through the electricity. Fixing this was not fun. Seeing the sparks and having the lights go out was pretty thrilling!
The sensor requires two solid thermostat wires or invisible dog fence wire.
Step 7. Connect SECO-LARM to Raspberry Pi
The connections are as shown below:
RPi0 3.3v (pin 1) to one wire from the SECO-LARM
RPi0 BCM GPIO 24 (pin 18, wPi pin 5) to other wire from SECO-LARM
Note: the command line interface (gpio) uses the Wiring Pi (wPi) numbering rather than RPI.GPIO BCM numbers. If you want, using "gpio -g" will use the BCM pin numbers.