Overview
This project uses an ESP8266, stepper motor/driver, some belts, sprockets, and pulleys to turn the IKEA Vidga curtain track system into a motorized, home automation controllable curtain opener.
The system uses MQTT in the current incarnation of the code, so you would need an MQTT server already established, but also shouldn’t be hard to adapt to another solution like fauxmoESP. My code and library is included below, but I have not done a clean up pass, and they were built for my particular setup, so expect to need to make changes. If anyone does the work of genericizing please let me know so I can share for others!
BOM
IKEA Vidga triple rail curtain track (rails, wall mounts, sliders, etc) – https://www.ikea.com/us/en/p/vidga-triple-curtain-rail-included-ceiling-fittings-white-70492886/
Wemos D1 Mini – https://amzn.to/3EEKZOZ (May be overkill, but was what I had on hand, and what the 3d printed parts currently require)
NEMA 23 Stepper motor – https://amzn.to/3ThJYke
Stepper driver – https://amzn.to/3ECD2Kg
Rotary encoder – https://amzn.to/3rTc6OT
Power supply 12v 2a – https://amzn.to/3EFPucf
Idler pulleys – https://amzn.to/3S0z9C3
60 tooth pulley – https://amzn.to/3RZJMEU
GT2 belt – https://amzn.to/3yD62xR
3d printed parts – https://www.printables.com/model/294416-ikea-vidga-curtain-opener
Code
This arduino sketch depends on Encoder, AccelStepper, and my ESPHADevice (below) libraries.
I need to clean up those libraries to make them more shareable, as they are currently special built for my personal use, but wanted to get this out first.