基于STM32F103C8T6单片机的多功能智能手表设计

2019-03-28 13:16黄凤英
物联网技术 2019年3期
关键词:计步器步数手表

黄凤英

摘 要:文中设计了一种能够实时监测人体温度、统计运动步数的多功能智能手表。设计采用STM32F103C8T6单片机作为系统主控,将德州仪器设计生产的TMP100作为温度采集传感器,可对人体温度、运动步数等参数进行采集、分析和显示。当体温数据处于不正常范围时,智能手表会发出相应的提示警告。经测试,文中设计的手表可实现准确计时与人体温度的实时监控及每日步数的实时记录,方便用户根据获取的体温及运动数据对自身的健康状况做出处理。

关键词:传感器;体温;计步;智能手表;STM32F103C8T6单片机;TMP100

中图分类号:TP393文献标识码:A文章编号:2095-1302(2019)03-00-03

0 引 言

体温是机体不断新陈代谢的结果,同时体温又是机体功能活动正常进行的重要保障。在正常情况下,人体温度不随外界环境温度的变化而变化,保持在37 ℃左右。但是当人体内的某些机能发生变化或某些部位产生病变时,恒定的体温将会发生改变。在临床医学中,体温是一个重要的生理参数,病人的体温为医生提供了了解生理状况的重要信息,同时还可以对某些重大疾病或隐藏于身体内部的健康问题起到积极的预防和警示作用[1]。所以人们需要并有必要实时了解自身的体温状况,使自己的体温维持在一个相对稳定的状态。

针对人们对自身体温实时监测的需求,本文设计了一个拥有128×64大小OLED显示屏的智能多功能手表,主要采用STM32F103C8T6单片机作为系统主控单元,将德州仪器设计生产的TMP100作为温度采集传感器。该手表可实时记录采集的数据与每日运动量,并对人体温度进行实时监控。当用户获得自身的健康数据后便可以采取相应措施使自己保持健康的状态。在这基础之上,本文采用更低功耗的主控芯片与外围器件,提高设备的续航能力,优化用户操作界面,使设备能真正运用到生活中,为实时健康监测提供可能。

1 系统功能介绍

本文设计的智能手表主要具有时钟功能、体温实时检测功能和计步功能,系统功能结构如图1所示。

(1)在时钟功能界面下,用户可以选择手动校准时间。

(2)在体温检测功能界面下,用户可以查看此刻自身的体温,也可以查看当天自身体温的变化情况。

(3)在计步功能界面下,用户可以查看当天的累计步数,了解自身运动量。

此外,用户在使用设备的过程中一旦体温下降或者上升,低于或超過阈值,则系统会向用户发出警告,提醒用户此刻体温处于非正常状态,用户可根据自身情况及时处理。

2 系统硬件设计

2.1 系统硬件组成及原理

多功能智能手表系统硬件主要由电源管理模块、主控芯片模块、温度传感器模块、加速度传感器模块和OLED液晶显示器与按键组成,硬件系统的组成及连接关系如图2所示。电源管理模块将不稳定的电池电压转换成系统需要的3.3 V稳定电压,并输送给各个模块。主控芯片从温度传感器和加速度传感器获取采集数据并对数据进行算法处理,最终通过人机交互模块显示出来。

2.2 系统主要硬件模块设计

STM32F103C8T6是一款基于ARM 32位Cortext M3内核的单片机,具有2.0~3.6 V的宽电压供电范围,CPU工作频率最大可达72 MHz,具有单周期乘法指令和硬件除法功能,以及优先级可编程的中断系统[2]。同时它还具有 64 KB的FLASH存储器与20 KB的SRAM存储器,集成了丰富的片内外设,如看门狗,定时器,GPIO口,DMA控制器,ADC,UART,SPI接口,I2C接口等,具有成本低、速度快、性价比高等优点[3]。

人体温度采集传感器采用德州仪器生产的TMP100。TMP100是一个SOT23-6封装的两线串行输出温度传感器,无需其他元器件,精度可达0.062 5 ℃。此外TMP100具有系统管理总线以及I2C接口的兼容性,可在总线上挂载8个设备。工作温度为-55~125 ℃,测量精度可通过程序编程选择。TMP100的器件地址由ADD0和ADD12个引脚决定,引脚输入与器件地址的关系见表1所列。根据设计原理与图中ADD0和ADD1引脚接地可知,TMP100的器件地址应为0x48。

加速度传感器模块采用飞思卡尔,这是一款比较新的MMA8452加速度传感器。飞思卡尔是具有12位分辨率的智能低功耗、三轴、电容式微机械加速度传感器,其主要特性如下:

(1)可以感受X,Y,Z三个自由度的加速度信号,全方位感知人体运动信息。

(2)具有±2 g/±4 g/±8 g的可选量程。传感器的灵敏度在±2 g量程时为1 024个数字/g,灵敏度精度为±2.5%。

采集的加速度数据可以通过传感器内部的高通滤波器实时输出,滤波器的截止频率可以通过软件设置,也可以不经过滤波器直接输出。输出信号被转换为12位数字量信号,经I2C接口输出,输出数据速率在1.25~800 Hz之间,可调[4]。

电源管理芯片采用德州仪器设计生产的TPS79333,其具有超低噪声、高PSRR、快速射频、高电平启用的200 mA低压降稳压器,可将3.7~5 V的电源电压稳定在3.3 V,具有体积小、效率高、噪声小等特点[5-7]。

3 系统软件设计

3.1 程序主框架搭建

本文设计采用主循环和定时器中断相结合的运行框架。主循环中实现OLED显示功能。定时器可定时对温度、加速度传感器进行数据采集和算法处理。程序主框架如图3所示。

3.2 时钟功能设计与实现

时钟模块主要以定时器中断为主,打开一个定时器中断,中断时间为0.1 s,累计600次加1分钟,累计60分钟加1小时,效果如图4所示。

3.3 体温监测功能设计与实现

TSP100温度传感器是一款数字传感器,为I2C通信方式。ADD0和ADD1同时接地,查表可知,器件地址为0x90,初始化STM32F103C8T6的I2C后就可得到TSP100采集的数据。相比其他等价传感器,TSP100温度传感器的精度较高,但也会因为环境等因素产生一些噪音(噪音可控),本文采用中位值滤波解决该问题。体温检测界面效果如图5所示。

3.4 记步功能设计与实现

MMA8452加速度传感器是一款数字输出传感器,与采集温度的方式相同,不同之处在于加速度传感器是惯性传感器,在静态状态下能表现出良好的稳定性,但运动后其数据变化较大。如果将处于运动中的加速度计的返回值以时间为X轴,值为Y轴,静态时会呈现一条平滑的曲线,运动时将会是杂乱无章的噪点,所以对加速度传感器的采集值进行滤波十分必要。本文设计采用低通滤波和防脉冲干扰平均滤波相结合的方式[8-12]。

当对加速度传感器采集到的数据进行处理后,默认当前获得的数值即实际数值,之后对数据进行分析,使之转化为需要的步数。据研究,距离、速度、加速度等都可以作为描述人体行走状态的参数。近年来,由于MEMS加速度传感器的快速发展和其优越特性,被广泛用于人体运动检测。行走时脚、腿、腰、手臂都在运动,会产生相应的加速度,垂直方向的加速度信号变化最大。人行走的过程分析:脚蹬地离开地面是一步的开始,此时由于地面的反作用力,垂直加速度開始增大,身体重心上移,当脚要达到最高位置时垂直加速度达到最大,然后脚向下运动,垂直加速度开始减小,直至脚着地,加速度减小至最小值,接着下一次迈步发生。利用腰部的垂直加速度来检测步数是可行的,通过对加速度的峰值检测可以得到行走的步数[13-15]。

一对连续的波峰和波谷代表了人体行走的一步,本文采用统计波峰的方法来统计步数。由于人体运动一般不会超过5步/s,即在1 s内理论上不会出现多于5个波峰,连续两个波峰之间的时间差也不会小于0.2 s。设定采样频率为50次/s,记录采样时间t和Z轴的加速度信息Acc。如果一个点的Acc值比前后各两次采样值都大,则视为一个极大值并将该信息与前一个极值的时间差Δt及Acc值存入一个二维链表。时间差Δt代表两个假定步伐之间的时间差,如果Δt小于0.2 s,则将两个极大值中Acc较小者视为采样噪点,从二维链表中去掉,并将剩下的数据重新与链表中前一记录比较,大于0.2 s且Acc值比前后Acc值都小20%或者更多,也视为噪点去掉。剩下的极大值就确定为一个有效步伐[10]。最后系统可获得比较精准的计步结果,如图6所示。

4 结 语

本文设计了一个可实现对人体温度实时监测、运动步数实时统计的智能可穿戴多功能手表。通过理论与实践的结合,从硬件实现与软件实现切入,清晰展现了软硬件的设计流程,并提供了解决办法。从实现结果可以看出,本文的设计方案可行,能实现对人体温度的实时监控和对个人每日运动量的实时记录,当体温处于不正常数据值时,智能手表又能给出相应的提示警告,从而方便用户根据获取的体温及运动数据对自身的健康状况及时做出处理。

参 考 文 献

[1]孙雪松.你的体温和健康有关[J].现代养生,2009(1):59-61.

[2]杨伟,肖义平.基于STM32F103C8T6单片机的LCD显示系统设计[J].微型机与应用,2014(20):29-31.

[3]傅智河,苗军林,范宜标,等.基于STM32F103C8T6多功能健康测试腕表的设计与实现[J].赤峰学院学报(自然科学版),2016,32(18):9-11.

[4]芮新芳,朱朝霞,牛耀国.使用Altium Designer Winter 09软件快速设计印刷电路板[J].软件导刊,2011(6):69-71.

[5]朱江,李春芾,宋洪慧.J-Link仿真器程序无法下载问题的硬件电路解析[J].信息技术,2016(2):89-91.

[6]李萍,陈鹏宇,李泽仁.基于MMA8452Q传感器的计步器抗干扰设计[J].电子设计工程,2014(7):161-164.

[7]佚名.ARM发布Keil Vision4集成开发环境为嵌入式软件开发提供简化的开发环境[J].电子与电脑,2009(4):70.

[8]庞晶,牟为华.基于ADXL202的计步器[J].电子世界,2004(2):51-52.

[9]邢辉,赵敏.基于MMA7260加速度传感器的电子计步器[J].中国高新技术企业,2010(22):15-17.

[10]朱东.基于加速度传感器的计步器设计[J].数字通信世界,2017(9):79.

[11]韩文正,冯迪,李鹏,等.基于加速度传感器LIS3DH的计步器设计[J].传感器与微系统,2012,31(11):97-99.

[12]宋浩然,廖文帅,赵一鸣.基于加速度传感器ADXL330的高精度计步器[J].传感技术学报,2006(4):1005-1008.

[13]侯向锋,刘蓉,周兆丰.加速度传感器MMA7260在步态特征提取中的应用[J].传感技术学报,2007(3):507-511.

[14]陈泓竹.一种基于物联网的计步器设计[J].现代计算机(专业版),2012(3):71-76.

[15]郝立果.基于加速度传感器ADXL330的运动信息采集平台设计[J].天津工程师范学院学报,2008,18(1):30-32.

猜你喜欢
计步器步数手表
楚国的探索之旅
是谁拿了手表
谁偷走了手表?
微信运动步数识人指南
浅谈基于单片机的计步器设计
国人运动偏爱健走
基于MTK平台的计步器功能软件设计
嘻嘻猴手表
计步器