Giter Site home page Giter Site logo

smart-watch-winder's Introduction

smart-watch-winder

Gyroscopic smart watch winder w/ AWS IoT integration, computer vision skew detection and OLED display.

Intro

This project is based on the 3d printed Gyro watch winder by NedalLive. The intent is to wind an automatic mechanical watch, track each watch's accuracy over time and display the accuracy and winding statics on the onboard OLED display. Eventually, I'd like to display via a webapp as well.

To achieve this, a camera is mounted to the rear support frame to periodically take photos of the watch-face. These watch-face images are uploaded to AWS and processed via an computer-vision algorithm to determine the displayed time, the inferred time is then compared with NTP and stored as a statistic for each unique watch.

Current State

Winder stepper control: Functional, complete. IoT Winder stats publish: Functional, needs work.. IoT Winder stats subscribe: Broken, subscription works, but messages no longer displayed to console. Needs some attention.

Next steps (TODO:)

  1. Port/adapt ESP32 Camera driver to arduino.
  2. Design optimal path to upload the images. Probably a direct s3 object put & likely an API for metadata.
  3. Build training data set from my collection of automatic watches.

Hardware

Board: Heltec ESP32 WiFiKit (ESP32 + OLED) Camera: ArduCam OV2640 Stepper motor/controller: 28BYJ-48 + ULN2003 Ribbon extension: 24pin FPC extension Glass Dome: Ikea BEGÅVNING Glass dome with base Gyro parts: 3d printed Gyro watch winder by NedalLive

I also have a couple of AI-Thinker ESP32-Cam boards I plan to test with. This package dramatically simplifies wiring, as the camera is integrated. It will also allow for additional remote mounting locations of the OLED display, since the OLED is more compact when not mounted to the

Both camera modules have zif/fpc ribbon cables, so I'm hoping to be able to extend this remote, so the camera can remain in the rear support arm and the hide the rest of electronics in the base. Not sure yet if this will work as the cam modules normally require short cable runs

How it Works

NTP

I found an NTP Clock instructables project that conveniently used the same board. This proved

Driving the OLED display

Winder & stepper control

Winder stats to AWS IoT core

IoT integration is loosely based on the tutorial AWS IoT for ESP32 by ExploreEmbedded. Currently the Subscription is successful, but the handler doesnt seem to run. This happened after I sped up my main loop, so I suspect it may be a timing / resource issue, will troubleshoot later.

Computer Vision

A core component to this project is the ability to read time from an analogue watch. I've just started research into this area, since I'll need to get a set of images from the camera to build a training set first.

Ultimately the project needs an ML algorithm for 2 core uses:

  1. Fingerprint each individual watchface
  2. Read displayed time from the analogue watchface

One of the goals is to attribute stats to each watch, since its likely people will use the winder with multiple watches, there needs to be a mechanism for selecting each watch when it is added. I'd like to avoid mandatory user interaction, so the system needs to fingerprint the watchface, this fingerprint can then be used as an ID to attribute stats to.

There has been some work in the industry in this space I'll be building from. Analogue clock and watch reader DeepTime

Notes

##Other References (no particular order) Arduino using ESP32 IDF modules

smart-watch-winder's People

Contributors

cnidus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.