赵莉莉
摘 要:电子脂肪秤的设计是以STC89C52单片机作为控制中枢,外围电路集成了电源供电模块,压力传感器,超声波传感器,LCD1602液晶显示模块,按键模块,复位电路,蜂鸣器等。系统测量完人体的身高和体重后,手动输入腰围,系统自动处理,液晶显示身高,体重,腰围和脂肪率,并且有语音播报功能。
关键词:STC89C52单片机;压力传感器;超声波
1 概述
体内脂肪的平衡与否,决定着人们身体的健康。如果脂肪过量囤积,就会导致各种疾病的发生,会对身体产生危害。那么怎么测量人体的脂肪率呢?也就是要知道人体的脂肪占据人体的比例,进而来判断人体的健康程度。众所周知,肌肉内含有较多的水分,从本质上来说是可以导电的,但是脂肪却是不导电的。我们可以通过对人体的不导电率的测量,来检测出人体的脂肪率。本次设计利用BIA理论,即生物电阻抗分析方法,把我们设计的电极片和人体的双腿接触,加上一定的安全电压,来测量人体的电阻。然后输入用户的基本数据,带入实验公式,系统自动计算人体脂肪率。
2 设计思路
在本次设计中,系统上电后,就会通过LCD1602来显示“Welcome to Used.”“Initializing...”然后我们按下确定按键,当显示完“height start....”的时候就去通过超声波测试来测量人体的高度。测量完毕之后就会在LCD1602当中显示“height end....”和“Please confirm..”。显示完毕之后按下“确定”按键,蜂鸣器响一声,系统就会采集压力传感器的数据,一开始会显示“Weight start....”,开始调用压力传感器模块。在此之前可以对压力传感器施予一定的压力,来模拟有人体或者有物体已经站上去的效果。当对压力传感器采集数据完毕的时候,LCD1602会在显示液面中显示“Weight end...”和“Please confirm..”,当你按下确定按键的时候,蜂鸣器响一声,表示质量的采集数据已经采集完毕。接下来就是对腰围的数据进行输入,腰围的输入是通过按键来进行输入的,按键提供了0到9的数字输入,还有一个确定按键的设定,在LCD1602的液晶显示面板中显示“Enter waistline.”,便可以通过按键在液晶显示液面的第二行中输入键值,键值的位数设定为两位,当你设定完毕之后就按下“确定”按键,蜂鸣器响一声,按下之后就会在液晶显示液面当中显示“enter end...”。之后便进入了数据的总的处理,还有显示的阶段了,在显示数据之前,液晶的显示液面就会有“calculating....”和“Please waiting..”的提示,表示数据已经进入了数据的总的处理阶段,显示完毕之后就会在显示液面中显示之前所采集到的数据了,在上一行显示“H:(这里是显示高度的数值)” “W2:(这里是显示压力传感器采集回来的数值)”在第二行当中显示“WA:(这里是显示之前通过按键输入的腰围数值)”“ZF:(这里是显示通过计算之后得出的脂肪率的数值)”,当程序执行到这里的时候就表明程序已经全部执行完毕,蜂鸣器响两声,另外会通过语音系统通过对所得的结果进行语音播放。
本次设计的功能包括压力检测功能,在压力的检测当中主要就是模拟测量称重者的一个体重,在软件执行到要去测量体重的时候,LCD1602会出现提示文字“weight start…”,然后就在压力传感器上施加压力,模拟人体已经站上去,然后就去测量体重,将数据返回给MCU。当测量完毕之后,LCD1602就会显示“weight end…”来提示用户压力传感器模块已经采集数据完毕。
3 硬件设计
在本次设计当中,硬件的设计上采用了以下几个模块来实现功能,首先电源模块:主要的功能就是将市电220V电压转化为系统所需要的5V电压,供中央控制芯片STC89C51单片机还有外部的功能模块使用。压力传感器模块的作用就是模拟重量的数据采集。本次设计中选用的是HX711芯片,我们把它作为传感器与MCU之间的数据转换芯片。在传感器中采集到的模拟信号,会在HX711中进行数据转换。转换后的数据提供给中央控制芯片以作更好的处理。在高度的数据采集当中,我们采用的是超声波传感器的模块。在本次设计当中采用超声波传感器作为高度的数据采集的主要原因就是测量时更方便,数据处理更精确,如果使用传统的高度传感器的话,它的原理就是利用气压的不同来作为判定高度不同的依据,所以在测量比较高的地方時,比如山,高塔,高楼时,可以使用这个方法,但是在人的身高方面,本次设计不宜使用以气压作为判定高度不同的依据的高度传感器,故现在采用超声波传感器模块。而蜂鸣器模块主要的作用就是在“确定”的时候,发出响声给予用户一个提示,只是一个提示性的作用。LCD1602显示模块主要就是在设计当中充当数据显示的角色,显示程序的执行流程,具体执行到什么位置还有什么地步,输出提示性语句,通过按键按下显示对应的数值,还有最终显示的最终数据。按键模块主要就是通过按键来输入按键的对应的数值,比如腰围的数值,按键输入之后就进入单片机里面执行相应的程序,本次的按键模块当中提供了0到9的数字按键,还有确定的按键,可以提供用户进行数字的输入还有最终的确认动作。语音播放模块主要就是对最终现实的结果通过这个模块,经过外接的播放器播放出来。
4 系统调试
系统的硬件调试时,主要就是在单片机的外部器件的选择上,LCD液晶显示模块也有较为详细的外围的配置电路。而超声波测量模块和质量测量模块主要都是采用一条线路为时钟线的方式,一条线路为数据线,所以加上地线和电源端,一共有四条电路线,这种配置利于外围功能器件的安装。在电路的电源设计上是采用了比较传统的电源方式,主要就是通过电源的稳压芯片和变压器来为系统供电。这种电源设计模式具有很大好处,就是电源经过了变压器的隔离之后,由原来的220V的交流电变成了只有12V的交流电,如果发生触电的时候就可以大大的降低发生事故的概率,也可以很好的保护功能模块的芯片,以免遭到更大的电流的冲击,烧坏其内部的电路。
在软件的调试过程也是比较清晰的,主要就是各个功能模块当中使用时序有了比较全面的了解之后,就可以在这个基础上更好的控制还有处理功能模块反馈回来的数据。在系统的调试时,也出现了不少的问题,比如在使用按键模块来输入腰围的数值的时候,在LCD液晶显示模块上一直显示的都是乱码,然后经过反复的调试还有修改之后才发现,原来在按键扫描程序的返回值当中,一直都是返回一个整数型的数值。而对于液晶显示模块而言,整数型的数值是无法进行显示的。所以经过修改,又定义一个字符型的数组,然后利用返回来的整数型数值再去字符型数组当中去调取相应的字符。而在超声波测试模块当中,采用的逻辑就是初始化的时候测量一个数值,然后在正式测量的时候再去测量一个数值,然后再进行减法运算,所得到的值就是高度,然后出现的问题就是,高度差的显示一直都是539,具体分析之后发现,正式测量的数值比初始化测量的数值要大,所以进行减法运算之后就会产生一个负数,负数分段取字符的时候就发现一直取到的字符就是539,所以我采取的方法就是在正式测量的时候,就加上了一个判断条件,就是正式测量的数据一定要比初始化的数据小,才可以进行减法的运算,否则就是在原地等待,不断取值,直到取到的数值比初始化的数值要小的时候,就可以进行运算了。
参考文献
[1]李明明,耿玉琴,何云云.基于物联网的体重秤的设计[J].测控技术,2016,6.
[2]王翥,崔晓志,侯春雷.超声波传感器接收信号强度非对称性分析及对策[J].传感技术学报,2015,1.
[3]孙玉昕.基于物联网的脂肪检测系统设计与实现[J].软件导刊,2014,11.