基于52单片机的智能手环设计与实现
基于52单片机的智能手环设计与实现
摘要
随着科技与信息技术的发展,制作芯片技术的逐渐成熟使得元器件生产成本也逐渐下降。因而改变我们生活的科技产品不但数量多,且具备智能特点。在生活中,人们闲暇时间常去健身。而监测自己身体状况、制定健身计划、确保健身时人身安全成为难题。生活中普遍的监测设备笨重且操作复杂。因而希望有产品可以随身携带监测健康安全。众所周知,设备体积小又精密,价格也会相应的昂贵。也使的这类监测产品难以有效的得到普及并运用到生活中。
本次设计是基于52单片机的智能手环设计与实现,以52单片机为主控核心模板,采用Pulse Sensor 脉搏传感器监测心率,采用DS18B20温度传感器监测温度,采用MPU6050陀螺仪采集行走步数。采集到基本数据后经STC89C52单片机处理转换再通过LCD1602液晶屏显示。同时也具备按键设定阈值的功能,当监测数据超过阈值时,系统会触发蜂鸣器实现声音报警提示人体发生异常的功能。
关键词:52单片机、健康、心率、体温、手环
1 硬件设计实现
本章通过前期系统方案的论证确定了基本需要实现的功能以及需要用到的功能模块,以此进行基础的硬件设计,首先总体确定整个电路的设计并确定框图,之后再通过输入与输出分别对不同功能模块进行电路设计,
1.1硬件总体电路
通过对功能模块的选择,确定了51单片机最小系统模块、MPU6050陀螺仪模块、LCD1602液晶显示模块、Pulse Sensor脉搏检测模块、DS18B20体温监测模块、蜂鸣器模块、按键模块。现将这些模块通过软件绘制成简单框图如下:
图3-1 完整设计框图
通过上述的硬件结构,预期在硬件方面实现以下几个功能:
- 数据处理:51单片机最小系统处理物理量信息得到我们熟悉的模拟信息。
- 心率数据采集:通过红外技术将人体心率的变化采集回来。
- 温度数据采集:通过温度传感器阻值随温度的变化而变化,获得相关数据。
- 步数信息采集:通过陀螺仪三轴重力传感器的电压变化而采集到相关数据。
- 按键效果:通过四个按键并联的形式,当按键按下触发对应功能。
- 报警模块:最小系统监控阈值和采集数据的大小,当出现异常便触发报警。
1.2单片机最小系统设计
整个系统最为核心的控制部分是由STC89C52芯片、电源电路、复位电路和晶振时钟电路组成的51单片机最小系统。
- 时钟电路中:接入XTAL1(19引脚):内部晶振电路输入端口
接入XTAL2(18引脚):内部晶振电路输出端口 - 复位电路中:接入RST(9引脚):单片机的复位引脚。
- 电源电路中:接入VCC(31引脚):EA(Vpp)电源引脚。
51单片机最小系统主要依靠时钟模块的晶振得到周期性时钟信号,从而实现计时器作用,可以在一定时间内实现数据采集处理和转换。原理图如图3-2。
图3-2 单片机最小系统
(1)时钟电路
51单片机的节拍由晶体振荡器提供,而时钟电路就是晶体振荡器的角色。主控芯片的操作须在这个节拍的控制下进行。因此主控芯片是通过软件让单片机根据时钟来做相应工作。
时钟电路的正常工作是由外部时钟方式提供工作时序。本次采用了一个11.0592MHZ的晶振和两个22PF的瓷片电容器件构成了震荡电路为单片机提供时钟。51单片机的时钟电路原理图如图3-3
图3-3 时钟电路
图3-4 复位电路
(2)复位电路
51单片机的复位电路分为:手动复位方式,和上电复位。本次系统设计中,复位电路采用上电系统自动复位的方式进行系统复位。
51单片机上电复位电路由220UF电容器件和10K电阻构成。因为电容内的电压是不能突变的,所有当上电时刻电容没有充电时两端电压就为零,此时,给予复位脉冲,电源给电容充电,直至电容两端电压等于电源电压,电路进入正常工作状态。
复位电路用于控制主控芯片的状态。在系统受到干扰出现程序错误或系统死机的时候,启动复位操作,主控芯片内烧录的代码会重新执行。复位电路原理图如图3-4
2 软件设计实现
本系统用到的软件主要功能是驱动传感器进行数据采集,将采集数据由单片机最小系统中函数转化为需要的数据。再将数据转化为显示码在屏幕中显示。通过在最小系统中比对阈值大小,出现异常情况启动蜂鸣器报警。
总体流程可以整理为:
图4-1 总体流程图
2.1主程序设计
本设计软件为人体健康数值监测系统,当系统上电后进行系统初始化。之后各传感器开始工作收集体温和心率信息并检测是否发生移动,如果移动则进行步数监测,经STC89C52芯片处理计算得到数值,通过LCD1602液晶屏显示。最后检测数值是否超过阈值,如果超过则触发报警装置。
软件总流程图如下:
图4-2 主程序流程图
3 测试总结
3.1.1目标代码测试
本设计用的代码为C语言,在校期间学习最多的就是C语言。开发工具是用到学习过的KEIL4,不仅编写代码界面简洁,函数调用也简单,支持编译。在编译过程中经常出现参数错误、函数调用与指针问题,多次进行修正。直至编译生成目标文件(.HEX)。最后通过下载到开发板上进行调试。在这一步注意到52单片机在一次下载后需要单片机掉电,电量放光后上电(冷启动)才能进行下一次下载。同时需要为PC端安装单片机对应的驱动,再通过USB口连接才能识别到主控芯片。
最后总结整个软件程序流程为:单片机驱动安装;项目驱动程序编写;通过KEIL软件进行编译得到目标文件,下载目标文件到主控芯片。检测系统正常运行,如不满足要求则重复上面过程。
3.1.2数据反馈测试
在通过串口助手对所有收集的数据进行观察的过程中,多次遇到数据出现明显错误的情况,并回到硬件和软件进行检查。发现许多错误是不经意间犯下。在多次修正后得到如下正常的数据反馈图:
图5-1 串口助手数据反馈
在图中可以清楚看到:
第一行为初始数据,温度为室温,心率尚未检测,步数未移动
第二行进行了心率检测,仅仅心率改变了,测得此时心率为75次/分钟
第三行进行了步数检测,仅仅改变了步数从000变化到008
第四行进行了温度检测,用手去捂住温度传感器,测定手温度为30°。
在提高了功能模块数据的准确度以后,基于52单片机的智能手环也基本完成预期设想。
4 结论
在本次毕业设计中,先确定了基于硬件制作实物的思路。在大量阅读了资料与文献后,确定自己可以完成基于52单片机的智能手环设计,并咨询指导老师获得认可。在学习制作的过程中,通过资料的学习与代码的研究让自己学习到很多不懂的原理也复习了许多遗忘的知识。通过自己动手实操结合三年的专业学习完成产品设计。最后产品实现以下功能:体温检测,心率检测,步数统计,按键输入,异常警告。
本次设计在基本完成预期设想的结果同时,还存在些微小问题,汇总如下:
(1)液晶显示无法显示汉字和图像,只能以英文显示数据
(2)心率、体温、计步采用基础模块,数据精确度欠缺。
(3)开发板体积较大。虽然理想是便携式手环,但最后成品因采用基础模块导致体积较大,无法实现真正意义上的手环。
综合优点与缺点,本次基本完成预期设想,虽有缺陷,但总体已实现智能手环的功能。效果是令人满意的,因而本次设计较为成功。