Introduction: Make a DIY Smartwatch Using ESP8266
Smartwatches are extremely fascinating because of the numerous features provided by them with tiny body. The Smartwatch craze began when Pebble released their first Smartwatch. Since then, many companies are constantly working on designing the most utilitarian smartwatch.
But, What really makes a Smartwatch cool? It is definitely its looks and features. The best way to get personalized features on a Smartwatch is to design and build one on your own.
In this project, I will show you how to make a DIY smartwatch using an ESP8266 chip, ESP-12E. I have documented all the steps, but I recommend you to watch the video to get a better understanding of the process.
Step 1: Project Overview
The main features of this Smartwatch are to display time, weather and most importantly you can control other appliances by pressing the buttons on the watch. The watch receives all the data through the internet, so it has to be connected to the internet to function.
Here's how it functions:
1.Time: The watch connects to the nearest NTP server to get the time and date.
2.Weather: The temperature data is obtained from Yahoo Weather API.
3.Controlling other Appliances remotely: The watch connects to the Blynk server and uses its bridge function to directly control the other ESP8266 Relay module that I made in my previous project. You can watch the video Here.
Step 2: Preparing the Stuffs
For this project, Here are the components required:
Amazon.com:
1 x ESP-12e: https://amzn.to/2q5lxee
1 x OLED display: https://amzn.to/2Sghhp6
3 x SMD buttons: https://amzn.to/2Sghhp6
1 x 3.3V Voltage Regulator: You can get from an arduino uno or pro mini; https://amzn.to/2DbnwpI
1 x TP4056 (Charger circuit): https://amzn.to/2Sghhp6
2 x Small SMD buttons(buttons present on the NodeMCU); Assorted buttons kit: https://amzn.to/2Sghhp6
2 x 0603 LED: You can get from the charger circuit above.
2 x 0603 Resistor: You can get from the charger circuit above.
1 x SMD Slide Switch: https://amzn.to/2Sghhp6
8 x 0805 10K Resistors: https://amzn.to/2Sghhp6
2 x 0805 10uF Capacitor: https://amzn.to/2Sghhp6
1 x 0603 112 Resistor: You can get it from Charger circuit.
Amazon.in:
1 x ESP-12e: https://amzn.to/2JmDC09
1 x OLED display: https://amzn.to/2StEEeY
3 x SMD buttons: https://amzn.to/2CQNCxB
1 x 3.3V Voltage Regulator: You can get from an arduino uno or pro mini; https://amzn.to/2CPSDq9
1 x TP4056 (Charger circuit): https://amzn.to/2yCnN1a
2 x Small SMD buttons(buttons present on the NodeMCU); Assorted buttons kit: You can get it from a nodeMCU
2 x 0603 LED: You can get from the charger circuit above.
2 x 0603 Resistor: You can get from the charger circuit above.
1 x SMD Slide Switch: https://amzn.to/2yHgPI8
8 x 0805 10K Resistors: https://amzn.to/2COzKUn
2 x 0805 10uF Capacitor: https://amzn.to/2yE1hVQ
1 x 0603 112 Resistor: You can get it from Charger circuit.
Most of the Components can be bought alone but some of them have to be salvaged from other modules. I had taken the 3.3V Voltage Regulator from an arduino uno, the 2 buttons from nodeMCU and the LED's, resistors along with TP4056 were from the 3.7V LiPo Battery Charger circuit.
Step 3: Order the PCB's
I didn’t want the watch to be clunky and heavy so I thought the best way to reduce the usage of wires is to make a PCB. I designed the Schematic and Printed Circuit Board using EasyEDA: https://easyeda.com , then I ordered the PCB’s from JLCPCB.
To order a PCB, visit www.jlcpcb.com and upload your gerber file.
Here is the PCB gerber file: https://github.com/theTechnowright/DIY-Smartwatch...
The PCB’s arrived after two weeks, they were of pretty good quality for only $2.
Github link to circuit schematic, PCB gerber file and arduino code:
Step 4: Solder All the Components!
Then solder all the components to the PCB. I used a soldering to solder the THT components and a hot air Soldering gun for the SMD components. Using the Hot Air soldering iron I was able to solder all the SMD parts without difficulty. But it is not impossible to solder them without it.
After soldering the components, I found out that the GPIO pin 9 cannot be used as an input. So I had to cut the copper trace using an Xacto knife and soldered a thin wire from the button to the GPIO 14 pin. You don't have to worry about it because I have I already corrected the PCB's and the schematics.
Step 5: Programming the Watch...
Before we upload the code, we have to get the Weather API from Yahoo Weather API. Visit the page, under the YQL query click on the green text and scroll all the to the end till you find the text “nome, ak”. Here you should add your city’s name and country code. For example, I placed “Bengaluru, IN” where ‘Bengaluru’ is a a city and ‘IN’ for India.
After doing that, click on the “Test” button below and copy the link given under ‘Endpoint’ from “/v1” till the end of the link.
Then download the arduino code from here: https://github.com/theTechnowright/DIY-Smartwatch-...
In the code, first insert the Blynk Authentication code which will be emailed to you after creating a new Blynk Project. Then type in the WiFi SSID and password.
Paste the copied Yahoo API link in the place where it says ‘const String url = “” ‘ And then under the BLYNK_CONNECTED, Insert the authentication code of the other ESP8266 which controls the Relays. Finally scroll down till you find “TimeChangeRule”, Here add or subtract minutes from UTC according to your time zone.
I had previously done a DIY Weather Station project which gives a step-by-step tutorial to use BLynk. And here is the link to the DIY WiFi Relay project:
Then install all these arduino libraries :
Time.h & TimeLib.h: https://github.com/PaulStoffregen/Time
Timezone.h: https://github.com/JChristensen/Timezone
SSD1306.h & SSD1306Wire.h: https://github.com/JChristensen/Timezone
NTPClient.h: https://github.com/JChristensen/Timezone
ESP8266WiFi.h & WifiUDP.h: https://github.com/JChristensen/Timezone
Download latest Blynk library here: https://github.com/blynkkk/blynk-library/releases...
Now wire the 4 pin serial communicator to the USB-TTL convertor accordingly;
ESP-12eUSB-TTL Convertor
GND - GND
RST - RTS
RX - TXD
TX - RXD
On the arduino IDE, select your device as NodeMCU 1.0 and choose the correct COM port and upload the code. While uploading the code make sure to press and hold the flash button on the watch.
Step 6: Make the Straps for the Watch!
To make the watch straps, I used an elastic band from an old Safety goggles and attached it to the watch. You can take a look at the pictures above to get a better understanding.
I first thought of placing the battery right underneath the watch, but it was too bulky and uncomfortable. So I sandwiched it between the straps to keep the watch thin.
Step 7: Test the Watch and You're Done!
Now, turn ON your watch by sliding the switch. Then it should show a message saying " Connected to WiFi". If it does,then You Have successfully Made a Smartwatch! Congratulation!
On pressing the middle button, the watch will display Temperature, Time and date. And the other two buttons control the two relays of the WiFi Relay module. You connect the relay to any electrical appliance and that can be controlled by the watch. The best thing to do is to connect it to an extended power outlet. And Make sure to connect the Relay switch to the live wire and not the neutral.
*WARNING: This project involves handling of wires from the main power outlet. PLEASE DO SO ON YOUR OWN RISK. I AM NOT RESPONSIBLE FOR ANY INJURY CAUSED TO YOU OR ANYONE.
That's it, we have made a smartwatch!
Make sure to check out my youtube channel and subscribe for more cool projects like this:
www.youtube.com/thetechnowright?sub_confirmation=1
You can also follow me on Instagram:
www.instagram.com/thetechnowright
17 Comments
2 years ago
The whole thing seems to run (without Yahoo weather, which closed the service in Dec. 2019), but I can't see any output on the OLED-Display.
Address is 0x78/0x3c and at the serial monitor of the Arduino IDE I can see, that Blynk is running and connecting.
I've read somewhere, that there is a pwm-parameter for the brightness of the OLED, which has to be set, but I can't find the site with the instuction again ;( .
3 years ago
hello everyone i did this project and iam unable to upoad the code into esp 12f module ..this is the error message that i have received ..
Sketch uses 315000 bytes (30%) of program storage space. Maximum is 1044464 bytes.
Global variables use 31004 bytes (37%) of dynamic memory, leaving 50916 bytes for local variables. Maximum is 81920 bytes.
esptool.py v2.8
Serial port COM7
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
_
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Reply 3 years ago
Check port number
Reply 2 years ago
Did you press SW5 while compiling and transferring until the reset via RTS-Pin appears?
Question 3 years ago
Would it be possible to share the EasyEDA project so we can modify the board without creating a new project from scratch? I need to modify the shape to fit within an enclosure.
Question 3 years ago on Introduction
How long does the battery last if you leave the watch on.
Question 3 years ago
Yahoo Weather API this does not show any thing as you said kindly help me out how i can get it?
4 years ago
Amazing!! Tank you for share!! Is possible incluse camera in the project?
4 years ago
Hi, this is a really impressive project! A few days ago, I decided to make your smartwatch, but I found out that the Yahoo API you used is no longer available, so can you teach us if there is an alternative or another way to get the Yahoo API? Thank you!
Question 4 years ago
Hi This is amazing - thanks so much for sharing. I am learning electronics - could you please explain the circuit design please. I would like to know why you have used the specific resistors and capacitors. This would really help my understanding. Thanks and Kind Regards
Tim
4 years ago
This seems more easy to use than an Apple Watch
Question 4 years ago
Can you share the pcb design files so I could modify them to my needs?
thanks
4 years ago
Can you share the pcb design files so I could modify them to my needs? (unrelated project, but I need an esp a display and buttons like yours, besides some temperature sensors)
The musics and GC/intro sounds effects are much more louder than the rest of video.
Ty!
4 years ago
how do i put it so it can use multiple wifi's?
4 years ago
Beautiful, lookin forward to designing my own smartwatch.
4 years ago
Did I see this right? You shipping was close to $50? Otherwise, your project was very cool.
4 years ago
This is really impressive. You should enter this into the Electronics Tips and Tricks contest.