从 0 到上手腕:ESP32 智能手表(ESP32-Smart-Watch)实战教程
2026/8/23 15:42:18 网站建设 项目流程

从 0 到上手腕:ESP32 智能手表(ESP32-Smart-Watch)实战教程

【免费下载链接】ESP32-Smart-WatchAn open source smartwatch based on the ESP32 compatible with the Arduino IDE.项目地址: https://gitcode.com/gh_mirrors/es/ESP32-Smart-Watch

ESP32-Smart-Watch 是一个能在 Arduino IDE 里直接烧录开发的 ESP32 智能手表项目。这篇文章带你走完:硬件准备、第一次烧录固件、3D 打印外壳、改代码加功能。

它只能看时间吗?这块 ESP32 智能手表能干什么

一句话:这是一块完全开源(MIT 协议)的手表,硬件设计文件、固件、外壳模型全在仓库里,可以当 IoT 控制器,也可以当 DIY 饰品。

核心特性:

  • 通过 BLE 蓝牙连接安卓手机,在表盘上显示手机通知
  • 点按屏幕上的 Spotify 图标控制音乐播放
  • 内置计算器,主屏放应用图标、通知条目
  • 触摸屏 + 手势(腕部动作)唤醒,配合睡眠策略省电
  • 板载 micro-USB 一个口搞定充电和下载程序,不用扩展坞

手表基于 ESP32 WROOM 模块,当前硬件版本是 V5,比 V4 更薄且保留全部功能。

![手腕上佩戴的 ESP32 智能手表,运行 V3 固件的应用图标界面](https://raw.gitcode.com/gh_mirrors/es/ESP32-Smart-Watch/raw/fe0f90e8b8a8f70fd08cb4740ebdffda3ebe488b/Pictures and Videos/2022-05-22 19.56.47.jpg?utm_source=gitcode_repo_files)

![ESP32 智能手表 V4 版本 PCB 板卡渲染图](https://raw.gitcode.com/gh_mirrors/es/ESP32-Smart-Watch/raw/fe0f90e8b8a8f70fd08cb4740ebdffda3ebe488b/SmartWatch V4/Board render.png?utm_source=gitcode_repo_files)

开工前 3 项检查:硬件、IDE 和 3 个库

先说硬件:项目固件是针对作者自研 PCB 写的,手上只有普通 ESP32 开发板的话跑不了完整手表功能,但可以通读代码做 ESP32 手表 Arduino 开发练习;要真正上手腕,需要按仓库里的 KiCad 文件(SmartWatch V4/、SmartWatch V5/ 目录)打板,或等打好的板子。

再准备电脑环境:Arduino IDE 安装 ESP32 板级支持包,然后按 README 装三个库(版本以 README 为准,其它版本"大概率能跑"但作者没测过):

  • Adafruit GFX 1.11.9
  • Adafruit ST7735 / ST7789 1.10.3
  • base64 1.30(Densaugeo 出品)

全可以在 IDE 的库管理器里直接装。

克隆到烧录的 3 步走,以及版本怎么选

第一步,克隆仓库:

git clone https://gitcode.com/gh_mirrors/es/ESP32-Smart-Watch

第二步,挑版本。仓库里有 3 套固件,README 明确只有 V3 在持续开发:

  • SmartWatch_Software(V1):用深度睡眠,省电最狠,适合把续航放第一位
  • Smartwatch_Software_V2(V2):动画和应用更多,改用轻睡眠,点按或手腕动作唤醒更快
  • Smartwatch_Software_V3(V3):更稳定、可扩展,新手直接从这套开始

第三步,用 Arduino IDE 打开对应目录的主 .ino(V3 就是 Smartwatch_Software_V3.ino,.ino 是 Arduino 的入口文件),选好板和串口,点上传。

一个容易踩的点:安卓配套 App 在独立仓库,且版本强绑定——V1 固件只配 App 1.2.0 及以下,V2/V3 必须用 2.0.0 之后的版本,否则连不上。

外壳与资料:3D 打印你的表壳

  • 仓库根目录的 .stl 文件(Rev 5 Top/Bottom、SmartWatch Rev 5 Case 2 上下壳)就是可直接打印的表壳模型,切片软件里打开即可
  • SmartWatch.FCStd 是 FreeCAD 源文件(.FCStd 是 FreeCAD 的工程文件),想改尺寸、刻字从这里动手
  • Pictures and Videos 目录存了各代手表的实拍照片和安卓 App 的 GATT 流程图,看蓝牙协议时有用
  • SmartWatch V4/ 和 SmartWatch V5/ 里有 KiCad 原理图、PCB 源文件、Gerber 生产文件和 BOM
  • imageTo565array.m 是把图片转成屏幕 565 色彩数组的脚本,自己做图标背景时能用上

![3D 打印的 ESP32 智能手表 V4 表壳渲染图](https://raw.gitcode.com/gh_mirrors/es/ESP32-Smart-Watch/raw/fe0f90e8b8a8f70fd08cb4740ebdffda3ebe488b/Pictures and Videos/smartwatch V4 Case.png?utm_source=gitcode_repo_files)

二次开发入口:蓝牙名和屏幕参数改哪里

想加功能或改配置,从这三处入手(以 V3 为例):

  1. 主循环在主 .ino 的 loop() 里:先判断该不该醒着,醒着就 drawFrame() 刷新画面并拉通知,没人操作就 deviceSleep() 休眠,被摸醒后 onWakeup() 重新连蓝牙、刷时间。
  2. 蓝牙名在 Bluetooth.ino 里,一行搞定:
BLEDevice::init("ESP32 Smartwatch");

把括号里的字符串改掉,手机蓝牙列表里的名字就跟着变。

  1. 屏幕宽高、引脚定义、各种阈值常量都集中在 Declarations.h,比如 SCREEN_WIDTH 160、SCREEN_HEIGHT 128,全局搜一下就知道每个参数管什么。

避坑清单:ESP32 手表 Arduino 开发的 4 个常见坑

⚠️ 库版本:装了新版库编译也过,但花屏、图标错位,先把 README 指定的版本装回来再排查别的。

⚠️ 选板与端口:Arduino IDE 里板子要选 ESP32 系列开发板并选对串口,否则上传时一直卡"Failed to connect"。

⚠️ App 兼容:配套 App 版本别随意升降,V1 与 V2/V3 用的是两套通讯结构,互相不认。

⚠️ 屏幕不亮:V3 连续四次唤醒后无人操作会主动睡觉,摸一下屏幕或重新连接试试;触摸偏位的话,把 Declarations.h 里 CLEAR_TOUCH_CALIBRATION 打开重新烧录一次校准。

把 V3 固件先烧到你的板子上,再打印 Rev 5 表壳装起来。上手腕之后,改掉蓝牙名、换上自己的图标,就是属于你的一块表。这套 ESP32 手表 Arduino 开发流程到此全部走通,去 loop() 里加你的第一个应用吧。

【免费下载链接】ESP32-Smart-WatchAn open source smartwatch based on the ESP32 compatible with the Arduino IDE.项目地址: https://gitcode.com/gh_mirrors/es/ESP32-Smart-Watch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询