Portable Watch:基于STM32的便携智能手表

发布于:2025-06-23 ⋅ 阅读:(15) ⋅ 点赞:(0)

Notice:项目在之前开发的基础上进行了修改耗时很多,希望大家喜欢,谢谢!!!

置顶、实物图展示

在当今数字化时代,智能穿戴设备逐渐成为我们生活中不可或缺的一部分。智能手表以其小巧便携、功能丰富的特点,受到了广大消费者的喜爱。作为一名硬件爱好者和开发者,我决定自己动手制作一款智能手表——Portable Watch。今天,我将与大家分享这款智能手表的设计和制作过程,希望能激发更多人的创造力和动手能力。
在这里插入图片描述
在这里插入图片描述

一、项目背景

随着智能手表市场的不断发展,市面上的智能手表虽然功能丰富,但往往价格昂贵,且功能定制性较低。我希望通过自己的努力,设计一款功能强大、成本低廉且高度可定制的智能手表。于是,Portable Watch 项目应运而生。这款智能手表不仅具备了市面上主流智能手表的常见功能,还为用户提供了高度的定制性和扩展性。
在这里插入图片描述

二、项目功能

2.1、项目硬件框架

在这里插入图片描述

  • 主控使用STM32F411CEU6,操作系统使用FreeRTOS,图形库使用的LVGL。
  • 传感器部分:手势识别使用6轴MPU6050;心率血氧使用的是EM7028;
  • 海拔测量用的气压计SPL06-001;
  • 电子指南针使用LSM303DLHC;
  • 蓝牙芯片KT6368A,可以无线升级。
  1. 电源部分:手表使用的是3.7V锂电池,通过TPS63020提供3V3电源,充电口留了两个焊盘,用来接触磁吸充电口。
  2. 蓝牙部分:KT6368A。
  3. 计算器:当时做带浮点数的计算器做得很烦,字符串处理很麻烦。现在这个计算器是通过一个数字栈和一个符号栈实现的,具体看代码。
  4. NFC部分(现已删除)。用的是RC522和一张UID卡组成的,可以自行复制外部IC卡,然后也可以被外部读卡器读写:
    在这里插入图片描述

2.2、项目软件框架

在这里插入图片描述
1. 正常运行模式

在正常运行模式下,Portable Watch 的所有功能模块都处于工作状态,包括屏幕显示、传感器数据采集、蓝牙通信等。这种模式适用于用户需要使用手表的所有功能时。

2. 睡眠模式

睡眠模式是为了在用户不频繁使用手表时降低功耗而设计的。在这种模式下,MCU 进入 STOP 模式,但 MPU6050 传感器仍然保持工作状态,用于记录步数。

3. 关机模式

关机模式是 Portable Watch 的最低功耗状态。在这种模式下,TPS63020 的使能引脚被关闭,3V3 供电被切断,只有 Vbat 供电维持 RTC 的工作。

通过优化唤醒机制、传感器功耗和蓝牙模块的使用,实现了高效的功耗管理。最初,我尝试使用 MPU6050 的运动中断功能来唤醒手表,但发现需要较大的抖动幅度才能触发中断,于是改为使用 RTC 定时中断,定时检测手势状态,如有抬腕动作则唤醒手表,从而提高了用户体验。对于 MPU6050 传感器,我通过修改初始化代码、关闭不必要的功能模块以及使用低功耗模式运行,有效降低了其功耗,确保在睡眠模式下仍能记录步数。在蓝牙模块方面,我最初使用了 KT6328A,其待机功耗很低,但在后续版本中改为使用 KT6368A,可以在不使用时完全关闭蓝牙,进一步降低功耗。功耗测试结果显示,在 3V3 供电的情况下,运行模式下功耗为 70-80mA,睡眠模式下约为 1mA,而关机模式下基本不耗电,只有 RTC 在工作。需要注意的是,如果电源接到 Vbat 端经过 DCDC 供电,实际功耗将取决于 DCDC 的效率。这些优化措施不仅延长了电池的续航时间,还提升了手表的整体性能和用户体验。

2.3、项目功能介绍

Portable Watch 拥有众多实用且强大的功能,几乎涵盖了目前市面上主流智能手表的所有功能,具体如下:

  • 日历功能:用户可以方便地查看日期、星期等信息,方便日常安排。
  • 计算器功能:内置简易计算器,满足基本的数学计算需求。
  • 秒表功能:提供精准的计时功能,适合运动或日常计时使用。
  • NFC 功能:支持 NFC 功能,可用于门禁卡、公交卡等场景,实现无接触式支付和身份识别。(在做)
  • 蓝牙无线升级:通过蓝牙与手机连接,实现手表软件的无线升级,方便功能更新和修复。
  • 与手机传信息:可以接收手机的通知信息,如短信、电话、社交媒体消息等,让用户不错过任何重要信息。
  • 抬腕亮屏:当用户抬起手腕时,手表屏幕自动点亮,方便查看信息,提升用户体验。
  • 心率检测:内置心率传感器,实时监测用户的心率数据,为健康监测提供支持。
  • 环境温湿度检测:配备温湿度传感器,实时检测周围环境的温度和湿度,为用户提供舒适的环境信息。
  • 指南针功能:内置指南针模块,帮助用户辨别方向,适合户外探险和旅行。
  • 海拔测量:能够测量当前所处位置的海拔高度,为户外运动和旅行提供重要的参考数据。
  • 游戏功能:支持玩2048游戏。
    在这里插入图片描述
    在这里插入图片描述
    这些功能的集成,使得 Portable Watch 不仅是一款实用的智能穿戴设备,更是一个功能强大的个人健康和生活助手。

三、项目特点

  • 高定制性:用户可以根据自己的需求和喜好,对智能手表的硬件和软件进行定制。无论是添加新的功能模块,还是修改界面设计,都可以轻松实现,满足个性化的需求。
  • 成本效益:通过精心设计和优化,Portable Watch 的成本得到了有效控制。在较低的成本下,用户可以实现功能丰富的智能手表制作,降低了入门门槛。

四、制作步骤

(一)电路设计

  1. 需求分析与方案确定

    • 在开始电路设计之前,首先要明确 Portable Watch 需要实现的功能。根据功能列表,我们需要考虑如何将众多功能集成到一个紧凑的电路板上。
    • 例如,对于心率检测功能,我选择了光电容积脉搏波传感,并设计了相应的信号处理电路,以准确地采集和处理心率信号。
    • 对于环境温湿度检测,我选用了集成的温湿度传感器芯片 ,它具有体积小、精度高、易于集成等优点。
    • 考虑到与手机的通信功能,我设计了蓝牙模块的电路,确保其能够稳定地与手机进行数据传输,实现信息同步等功能。
    • 同时,我合理规划了电源管理电路,为手表提供稳定的供电,确保各个模块的正常工作,并且要考虑电池的续航能力和充电电路的设计。
  2. 原理图绘制

    • 使用专业的电路设计软件,根据功能需求绘制原理图。
    • 以微控制器(MCU)为核心,连接各个功能模块。例如,将心率传感器的输出引脚连接到 MCU 的 ADC 输入引脚,以便对心率信号进行模数转换和处理。
    • 对于蓝牙模块,要正确连接其电源引脚、通信引脚(如 UART 或 SPI 接口)等,确保其与 MCU 的通信顺畅。
    • 在绘制原理图时,要注意各模块之间的电气连接关系,避免出现短路、干扰等问题。同时,要为每个模块分配合适的电源和地线,确保电路的稳定工作。
      在这里插入图片描述
      在这里插入图片描述
  3. PCB 布局与布线

    • 根据原理图进行 PCB 布局设计。由于 Portable Watch 的体积较小,因此需要在有限的空间内合理安排各个模块的位置。
    • 可以将 MCU 放在 PCB 的中心位置,然后围绕 MCU 布局其他功能模块,如传感器模块、蓝牙模块、电源管理模块等。
    • 在布线时,要遵循良好的布线原则,尽量减少信号线的长度和交叉,以降低信号干扰。对于高速信号线,如蓝牙模块的通信线,要采用适当的阻抗匹配和屏蔽措施,确保信号的完整性。
    • 对于电源线和地线,要设计足够宽的线宽,以满足电流的需求,并且要尽量减少电源线和地线的长度,降低电源阻抗,提高电源的稳定性。
      在这里插入图片描述
      在这里插入图片描述

(二)程序设计

  1. 开发环境搭建

    • 根据所选用的微控制器(MCU),搭建相应的开发环境。例如,如果使用的是 STM32 系列的 MCU,可以使用 Keil MDK 或 STM32CubeIDE 等开发工具。
    • 安装所需的编译器、调试器等工具,并配置好开发环境的参数,如目标芯片型号、时钟设置等。
    • 同时,要熟悉开发环境中提供的各种库函数和工具,如 HAL 库、标准外设库等,这些库函数可以大大简化程序的开发过程。
  2. 功能模块编程

    • 对于每个功能模块,编写相应的驱动程序。例如,对于心率传感器模块,要编写代码来初始化传感器,配置其工作模式,并实现数据的读取和处理。
    • 在初始化传感器时,需要根据传感器的 datasheet 设置其寄存器参数,使其进入正常工作状态。然后,通过 MCU 的 ADC 模块读取传感器输出的模拟信号,并将其转换为数字信号。
    • 对于温湿度传感器模块,同样要编写初始化代码,配置其通信接口(如 I2C 或 SPI),并实现数据的读取和解析。例如,对于 DHT11 传感器,需要按照其通信协议,通过单总线接口发送指令,读取传感器返回的温湿度数据,并进行相应的数据处理,将其转换为实际的温湿度值。
    • 对于蓝牙模块,要编写代码实现其与手机的配对、连接和数据传输功能。这通常涉及到蓝牙协议栈的配置和使用,以及数据的编码和解码等操作。
    • 在编写功能模块的代码时,要注意代码的可读性和可维护性,合理地组织代码结构,使用清晰的函数命名和注释,以便后续的调试和修改。
      在这里插入图片描述
  3. 系统集成与调试

    • 将各个功能模块的代码进行集成,形成一个完整的系统程序。在集成过程中,要注意各模块之间的通信和协作关系,确保它们能够正常地协同工作。
    • 例如,在实现抬腕亮屏功能时,需要将加速度传感器模块与屏幕驱动模块进行协同工作。当加速度传感器检测到手腕的抬动动作时,通过中断等方式通知 MCU,然后 MCU 控制屏幕驱动模块点亮屏幕。
    • 使用调试工具对系统程序进行调试,检查各模块的功能是否正常,是否存在错误或异常情况。可以通过设置断点、观察变量值等方式来定位和解决问题。
    • 在调试过程中,要注意观察程序的运行状态和资源使用情况,如内存占用、CPU 使用率等,确保程序的稳定运行。对于发现的问题,要及时进行修复和优化,以提高系统的性能和可靠性。在这里插入图片描述
      在这里插入图片描述

(三)电路焊接

  1. 材料与工具准备

    • 准备好所需的电子元件,如微控制器(MCU)、传感器模块、蓝牙模块、电阻、电容、电感等。
    • 同时,准备好焊接工具,如电烙铁、焊锡丝、助焊剂、镊子、剪刀等。选择合适的电烙铁功率和焊锡丝直径,以保证焊接的质量和效率。
      在这里插入图片描述
  2. 焊接顺序与技巧

    • 按照一定的顺序进行焊接,通常先从较小的元件开始,如电阻、电容等,然后再焊接较大的元件,如芯片、模块等。
    • 在焊接时,要注意焊接的温度和时间控制。温度过高或时间过长可能会损坏元件,而温度过低或时间过短则可能导致焊接不牢固。
    • 例如,在焊接电阻时,要将电烙铁的温度调节到合适的范围,然后将焊锡丝放在电阻的引脚和 PCB 焊盘的连接处,当焊锡熔化后,迅速将电阻的引脚和焊盘连接在一起,并保持焊点的光滑和饱满。
    • 对于芯片等较大的元件,要先在焊盘上涂上适量的助焊剂,然后将芯片的引脚对准焊盘,用烙铁轻轻加热焊盘,使焊锡熔化并流入引脚和焊盘之间的缝隙,形成良好的电气连接。
    • 在焊接过程中,要注意保持手的稳定,避免焊接过程中元件的移动,同时要注意焊接的质量,确保焊点无虚焊、短路等现象。
      在这里插入图片描述
  3. 焊接后的检查与清理

    • 焊接完成后,要对焊接好的电路板进行检查。可以使用放大镜或显微镜观察焊点的质量,检查是否存在虚焊、短路等情况。
    • 同时,要检查元件的安装是否正确,引脚是否连接到正确的焊盘上。对于发现的问题,要及时进行修复和调整。
    • 然后,使用酒精或专用的清洁剂对电路板进行清理,去除焊接过程中残留的助焊剂和污渍,以防止这些残留物对电路的性能产生影响。清理后,要将电路板放置在通风干燥的地方晾干。
      在这里插入图片描述

在这里插入图片描述

(四)程序烧录

  1. 烧录工具与接口准备

    • 根据所选用的微控制器(MCU),准备相应的烧录工具。例如,对于 STM32 系列的 MCU,可以使用 ST-Link 烧录器。
    • 检查烧录器与电脑的连接是否正常,确保烧录器能够正常工作。同时,要将烧录器的接口连接到电路板上的相应接口上,如 SWD 接口或 JTAG 接口。
      在这里插入图片描述
  2. 烧录操作与验证

    • 打开开发环境中的烧录工具,选择正确的烧录文件(如 .hex 文件或 .bin 文件)和目标芯片型号。
    • 点击烧录按钮,开始将程序烧录到 MCU 中。在烧录过程中,要观察烧录工具的状态指示,确保烧录过程顺利进行。
    • 烧录完成后,要对烧录结果进行验证。可以通过开发环境中的调试工具,如读取 MCU 的内存、寄存器等信息,来检查程序是否正确烧录到 MCU 中。
    • 同时,可以对 Portable Watch 进行简单的功能测试,如点亮屏幕、读取传感器数据等,以验证程序的正常运行情况。如果发现程序运行异常,需要重新检查烧录过程和程序代码,找出问题并进行修复。
      在这里插入图片描述

五、Portable Watch外壳的3D打印

(一)外壳设计

  1. 建模软件选择
    • 我选择了 Fusion 360 作为建模软件,它功能强大且易于上手,非常适合进行复杂的产品建模。
  2. 尺寸测量与规划
    • 首先,我测量了电路板的尺寸,确保外壳能够完美地包裹电路板。同时,我考虑了手表的佩戴舒适性,设计了符合人体工程学的外壳形状。
  3. 细节设计
    • 在设计外壳时,我添加了必要的开口和槽位,以容纳屏幕、按钮、传感器等部件。同时,我设计了表带连接孔,方便安装表带。

(二)3D打印

  1. 打印机准备
    • 我使用了一台普通的 FDM 3D打印机,打印材料选择了 PLA 塑料,因为它具有良好的机械性能和易于打印的特点。
  2. 打印参数设置
    • 根据外壳的尺寸和形状,我设置了合适的打印参数,如层高、填充密度等。为了确保外壳的强度和精度,我选择了较高的填充密度和较低的层高。
  3. 打印过程
    • 打印过程中,我密切监控打印机的运行状态,确保打印过程顺利进行。经过几个小时的打印,外壳终于完成。
  4. 后处理
    • 打印完成后,我使用砂纸对外壳进行了打磨,以去除表面的毛刺和不平整部分。然后,我使用喷漆对外壳进行了喷漆处理,使其外观更加美观。
      在这里插入图片描述
      在这里插入图片描述

六、Portable Watch成品展示

经过一系列的设计和制作过程,Portable Watch 终于完成了。以下是成品的展示和功能测试:

(一)外观展示

  • 外壳:3D打印的外壳完美地包裹了电路板,外观简洁大方,佩戴舒适。
  • 屏幕:屏幕显示清晰,色彩鲜艳,能够准确地显示各种信息。
  • 按钮:按钮布局合理,操作方便,能够轻松地切换各种功能。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(二)功能测试

  • 日历功能:能够准确地显示日期和星期,方便日常查看。
  • 心率检测:实时监测心率数据,数据准确可靠。
  • 环境温湿度检测:能够实时显示环境的温度和湿度,为用户提供舒适的环境信息。
  • 蓝牙通信:与手机连接稳定,能够接收手机的通知信息,如短信、电话等。
  • 抬腕亮屏:当抬起手腕时,屏幕自动点亮,提升了用户体验。

通过以上详细的制作步骤和成品展示,我们可以看到 Portable Watch 不仅是一款功能丰富的智能手表,还是一款具有高度定制性和扩展性的智能穿戴设备。希望这篇博文能够激发更多人的创造力和动手能力,一起探索智能硬件的无限可能。

希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。

作者:Svan.


注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!


网站公告

今日签到

点亮在社区的每一天
去签到