基于单片机的智能SMS心率计设计

张建民 郭伙令 龙佳乐 李烨



摘 要: 设计实现了从单片机为控制核心的智能SMS心率计。通过被测人将手指放在红外传感器中间时,由于指尖的血液透明度随脉搏跳动会有明显变化,可根据光敏接收管收到的信号,对脉搏检测信号进行放大、滤波、整形,得到一个矩形波计数信号,此信号被STC89C52单片机识别用于被测人的脉搏计算。该设计合理地利用软件编程的方法,只需2 s即可在LCD1602液晶屏上显示心率值,还具备心率报警功能,可以自由设置限值,如果低于下限值或高于上限值,则该模块会发出响声和发短信给相关的监护人进行报警。实验表明,该研究对实际应用具有一定的参考价值。
关键词: 智能SMS心率计; 脉搏计算; 红外传感器; STC89C52; 短信服务
中图分类号: TN911?34; TM912; TP216 文献标识码: A 文章编号: 1004?373X(2017)06?0148?03
Abstract: The intelligent SMS cardiotachometer based on microcontroller was realized with this design. When a person puts his fingertips in the middle of infrared sensors, because the transparency of his blood has obvious changes with pulse beat, the pulse detection signal is amplified, filtered and shaped according to the signal received by the infrared sensors of phototransistor to obtain a square wave signal which can be recognized by the single chip microcomputer STC89C52 to calculate the pulse of the person under test. With rational software programming method, the heart rate is displayed on LCD1602 within 2 seconds. This intelligent SMS cardiotachometer can set the threshold of heart rate by buttons. If the heart rate is out of scope between the lowest and highest thresholds, it will make a sound alarm and send a SMS message to guardians mobile phone. This research has a certain value for actual application.
Keywords: intelligent SMS cardiotachometer; pulse calculation; infrared sensor; STC89C52; SMS
0 引 言
每年死于心脑血管病的有近200万人,是所有疾病中死亡人数最多,治疗费用最大的,因此有必要对心脑血管病引起足够的重视。据科学研究,对心率的检测可以在一定程度上预防心脑血管病的发生。
心电图机可以精确测量人体心率,但是由于费用巨大,所以不能普及。市面上一些精确的测心率的仪器大部分都是采取压力传感器,另外配备一些数字芯片驱动数码管,达到心率显示的目的,这种心率测试仪性能稳定,但是功能单一,测试速度很慢,可扩展性差,而且价格比较贵[1]。本文设计基于光电传感器的便携式心率计,其是一款低成本、多功能、便携式和智能化的心率测试仪,可以很好解决市面上心率测试仪的不足并且有一定的创新性[2?4]。
1 硬件设计
本设计主要以STC89C52单片机作为核心控制,兼具ATK?900A的远程报警模块,当被测人心率不在设置的范围内就发短信给相关的人,进行报警,引起他们的注意。采用直径为5 mm的红外对管作为脉搏传感器,根据脉搏跳动时,指尖的血液浓度发生变化,从而红外对管可以采集到脉搏信号。直接采集到的信号很微弱且夹着很多干扰,因此需要放大、滤波、整形后方可让单片机识别,利用软件编程的方式进一步滤波,筛选出准确的脉搏信号,并通过检测计算两个脉搏信号的上升沿所用的时间,从而在LCD1602上快速显示每分钟的心跳数目,大概1~2 s。当心率不正常时,蜂鸣器会发声同时发短信给相关的亲朋好友,引起重视。通过按键切换的方法可以实现时钟显示和温度检测功能。心率计电路结构框图如图1所示。
通过把指尖放到红外对管的中间,当脉搏跳动时,血液浓度高、透明度低,接收管不能导通,输出的电压较大;当没有脉搏跳动时,血液透明度高,接收管导通,输出电压较低[5]。
脈搏信号处理过程如图2所示。
由于红外传感器采集到的脉搏信号小且干扰多,需要进行放大、滤波和整形。信号通过隔直电容C2、去除直流分量,取C2的容值为1 μF,保证所有的交流信号能通过,因为此信号很小,所以需要放大。
在用运算放大器对此信号进行放大之前,为了保证当信号为0时,能够让运放的输出直流量也为0,需要加上一个几十千欧的电阻,所以本设计加了一个60 kΩ的电阻。去除直流信号影响后,需要对前面的交流信号进行滤波。当人的心率为50次/min,则频率为0.78 Hz;当心率达到199次/min,则频率[6?7]可以达到3.33 Hz,因此人体脉搏是属于低频信号。
C3,R8并联组成低通滤波电路,滤掉高频分量,提取出脉搏信号。将提取出的脉搏信号进行放大,放大倍数主要由6脚的10 kΩ电位器决定,通过调节该电位器,大概放大200倍即可。滤波放大后的低频信号经过C4隔直电容后,可以进一步去除干扰信号,纯净的脉搏信号通过一个比较器与2.5 V电压比较,得到一个方波信号,用LED指示灯的一闪一灭模仿人体的脉搏跳动情况。
2 软件设计
主程序流程图如图3所示。
首先将各部分进行初始化,具体是LCD1602初始化、定时计数器T0/T1初始化、DS1302初始化、DS18B20初始化、心率计算清零,为后面做好准备。初始化程序执行完毕后,程序对按键进行循环检测,并做好防抖。
心率计算程序设计流程图如图4所示[8?9]。步骤如下:
(1) 如果目前LCD1602显示的不是“Heart rate”,则先按下心率显示按键;
(2) 按下相应的按键进行心率上下限设定,设定好后,进行下一步;
(3) 赋初值和设置相关的位,初始化T0,T1,M;
(4) 等待10 ms,检测单片机的P3^2口的状态,判断脉搏信号是否存在;如果存在则M加1,如果不存在则M清0,重新开始检测;
(5) 当连续成功检测3次稳定的脉搏信号时,则开始清xintiao_jishu变量,并开始计时;
(6) 重新检测3次P3^2口状态,如果脉搏信号稳定,检测成功,则开始查看xintiao_jishu的值;
(7) 用公式Count=60 000/xintiao_jishu得出心率值;
(8) 分解Count的百位、十位和个位并送到LCD1602显示。
3 数据测试与分析
为了验证本设计测量心率的准确性,做了一组高精度的腕式脉搏测量仪与本设计的对比实验,测试结果如表1所示。
从表1计算出心率计的相对误差是1.43%,原因是本设计采集到的信号相对腕式传感器来说,不够稳定,存在一定的干扰,因此误差为1.43%是可以接受的。
4 结 论
本设计以STC89C52为控制核心,红外对管作为脉搏信号传感器,由脉搏信号的浓度差提取出人体微弱的脉搏信号,利用软件编程的技巧可以快速显示人体的心率值,通過指示灯也可以得知脉搏跳动情况。此外本设计还具有心率异常报警功能、温度和时钟显示功能等,增加了本设计的额外价值。本文设计的心率计具有低成本、功能多、便携式、安全可靠的特点,具有一定的实用性。
参考文献
[1] 毛永明.心率监测在高校体育训练与比赛中的应用价值[J].体育科技文献通报,2011,19(1):69?71.
[2] 管芳,黄新,胡鸿志.便携式心率监测计的设计[J].仪表技术,2014(1):37?39.
[3] 李战胜,万叶丽.基于ZigBee技术的便携式心率计的设计[J].电子世界,2015(13):51?52.
[4] 魏庆国,奉华成.基于FPGA的数字式心率计[J].电子技术应用,2005,31(7):75?77.
[5] 孙亮,胡泽,李丹.智能人体心率检测装置的设计[J].现代电子技术,2009,32(2):164?166.
[6] 黄川.基于单片机的数字心率计设计[J].科技资讯,2013(26):14.
[7] 王磊,王军.基于SIM900A的嵌入式远程家电控制器设计[J].苏州科技学院学报,2014,27(1):77?78.
[8] 石建飞.数字心率计的单片机设计与实现[J].自动化技术与应用,2013,32(5):67?69.
[9] 徐宏祥,田丰,刘国权,等.基于FPGA的数字心率监测仪设计[J].微处理机,2011(6):84?86.