Last November my garage door arm bracket got partially dislodged. This kind of failure gives no warning before it happens. I had nothing else going on, so that was enough motivation to build a proper monitoring system from scratch.
The system detects faults before they become failures. Every time the door moves, the system wakes up, captures the motion signature, runs it through fault detection models hosted in AWS IoT, and logs the result. The system needs human intervention when an alarm fires or when a battery dies. It’s deployed across three households including mine.
Typical garage door installation:
Partially dislodged garage door arm bracket:
The project focus is on garage doors, with fault detection ranging from arm bracket issues which are straightforward to validate to torsion spring failures, which are harder to test without a safe test stand and are theoretical implementations.
3D Printing, Python, C++, AWS
Calibration protocol includes the complete sequence of opening and closing the garage door, including the upward and downward movements, starting from the closed position to fully open and then back to the closed position.
The door moves relative to the tracks, and this can cause problems if the accelerometer is not positioned correctly. The reference tilt angle is be adjusted using a semi-automated procedure. Here are three outputs for three angles, -17 deg (CCW), 0 deg, and 17 deg (CW).
The shape of the signal comes from the rate of tilt around the turn, denoted by ((t)), and can be expressed by a the following first order differential equation:
\[\frac{d\theta}{dt} = f(\theta, G, t),\]
where (f(, G, t)) represents the function describing the dynamics of the garage door, and G is the geometry of the system.
To determine the optimal tilt angle, a sweep is be performed at varying tilt increments, which uses mutual information between two signals at a time. A hinge function is used to “fit” the calibration model.
In this instance, the sensor was positioned at a five-degree CW offset.
Once calibrated and ready to go, a dashboard is used to provide real-time updates using a mobile app or a browser.