说明书

智能手表原型系统项目说明书

说明基于瑞芯微 RK2206 的智能手表原型系统,包括本地感知、运动计步、异常报警、NFC 门禁、语音控制、云端通信与鸿蒙应用原型。

项目说明书2025-08-12模拟智能手表系统RK2206OpenHarmony智能手表物联网华为云

一、项目概述

本项目是一套基于瑞芯微 RK2206 开发板和 OpenHarmony 轻量系统构建的智能手表原型系统。项目由 4 人团队完成,我担任项目负责人,负责总体方案、系统代码搭建、端到端数据连通以及核心功能算法设计,项目最终获得“优秀实习成果”奖项。

系统的设计目标不是单独完成一个传感器 Demo,而是把本地感知、设备交互、云端通信和手机端应用串成一条完整链路。手表端负责采集和处理数据,华为云负责设备接入与指令转发,鸿蒙应用负责数据显示、状态设置和运动数据查看。

二、功能范围

系统主要包含以下六类功能:

模块主要能力关键实现
体征监测采集并显示温度等基础状态数据SHT30、I2C、LCD
异常报警高温报警、久坐提醒、灯光与蜂鸣器提示阈值判断、定时任务、PWM/RGB
运动计步采集三轴加速度并统计步数MPU6050、滤波、阈值与边沿检测
NFC 门禁写入门禁标识和网页 URI,支持碰一碰交互NT3H、NDEF、NFC Forum Type 2 Tag
语音助手通过语音命令切换运动/门禁状态并查询数据SU-03T、UART2、事件队列
云端与手机端数据上报、远程控制、实时展示和参数设置MQTT、华为云、AMQP/HTTP/WebSocket 原型链路、ArkTS

其中,当前南向代码中已经能够看到温度、步数、运动状态、门禁状态和三类开关状态的完整数据结构。心率等更丰富的健康指标属于后续扩展方向,不应与当前代码中已经落地的温度监测混为一谈。

三、系统总体架构

系统可以分为设备端、云平台和应用端三层。

1. 设备端

设备端运行在 RK2206 开发板上,使用 C 语言和 OpenHarmony 轻量系统接口。传感器通过 I2C 读取,显示屏通过 SPI 驱动,语音模块通过 UART 通信,蜂鸣器和 RGB 灯通过 PWM/GPIO 控制,NFC 模块通过 I2C 完成 NDEF 数据写入。

设备端的核心任务包括:

  • 读取 SHT30 的温度、湿度数据;
  • 读取 MPU6050 三轴加速度,运行计步算法;
  • 更新 LCD 上的时间、温度、步数、运动和门禁状态;
  • 根据阈值触发蜂鸣器和 RGB 灯报警;
  • 通过 MQTT 向华为云上报属性,并接收云端控制指令;
  • 通过事件队列统一处理按键、云端和语音输入。

2. 云平台

设备端通过 MQTT 连接华为云 IoTDA,向设备属性上报主题发送 JSON 数据,并订阅命令主题。云端命令到达后,设备解析 command_nameparas 字段,将其转换为内部事件,再交给系统线程处理。

项目资料中的通信示意还包含 AMQP 客户端、HTTP 请求和 WebSocket 实时获取信息的设计:HTTP 用于主动获取设备信息或下发请求,WebSocket 用于接收转发后的实时数据,AMQP 用于云端数据转发。当前南向源码已经直接实现 MQTT 设备接入和反向控制;AMQP、HTTP、WebSocket 主要体现于平台侧和应用原型的通信设计。

3. 鸿蒙应用

展示了健康概览、运动记录和设备设置等页面,包含步数、体温、运动计时、门禁状态以及设备开关等信息。采用 ArkTS 和 Stage 模型,包含登录页、主页、控制页、数据模型和公共配置,并已生成 entry-default-unsigned.hap 构建产物。

Index.ets 负责通过 HTTP 获取华为云 IAM Token,并调用后端登录接口;MainPage.ets 建立 WebSocket 连接,接收设备实时数据;HomeComp.ets 展示设备状态和用户信息;ControllPage.ets 通过华为云设备影子接口查询设备状态,并下发灯光、电机控制命令。SmartWatch.ets 当前定义的字段包括光照、温度、湿度、电机状态和灯光状态。

四、软件任务与数据流

设备端在启动函数 smart_watch() 中创建多个任务,分别承担事件处理、按键扫描、云端通信、加速度采样、设备读取、久坐检测和时间更新。语音模块初始化后还会创建独立的 SU-03T 串口处理线程。

数据流可以概括为:

SHT30 / MPU6050 / NFC / SU-03T
        ↓
本地驱动与业务状态
        ↓
LCD 显示、蜂鸣器/RGB 报警、事件队列
        ↓
MQTT 属性上报 → 华为云 → 应用端展示
        ↑
MQTT 云端命令 ← 应用端控制

设备状态使用 e_iot_data 结构体统一封装,当前包含时间、温度、步数、运动状态、门禁状态、温度报警开关、久坐监测开关和语音助手开关。这样做的好处是驱动采集、业务判断和网络上报之间有清晰边界,后续新增传感器时不必重写整个通信层。

五、关键功能说明

1. 计步

MPU6050 通过 I2C 读取三轴加速度。算法计算三轴加速度平方和,经过简单滤波后与阈值比较;当信号从低于阈值进入高于阈值时计为一步,再通过静默计数避免连续重复计步。应用层通过 get_step_count() 获取累计步数。

2. 报警

设备端将温度 30℃作为当前代码中的高温判断阈值。高温状态触发固定频率蜂鸣器和灯光提示;久坐线程每隔 60 秒比较前后步数变化,当步数变化不超过 5 步时触发间歇提醒。报警开关可以通过云端命令启用或关闭。

3. NFC

门禁状态切换时,设备初始化 NT3H NFC 芯片,并依次写入文本记录和 URI 记录。例如门禁 1 写入 door1 与网页 URI,门禁 2 写入 door2 与另一网页 URI。实际使用时应将示例地址替换为正式的门禁服务地址,并补充权限和安全校验。

4. 语音

SU-03T 使用 UART2,配置为 115200、8 数据位、无校验、1 停止位。语音模块返回两个字节的命令码后,设备将命令转换为 event_su03t 事件,统一交给业务层处理,可用于查询温度、时间、步数,或切换运动和门禁状态。

六、构建与运行

南向工程位于 南向完整版 目录,主要源码在 smart_watch.csrc/include/ 下,构建入口为 BUILD.gn。按照项目 README,构建时需要将示例目标加入对应的 BUILD.gn 和 Makefile,并在烧录后通过串口查看设备日志。

配置 Wi-Fi、华为云设备 ID 和认证信息时,应使用本地配置或安全的构建参数,不应把真实密码、设备密钥和云端令牌提交到公开仓库。当前源码中存在直接配置痕迹,后续交付前需要完成敏感信息清理。

七、项目成果与后续方向

项目已经完成从底层驱动、设备业务逻辑、云端 MQTT 接入到手机端原型设计的完整技术闭环,证明了 RK2206 设备端多模块协同和端云数据通信的可行性。

如果后续需要从当前代码快照继续交付,工作应优先集中在三个方面:补齐鸿蒙端真实通信与页面代码;提高计步算法在不同佩戴姿态下的稳定性;将门禁 URI 示例替换为具备身份认证、权限控制和失效机制的正式方案。在原型阶段验证链路,在产品阶段补齐可靠性和安全性,才是这套系统继续演进的正确路径。