To solve the age-old first-world-problem of having too many automatic mechanical watches, configurable from a smartphone!
I designed this project using SolidWorks, it has some fun tools (non-intuitive as they can be sometimes...) like motion study. It allows to show how the device moves/performs when the motor turns, if the mating between the parts is done properly all connected elements follow the driving motor.
I added a rotational motor to the axis of the stepper motor and after fiddling with the settings for a while I got this mesmerizing moving mechanical watch winder:
I used small bits of PLA filament to connect the rings so that they can rotate relative to each other. On the prototype I used a soldering iron to melt the filament pieces inside the rings, otherwise they would've fallen out, but it looked really ugly. I realized that the rings can be deformed enough so I can insert the filament piece without having to leave the side of the rings open.
It turns out the side supports were unnecessary as the front and back supports for the big ring held it well enough.
Finally, instead of using pieces of filament and glue to connect the big ring to the supports and the small ring to the "inner support" I decided to use screws to avoid glue.
Regarding the hardware of the IoT mechanical watch winder it was important to me for it to run silently and be made with rapid prototyping tools such as a 3D printer. I found a design I really liked on which I decided to base my own version.
I ordered a stepper motor with a driver from eBay to see how loud it would be during runtime. The motor runs relatively silently depending on speed and commutation approach. The precision of the movement was not important.
I wanted to use an ESP8266-01 for the controller, however I discovered that it really lacks in GPIO. I was able to run the stepper motor (which needed 4 control pins) by sacrificing both GPIO and the serial TX/RX pins, but this required way too many external components (pull-up resistors) and made it awkward to troubleshoot. The ESP8266-12 had a lot more GPIO pins and was barely more expensive, so I decided to use it instead.