Automated Blinds Controller

Doug Melton
3 min readFeb 20, 2017

--

Over the past few months, I’ve been working on my latest cloud-connected smart home project: an automated controller for my blinds. I’m naming this project Helen, after Helen Keller, an inspirational American author.

I’m always improving, and never satisfied, so this project has changed components a few times to get to the state where it’s at now:

Blinds

Bali solar shades from Home Depot, with motorized option.

The motorization is supplied by Somfy, who basically has the monopoly on motorized shades. They come with a nice, simple, remote control.

Controller

My most very favorite cloud connected device, the Particle Photon.

For the uninitiated, the photon is a super simple cloud-connected Arduino. Particle has great customer support, a busy community, and open source almost everything they do. I can’t speak highly enough.

A microcontroller (i.e. Arduino) lets you write a little bit of software (firmware, technically) to blink LEDs or set output pins high (3.3v) and low (0v). The photon extends that by giving it a cloud interface.

Hardware Hacking

My idea was to simulate pressing the actual buttons on a real remote control, with a Photon. I bought a second remote control, and extracted the circuit board. I very carefully soldered some wires to the small pushbuttons on the remote. I connected those (via optoisolators) to outputs on my Photon. And that’s it, in a nutshell. Here are some pictures:

Firmware

My remote control has 3 buttons: open, close, and “my” (an overloaded stop button). So I created 3 Particle Functions, used 3 pins for output, and connected those outputs to 3 optoisolators. I put the very simple Arduino code/sketch on GitHub.

Note: I lied a little bit. I actually have 2 blinds, and 9 functions, but the idea is the same.

Android Client

A simple app with custom material style skeumorphic interface.

I used Inkscape to trace the actual remote, and draw a vector-based material style UI. I used Floating Action Buttons for the buttons. I used the Particle API for Android. I threw it all together in a Kotlin app.

Voice Client

Google Home -> IFTTT -> Particle

So what’s the next step? Well, controlling it by voice. Now my kids regularly ask our Google Home to “ok Google, please open the blinds”. IFTTT made this almost trivial. I created a new recipe, with Google Assistant as the trigger: “say a simple phrase”, and Particle as the action: “call a function”. That’s all there was to it!

Conclusion

Nothing in this project was super ground-breaking, but the end result was very fun!

--

--

Doug Melton

Passionate about learning, mobile devices, music, circuits, and beautiful UX. Android developer @ GoPro. I will make you laugh. Seriously.