The goal of this project is to create a lower cost alternative to motorized curtain rods, as well as making curtains WiFi controllable.
The current set up uses a NodeMCU and LLC as a pseudo WiFi shield. Because of this, there are two Arduino sketches. The sketch for the "shield" hosts a REST server, with an endpoint at "/curtains" that accepts the parameter "command." The sketch for the base Arduino Uno receives serial commands from the shield, and runs the motor accordingly.
Additionally, I would like to add hall effect sensors at the center and one end of the curtain rod to detect when to stop running the motor, rather than relying upon a finite passage of time.
A future version might remove the Arduino Uno and motor shield in favor of using only the NodeMCU and a motor driver.