[TheStaticTurtle] built a customer-specific control to automate his garage doors. He wanted to keep the original physical button and RF remote control interfaces while adding more modern wireless controls that could be accessed through his internet connected devices. Upgrading an old system is often a complex process of trial and error, and he has had to discard some prototype versions that did not turn out as planned. But luckily the third time was the attraction.
The original door closing logic was pretty simple. Push a button and the door will move. If it doesn’t go in the direction you want, press the button again to stop the motor, then press a third time to reverse the direction. With the help of the diagrams in the operating instructions and a little reverse engineering, he was able to find out how his add-on controller can be planned to interface with the old system.
There are many microcontroller options these days if you want to add IoT to a project, however [TheStaticTurtle] decided to use the old trusty ESP8266 as the brain of his new controller. In order for his auxiliary board to work, he had to recognize the direction of rotation of the motor and the limit switches when the door reached the end of the travel in both directions. After all, he needed a relay contact parallel to the activation button in order to be able to send commands remotely.
To determine whether the motor was moving in the “open” or “close” direction, he used a pair of optocouplers arranged one behind the other, parallel to the motor terminals. He connected another pair of optocouplers via the two limit switches, which indicated when the door was fully open or closed, and switched off the motor supply. Finally, a GPIO from the ESP8266 actuates a relay to send the commands to open and close the door. The boards were designed in EasyEDA and with a quick turnaround from China he was able to assemble, test and debug his boards pretty quickly.
The code was written with the Arduino IDE and connects the ESP8266 to the MQTT server running on its home automation computer. The end result is a beautiful dashboard with three open, close and stop icons that can be accessed from any device connected to his home network. A 3D printed case is attached outside of the original control box to keep things tidy. Using hot melt glue as a light guide for the status LEDs is a pretty nifty hack. If you want to take a closer look at the project, [TheStaticTurtle] has published all resources in his github repository.