Smart Fitness Watch With ESP8266 [VScode]
Introduction: Smart Fitness Watch With ESP8266 [VScode]
An Esp8266 based fitness watch, completely made from scratch!
This shows the time by using NTP so the time is very accurate! and along with time this can also detect the motion of your hand on all 3 axis and warn you with haptic feedback according to the programmed motion. It can even measure BPM and display with a mini graph on the display(currently not working that great, will be fixed soon)! It can also drop an email to your friend/family according to the programmed-motion inside the watch.
So how is this watch compared to other fitness watches out there?
* Wifi - check
* Customizable - check
* 180mah battery - check
* Haptic - check
* OLED display - check
* IMU - check
* BPM monitoring - uncheck (it will work soon!)
This is going to be quite a long instructable with detailed instructions, so buckle up with a cup or two filled with coffee before building this one!
Before jumping into soldering and messing around, we’ll build a prototype with node MCU which is also based on Esp12E which we’ll be using in the final build.
Supplies
These are the list of products which can help you do this project with ease
(Affiliate Link)
* Esp12E: https://amzn.to/3h3b37s
* OLED display: https://amzn.to/2VcEATc
* MPU6050: https://amzn.to/2J8E06T
* Haptic motor(exact one): https://amzn.to/2J8E06T
* Haptic motor(alternative): https://amzn.to/2J8E06T
* 3.3V regulator: https://amzn.to/2J8E06T
* 105mah battery: https://amzn.to/2J8E06T
* Velcro: https://amzn.to/2J8E06T
* pulse sensor : https://amzn.to/2J8E06T
* pulse sensor(recommeded): https://amzn.to/2J8E06T
* HeaderPins: https://amzn.to/2J8E06T
* Angled Header Pins: https://amzn.to/2J8E06T
* Wires: https://amzn.to/2J8E06T
* FTDI: https://amzn.to/2J8E06T
* Arduino nano + programmer wire: https://amzn.to/2J8E06T
* Male USB: https://amzn.to/2J8E06T
* PCB: https://amzn.to/2J8E06T
* Soldering Gun: https://amzn.to/2J8E06T
* Soldering Lead: https://amzn.to/2J8E06T
* Foam sheets: https://amzn.to/2J8E06T
Step 1: OLED Interface With NodeMCU
To start with we’ll go with the OLED display, I used a 0.91 inch OLED display with 4 pins because it uses an I2C interface and we can use this display with just 2 wires apart from VCC and ground. 382
The interface is marked in the OLED module as GND, VCC, SCL, and SDA. SCL is the serial clock and SDA is the serial data.
The other feature of the display is, it has 128pixels horizontally and 32 pixels vertically which give a total of 4096pixels, and by turning ON and turning OFF these pixels we can display different text, images, and other graphics. But doing this manual would be very hard so we'll be using some libraries later to make life much easier.
Now for the electrical connection; connect the SCL of the display to D1, and the SDA of the display to D2, because D1 and D2 are the default I2C pins of the NodeMCU and to power the display connect the VCC and ground of the module to 3.3v and ground of the nodeMCU.
Step 2: Testing the OLED
First set up the Arduino IDE for NodeMCU.
To test if the OLED display is working or not, go to your Arduino IDE and download the Adafruit SSD1306 library from the library manager.
[Go to Sketch -> include library -> ManageLibrary -> Adafruit SSD1306]
Now open the example and select the SSD1306_128X32_I2C example. 158