趙莉莉
摘 要:電子脂肪秤的設計是以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.