I calculated the dimensions of the MX1 coupling using a calculator.
I had previously made a 2-meter MX1, but the 6-meter size is too large, and the coupling connection is a bit wobbly.
I plan to redo the coupling using oil pipe clamps for fixation.
This smartwatch integrates environmental monitoring, visual touch control, battery management, and network communication functions. It uses an ESP32 microcontroller, a FreeRTOS operating system, an LVGL-developed GUI, and MQTT and HTTP protocols for network communication.
#ESP32 Smartwatch
#### Introduction This project aims to design a smartwatch integrating environmental monitoring, visual touch control, battery management, and network communication functions. The watch uses the ESP32S3 microcontroller as its core, FreeRTOS as its operating system, the LVGL embedded GUI framework for the user interface, and OneNET as its cloud platform for data access. Some circuit designs in this project are inspired by those of the renowned designer Qifan.
Project open-source address (the latest project updates are generally on Gitee, and all files can be found on Gitee): https://gitee.com/huantianxiang/esp32-watch



#### Watch Functionality Demo video in Pics/show.mp4
1. Function pages (sensors, compass, cloud platform control page (incomplete), settings (brightness adjustment));

2. Temperature and humidity collection, calculation and display of temperature, humidity, and perceived temperature;

3. Barometric pressure collection, calculation and display of altitude corresponding to the current atmospheric pressure;

4. Accelerometer sensor, enabling wrist-twist control for UI switching (incomplete);

5. Magnetic field sensor, calculating and displaying orientation (requires 5 seconds of 360° rotation for calibration before use; minimize magnetic field interference from surrounding electronic devices during calibration);

6. Screen brightness adjustment;

7. Calculation and display of remaining battery power;
8. Obtaining network time, updating local time and displaying it;
9. Obtaining network weather and displaying it;

11. The screen turns off after 8 seconds by default, and the entire device automatically goes into sleep mode after 15 seconds (swipe to wake the screen when not in sleep mode, press the side switch to wake it up after sleep mode; the 460mAh battery can last three to four days on a full charge);
12. A short press of the side button returns to the watch's home screen, and a long press for 1 second restarts the watch.
#### System Architecture System Architecture Description

#### Installation Tutorial
1. The hardware circuit of this project is developed using JLCPCB Professional Edition EDA. 1. Most original components can be purchased from LCSC. For other materials that are unavailable or too expensive on LCSC, you can check the Taobao purchase links in my BOM list; 2. LCSC offers free 4-layer prototyping. Remember to select 1mm board thickness; 3. Since the hardware circuitry uses mostly small packages, if you are not confident in your soldering skills, it is recommended to create a stencil or SMT while purchasing materials from LCSC; 4. This project code is developed using ESP-IDF + VS Code. After correctly deploying the ESP-IDF development environment in VS Code, open the project, compile and check for errors, then click "Burning" and select the chip model ESP32S3 for serial port burning (search online for methods; many tutorials are available); 5. The Gitee repository also contains STL files for the watch case. If needed, you can download them and 3D print the case.
#### Instructions for Use
1. By default, the watch needs to connect to the internet to synchronize network time after being powered on. To ensure normal operation, please modify your Wi-Fi SSID and PSWD in main/sys/wifi/wifi.h before flashing. 2. If you want to use the OneNET cloud platform project, please set the function enable macro MQTT_ENABLE to 1 in main/sys/mqtt/mqtt.h and modify the OneNET cloud platform information in the file to your own information. 3. When using the weather API, please be sure to modify the Xinzhi Weather API URL in the main/app/API/api.h file to your corresponding city and fill in your applied APP KEY (https://www.seniverse.com/api). 4. The lvgl business code is located in the main/ui folder. The lvgl project code of this project is mainly generated by GUI Guider. The lvgl version is 8.2, and the GUI Guider version is 1.6.1 (this version is older and can be downloaded from the Tools folder in the Gitee repository of this project).