Motorized Roller Shade Opener

This project uses a widely available DC geared motor, ESP8226 board, and rotary encoder along with some 3D printed pieces to pull open/close a roller shade with a ball style chain.
The Wemos ESP8266 board connects to your home’s wifi and is automatically discoverable to Alexas on the same network (“Alexa, discover devices”)
The code emulates a smart bulb, so it will natively turn on/off with Alexa, but doesn’t understand open/close commands. The work around is to create a custom action with your natural open phrase, which maps to turning the device on, which is open.

It is designed to work with the ball style roller chain, like:

Wemos D1 Mini (any ESP board would do):
L293D H-Bridge Motor Driver:
Rotary encoder:
5v regulator:
One LED, two momentary buttons, and a DC power jack, plus some glue
Geared DC motor:
12v 2a power supply:
3D printed parts:
PCB (either diy with schematic or order pcb files below)

Arduino sketch:

These geared motors come in many different RPMs, providing lots of different levels of torque. My parents had 3 roller shades that were happy using the 65 rpm motors, but the largest one required more torque and a 25 rpm motor fit the bill nicely.

Images of the assembly: