Having recently automated all of the lighting in my house utilizing a Z-Wave controller and network, the next project was to expand that infrastructure into the automation of other applications; in this case, horizontal blinds. If successful, this would also serve as a jumping off point for a later implementation of automated vertical blinds. Rather than invest the hundreds, if not thousands, of dollars in a commercial system, I wanted to come up with my own solution at a fraction of the cost.
The project requirements were:
- Fully automated opening and closing of the blinds
- Ability to control the blinds wirelessly via smart phone and through the internet
- Integrate with existing Z-Wave network
- Manual override
- Clean, self-contained installation
The first hurdle to overcome was figuring out which components would work well together and make for a cohesive system. Preexisting blinds provided a solid starting point and set initial constraints. From there, a 3xxx series servo driven by an Arduino Nano was chosen to facilitate the mechanical operation of the blinds. The final piece of the puzzle was how to seamlessly incorporate Z-Wave operability into the overall setup. I chose to utilize a Remotec Z-Wave relay module to bridge this gap.
Servo used to drive the opening and closing of the blind slats. The gear mounted on the servo shaft was taken from the blind’s original gearbox.
Having selected all of the components, the next step was to breadboard the main circuit, write the Arduino code and do a little bench testing. With a few code tweaks in place, everything was playing well together and working to my satisfaction so I hardwired the lot onto a PCB.
Arduino installed on a PCB to be installed in the frame of the blinds.
The relay module integrated into my Z-Wave network without incident and set the stage for the final dry run, as seen in the video below:
On the mechanical side, I removed and disassembled the gear box that controls the opening and closing of the blinds and commandeered the main gear that interfaces with the rod that tilts the slats. I attached said gear to the servo and then set about creating a mount to line everything up within the upper frame of the blinds. Unable to find anything off the shelf that would work, I machined a small, L-shaped piece from some scrap aluminum that I had on hand.
Mounting bracket used to align servo within the blinds’ frame.
Servo attached to mounting block. In order to get everything to fit correctly into the frame, I had to remove the mounting tabs from the left side of the servo.
Assembling everything into the blinds was relatively straight-forward. There was plenty of clearance for the wiring and PCB and the mounted servo fit perfectly within the confines of the frame.
Close-up showing the servo installed in the frame of the blinds.
View of the servo and Arduino components installed in the frame of the blinds.
With everything buttoned up, it was time for the final test before permanently hardwiring the switch into the house wiring.
Wanting to be able to manually control the blinds from a wall switch as well as wirelessly, I installed the ZFM-80 relay into a gang box with a Decora cover that would then be installed in an adjacent wall.
Test fitting the wall cover over the relay and gang box.
Unfortunately, the relay does not conform to the standard Decora dimensions so I plan to modify the opening slightly so that the switch fits flush with the surround.