李鸣佩

(武昌工学院,湖北 武汉 430065)

从20 世纪末期,手环出现在国内电子产品市场,然而市场上的手环产品和国外的产品相差较大,国内的相关电子科技方案的人员较少,只有较少的企业愿意投入资金去研发这类产品,所以产品之间存在差距。此款电子手环采用三轴加速度传感器ADXL345,通过单片机控制,可以获得人体动态数据,例如计步、倾斜角度等数据。电子手环具有功耗低、精度高、灵敏度高的优点。整体而言,手环正朝着多功能,高精度和低价格的方向发展。

1 系统方案设计

1.1 系统整体设计(图1)

图1 最小系统接线图

整个系统包括三轴传感器、体温采集、心率采集、蓝牙通信、按键、显示以及主控制器。RTC 内部时钟提供时钟信号,通过反射式光电传感器采集心率信号STM32 内部A/D 转换测量心率,LMT70 温度传感器实现体温测量。OLED 显示体温、步数、日期时间、心率等信息,可通过BT06 蓝牙模块传输至第三方手机软件APP(蓝牙助手)显示。三个按键用于调整日期、时间和数据,具有一个清除步数按键,还具有一个切换信息显示按键。步数每天00:00 会自动清除前一天的步数,也可通过按键清除。

1.2 主控制器方案(图2)

图2 STM32F103C8T6 引脚图

本次设计采用性能比较高的STM32F103 系列单片机,具有128k Flash 的芯片STM32F103C8T6 作为主控。该器件拥有32位数据处理能力,器件的成本低、性能强、能耗小。开发技术可以采用THUMB-2 指令,更加方便开发者进行开发,加快了项目完成进度。器件封装为贴片形式,所以占用空间小,集成度高,器件一共有48 个外设接口,器件的工作频率最大可到72MHz。

1.3 蓝牙通信方案(图3)

图3 蓝牙通信电路图

蓝牙模块可以在宽范围的温度环境中运行,模块的稳定性强,可以在很多复杂的场景中工作。模块带有超低功耗功能,节省可移动设备的电源功耗。蓝牙通信模块带有串口通信方案,模块通过蓝牙通信传输数据,数据再经过串口和其他控制器进行交互。最终进行无线数据传输,将心率、体温数据传输到手机。

1.4 三轴传感器方案(图4)

图4 三轴传感器电路图

作为一款低功耗而且体积较小的加速度计,数字式加速度传感器ADXL345,主要是通过进行加速度变换,进而改变内部电压电阻以及电容的变化情况。使用者在行走的过程当中,身体会上下起伏,微控制可读取该传感器的三组模拟量,通过计步算法分析处理数据,将数据合成为运动信息。ADXL345 数字式传感器具有精度高、体积小、反应快等特点,因此,其广泛使用与各种产品中。

1.5 体温检测方案(图5)

图5 体温检测采集电路图

本次设计用于智能手环设计,对于电路上的设计需要减小电路,数字式传感器电路小,性能稳定。LMT70 是高精度传感器,适用于人体检测设备,并且响应及时且输出易于调节。在室内无风情况下的温度分辨率为0.046℃,远远小于市场上其它的温度传感器。此器件另一个最大的优势是器件和单片机连接不需要任何的辅助器件,直接连接就可以实现温度的采集。最终选择LMT70 采集人体体温数据。

1.6 心率检测方案设计(图6)

图6 心率检测电路图

心率传感器采用的是反射式光电式传感器,反射式光电传感器自带光源(绿光)和光接收装置,光源发出的光经过待测物体的反射被光敏元件接受,经过处理后可得到准确的脉搏信号。实际应用中与身体任何部位接触都可以,当光源所经过处的血流量改变时,探头便可捕捉到随心脉周期改变的光脉冲信号从而采集到脉搏信息。

2 系统软件设计

2.1 主程序设计(图7)

图7 主程序流程图

在软件设计时,系统首先要完成对所有接口以及通信的初始化,读取体温数据、计步数据和心率数据,判断是否进行显示切换,按键按下后可以进行蓝牙数据传输,同时判断时间数据是否到0 点,到0 点就清除当天数据信息。

2.2 蓝牙程序设计

单片机只需要通过串口就可以完成对远程通信模块的控制。所以串口的设置至关重要,主要是软件操作是对寄存器的设置,串口的参数很多,所以设置寄存器的方案也有很多,只有发送和接收双方一致才可以实现通信,初始化结束后,只要对发送寄存器和接收寄存器进行操作,就可以实现数据的传输,寄存器SUBF 当中包括接收以及发送的判断标志,所以软件设计很方便。定位数据为512 字节数据,通过获取这个数据,就得到远程通信数据。

2.3 按键软件设计

单片机此时检测按键信号才是正确的时刻。按照上述的波形情况,我们在软件检测的时候需要进行消抖,也就是等按键抖动信号过去,再检测按键信号,一般按键抖动时间是3 到5 毫秒,所以在首次扫描到有效的按键信号后,再经过3 到5 毫秒后,继续扫描按键的信号,如果既然有效,则表示按键确实按下。

2.4 三轴数据检测软件设计

在需要进行三轴数据的的时候,单片机首先要输入时钟信号到SCL 引脚,再按照时钟信号输入功能选择数据到SDA 引脚,之后数据转换结果会通过SDA 输出到单片机。单片机在第一个时钟信号下降沿前,SDA 引脚为高电平,即为开启数据转换。在第二个下降沿前输入数据,选择对应的通道。

2.5 心率采集子程序设计

设计采用A/D 转换的原理进行心率传感器的模拟量读取,从而转换为数字量,在采集心率时,其步骤如下:首先是初始化A/D 转换器,配置好ADC1 的通道1。并且配置一个定时器,定时50ms 中断,之后进入循环。在循环定定时器50ms 中断一次,在中断时读取一次A/D 转换的值,将A/D 转换的值通过串口发送至电脑上位机,同时通过心率算法算出其心率值,同时在OLED上显示出来。

3 测试

在系统板开机后,正常运行时,OLED 第二行会显示“欢迎使用”。第三行显示“蓝牙智能手环”2 秒,然后自动刷新显示心率、步数、体温数据等。

在主界面上实时显示,可通过按键实现其他功能,按下切换键时,OLED 将切换到时间显示界面,由于OLED 大小关系,故而选择分屏显示。时间显示界面显示日期、时间、星期等信息。

本次设计当中采用第三方软件蓝牙助手APP 软件进行蓝牙连接,实现系统上电后,打开手机APP 进行蓝牙搜索,本次设计采用的是BT06 蓝牙模块,但是其蓝牙名称为“BT04-A”,当搜到该蓝牙信号后进行连接,第一次使用连接时需输入密码,初始密码为1234,输入完成后进入数据传输界面。单片机控制蓝牙模块将步数、心率、体温数据每四秒传输一次至手机APP 进行显示。

对系统检测体温数据的准确进行测试,测了5 组数据,并进行了记录,体温数据数据表如表1 所示。

表1 体温数据测试

系统数据为本系统采集的体温数据,专业产品数据是由体温计进行测量得出的数据,测试时环境温度为25℃,测试时将手指放在温度传感器上测量。由表1 数据可得误差范围为0~0.1 摄氏度。经过计算表中数据体温模块误差精度不足1%,符合任务书中的要求。

对系统检测心率数据的准确进行测试,测试了5 组数据,并进行了记录,心率数据表如表2 所示。

表2 心率数据测试

系统数据为本系统采集的心率数据,专业产品数据是由其他品牌手环进行测量得出的数据,其中系统数据误差为0~4(单位次/分钟),而专业产品数据误差为3~5(单位次/分钟)。经过对比后,系统采集的心率数据较可靠。由表2 得出系统误差精度为3%。满足任务书要求。

4 结论

基于STM32 单片机的蓝牙智能手环设计与实现,最终完成了三轴传感器、远程通信、按键、报警、GPS 模块、指示灯以及主控制器的方案选择、电路设计、软件设计以及实物制作。系统实现的功能是实时采集三轴传感器数据,以及准确的测量心率、体温。准确的将身体状况传输至手机APP,便于随时监控身体状况,有效的健康管理。相信经过不懈的努力之后蓝牙智能手环会越来越好,越来越智能,对人体的监控也会越来越准确的。