# ESP32手表
**Repository Path**: fuwuli/esp32-watch
## Basic Information
- **Project Name**: ESP32手表
- **Description**: 使用 esp32s3实现一块集成温湿度感知,九轴姿态检测,气压海拔高度测测计算,电池电量管理的可视化触控手表。项目代码使用 freertos 操作系统和 lvgl 嵌入式 GUI 框架开发。
- **Primary Language**: C
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 12
- **Created**: 2024-10-29
- **Last Updated**: 2024-10-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ESP32手表
#### 介绍
本项目旨在设计一款集成环境监测、可视化触控、电池电量管理和网络通信功能的智能手表。手表采用ESP32S3微控制器为核心,FreeRTOS为操作系统,使用LVGL嵌入式GUI框架开发用户交互界面,OneNET作为数据接入云平台。
嘉立创开源平台地址:https://oshwhub.com/huantianxiang/esp32-shou-biao
#### 手表功能
演示视频在Pics/show.mp4
1、功能页面(传感器,指南针,云平台控制页(未完成),亮度调节页面);
2、温湿度采集,计算并显示温湿度和体感温度;
3、气压采集,计算并显示当前大气压下对应的海拔高度;
4、加速度传感器,实现翻腕控制UI切换(未完成);
5、磁场传感器,计算并显示方位;
6、屏幕亮度调节;
7、计算并显示当前电池剩余电量;
8、获取网络时间,更新本地时间并显示;
9、获取网络天气,并显示;
10、MQTT上报传感器数据至OneNET云平台;
11、OTA(使用HTTP协议将bin文件引导并写入到APP分区,使用SHA-256校验固件是否完整);
12、使用SPIFFS文件系统管理storage分区内文件;
13、默认8s后屏幕息屏,15s后整机自动休眠(未休眠时滑动屏幕亮屏,休眠后点按侧边开关唤醒,待机电流约2.5mA);
14、侧键短按回到手表主页,长按按钮重启;
15、使用大模型API接口和Python脚本,实现手表功能页的低代码客制化功能。用户输入一段文字描述即可生成对应描述的UI(生成的UI能够在电脑上模拟运行,查看生成效果)或解析网络API数据的代码段,脚本自动注入代码、编译并远程OTA更新至手表(本功能代码在我的另外一个仓库LCGP中,正在开发中)。
#### 系统架构
系统架构说明

#### 安装教程
1、本项目硬件电路使用嘉立创专业版EDA进行开发。原件大都能够在立创商城买到,其它在立创商城买不到或者太贵的物料,可以去我的BOM表上查看tb购买链接;
2、嘉立创四层免费打样,切记板子厚度选1mm;
3、由于硬件电路使用的物料基本都是小封装,如果对自己焊接能力没有自信的建议开钢网或者是在立创商城买物料的同时SMT;
4、本项目代码使用esp-idf+vscode进行开发,在vscode正确部署好esp-idf开发环境后,打开项目工程,编译检查没问题后,点击烧录选择芯片型号ESP32S3,串口烧录(方法自行搜索,网上很多教程);
5、仓库中还包含手表外壳的STL文件,如果有需要也可以自取后3D打印外壳。
#### 使用说明
1、手表默认通电后需要联网同步网络时间,为保证功能正常使用请先在烧录前到工程的main/sys/wifi/wifi.h中修改你wifi的ssid和pswd;
2、如果想使用OneNET云平台工程,请到main/sys/mqtt/mqtt.h中设置功能使能宏MQTT_ENABLE为1,并将文件中的OneNET云平台信息修改为你自己的信息;
3、使用天气API请务必在main/app/API/api.h文件中的心知天气API URL修改成你的对应城市和填写你申请的APP KEY(https://www.seniverse.com/api);
4、lvgl业务代码位于main/ui文件夹下。本项目的lvgl工程代码主要由GUI Guider生成,lvgl版本为8.2,GUI Guider版本为1.6.1(该版本较老,可以到本项目的Tools文件夹下载使用)。