王瑞琦,董高旭,周渴望
(西安航空學(xué)院 電子工程學(xué)院,西安710077)
隨著信息科學(xué)和生命科學(xué)的密切結(jié)合和人們生活水平的提高,市場上出現(xiàn)了越來越多的檢測人體健康的設(shè)備儀器。本次設(shè)計就健康檢測中兩個比較重要的生理特征,心率和體溫來設(shè)計了一款檢測心率體溫的裝置。脈搏和體溫的測量可以作為判斷人體健康的一種重要依據(jù)。一些疾病的發(fā)生就會伴隨著體溫和脈搏的變化,所以實(shí)時地測量人體脈搏體溫是預(yù)防一些疾病的基本方式。體溫作為檢查人體健康重要的理據(jù)之一,體溫的變化成了病情的判斷依據(jù),特別是新冠肺炎病毒的爆發(fā),體溫的正常與否就成了是否感染的最基本的依據(jù),體溫計的需求也隨之增多。同時脈搏的跳動次數(shù)也是檢測人體健康的重要理據(jù)之一,一個正常成年人的心臟跳動次數(shù)為60~120 次/min,當(dāng)然人在不同的環(huán)境下、情緒下脈搏的跳動次數(shù)都是不一樣的。
本設(shè)計的主控制系統(tǒng)使用的是STM32 單片機(jī)[1],分別對脈搏傳感器、顯示屏和蜂鳴器等器件進(jìn)行控制。脈搏傳感器的部分采用了光電脈搏傳感器[2],此傳感器的可靠性高,結(jié)構(gòu)簡單;放大濾波的部分使用一階的有源濾波電路;整形的部分使用施密特觸發(fā)器;顯示屏使用LCD1602 液晶顯示器進(jìn)行測量數(shù)據(jù)的顯示;使用DS18B20 溫度傳感器采集當(dāng)前體溫信號[3];測量數(shù)據(jù)超出限定值時蜂鳴器報警??傮w設(shè)計如圖1所示。
圖1 系統(tǒng)總體方框圖Fig.1 Block diagram of system structure
人體脈搏跳動會影響人體血液中的氧合血紅蛋白和血紅蛋白的濃度[4],設(shè)計采用光電式脈搏傳感器[5],通過人體內(nèi)氧合血紅蛋白和血紅蛋白對660 nm 的紅光和940 nm 的紅外光的吸收程度不同來檢測出一個跳動周期轉(zhuǎn)換成電信號[6],經(jīng)過信號放大整形電路之后輸入到STM32 單片機(jī)中[7]。體溫通過DS18B20 溫度傳感器測量輸入到STM32 單片機(jī)。經(jīng)過STM32 單片機(jī)對輸入信號的處理、控制、輸出最后在LCD1602 液晶顯示屏上顯示出所需數(shù)據(jù)。如果測量中出現(xiàn)數(shù)據(jù)超出設(shè)定的理論值范圍,則報警電路進(jìn)行蜂鳴器報警。
單片機(jī),是一種微小型計算機(jī)中非常重要的一部分。單片機(jī)主要是由內(nèi)部的單塊集成電路組成[8],其中包含有很強(qiáng)的數(shù)據(jù)處理能力的CPU、IO 口和RAM 存儲器。需要用相對應(yīng)的編譯器將程序燒寫就可以實(shí)現(xiàn)對器件的控制。STM32F103 單片機(jī)在32位的MCU 中具有出眾的通訊和控制功能,很適合低電壓、低功率和高性能的應(yīng)用。它是STC 公司早期產(chǎn)品,多用于工業(yè)控制,其最大的作用就是控制各種外設(shè)和傳感器。自行處理和計算得到一系列數(shù)據(jù)和信號,并進(jìn)行相應(yīng)的控制。
本次設(shè)計選用了STM32F103C8T6 單片機(jī),相比于51 單片機(jī)系列多了很多功能,不但運(yùn)行速度快,還自帶有2 個AD 轉(zhuǎn)換,并且有4 個串口進(jìn)行通訊。應(yīng)用中頻率可以達(dá)到72 MHz,是同類型中產(chǎn)品性能最高的,它的功率損耗為36 mA,也是同類產(chǎn)品中功率損耗最低的,其管腳圖如圖2所示。
圖2 單片機(jī)管腳圖Fig.2 Pin diagram of MCU
本設(shè)計采用光電式脈搏傳感器來采集脈搏信號[9]。光電式脈搏傳感器的工作原理是通過人體心臟的跳動[10],也就是有周期性的收縮和舒張從而導(dǎo)致人體的血液中的氧合血紅蛋白和血紅蛋白的濃度不同來采集脈搏信號的[11]。氧合血紅蛋白和血紅蛋白對660 nm 的紅光和940 nm 的紅外光吸收的不同來采集一次脈搏信號,傳輸至放大電路中,經(jīng)過放大電路的信號放大后輸入到單片機(jī)中處理。本設(shè)計的脈搏信號采集電路如圖3所示。
圖3 脈搏信號采集電路Fig.3 Pulse signal acquisition circuit
本設(shè)計選擇的溫度傳感器為DS18B20,它傳輸?shù)氖菙?shù)字信號,是一種三線的傳感器,一根接地線,一根接+5 V 電壓,最后一根則是連接單片機(jī)芯片進(jìn)行體溫信號的傳輸[12]。
DS18B20 的特點(diǎn)和參數(shù)[13]:具有特殊的單線接口的方式,只需要一條口線與微處理器連接,就可以實(shí)現(xiàn)雙向連接;不需要使用其他的外部元器件輔助;具有直徑為6 mm 的不銹鋼保護(hù)管;最多可以8個DS18B20 并聯(lián)使用,如果過多就會因電壓低而導(dǎo)致信號傳輸不穩(wěn)定;測溫范圍在-55~125 ℃之間;工作電壓在3.0~5.5 VDC。
本設(shè)計使用的溫度傳感器的電路如圖4所示。
圖4 溫度傳感電路Fig.4 Temperature sensing circuit
對于軟件部分的設(shè)計,首先要考慮到單片機(jī)對于各個電子器件的控制運(yùn)行。通過使用Keil Vision2 軟件進(jìn)行軟件部分的設(shè)計編程,單片機(jī)通過程序來控制各部分硬件的協(xié)調(diào)工作,單片機(jī)將采集到的脈搏體溫的信號在單片機(jī)中處理后,將數(shù)字信號輸出到顯示屏部分,顯示出當(dāng)前的數(shù)據(jù)。當(dāng)測量到的脈搏體溫數(shù)據(jù)超出原本設(shè)定值時,單片機(jī)會給蜂鳴器發(fā)出指令,使蜂鳴器發(fā)出報警信號作為提醒。各部分硬件之間的工作需要單片機(jī)通過軟件程序來實(shí)現(xiàn)。
給系統(tǒng)上電之后,系統(tǒng)主程序先進(jìn)行心率初始化,LCD1602 顯示器初始化。等待系統(tǒng)正常工作之后,通過按鍵設(shè)置一個測量脈搏數(shù)的范圍,當(dāng)系統(tǒng)檢測到脈搏體溫信號后傳輸?shù)奖鞠到y(tǒng)流程中[14],通過計算、處理之后再輸出到LCD1602 中顯示出具體的數(shù)值[15]。當(dāng)測量的值超出了設(shè)置的范圍,系統(tǒng)會給蜂鳴器發(fā)出一個高電平指令使蜂鳴器發(fā)出報警。流程如圖5所示。
圖5 主程序流程Fig.5 Master program flow chart
開啟開關(guān)電源后,采集體溫信號的傳感器開始工作。DS18B20 傳感器會實(shí)時地把檢測到的體溫信號以數(shù)字量的形式傳輸?shù)絾纹瑱C(jī)中。
DS18B20 先進(jìn)行初始化WENDU(int temperature);顯示溫度傳感器經(jīng)過短暫的延遲750 μs void delay_beep(75)[16],void ds18B20reset(void),read DS-18B20-a bit 進(jìn)行一位一位讀取字節(jié),寫入一個直接到DS18B20 中。
本設(shè)計的溫度檢測流程如圖6所示。
圖6 溫度檢測流程Fig.6 Flow chart of temperature detection
本次設(shè)計的脈搏體溫檢測儀從檢測上分為兩部分,一是硬件部分,二是軟件部分。首先要對設(shè)計的硬件實(shí)物進(jìn)行檢測,檢查元器件的正負(fù)極,引腳等焊接的是否正確,元器件之間的走線是否完全按照電路圖所示,焊接是否正確完好,是否有漏焊、虛焊、橋接等導(dǎo)致元器件無法工作的原因。檢查完畢之后,然后對系統(tǒng)的軟件控制部分進(jìn)行測試:
(1)將軟件程序燒入STM32 單片機(jī)中,上電之后,檢查各個元器件的工作指示燈是否正確亮起,正常工作。
(2)尋找一個正常成年人,將其手指放在脈搏心率傳感器上,注意保持穩(wěn)定不動幾秒鐘,因?yàn)槭种付秳拥脑挄?dǎo)致測試結(jié)果不準(zhǔn)確。
(3)將DS18B20 溫度傳感器放在腋窩進(jìn)行溫度的測量[17]。將測到的溫度脈搏信號輸入到單片機(jī)中處理后,最后在顯示屏上顯示出讀數(shù)。
(4)對于蜂鳴器的報警不能找一個不合格的人來測試,只能通過設(shè)置蜂鳴器的報警范圍來檢測蜂鳴器的工作是否正常。
在經(jīng)過硬件檢測好,軟件程序調(diào)試好之后。系統(tǒng)開始上電測試設(shè)計系統(tǒng)性能,測試時找一個正常成年人需要測試一系列的數(shù)據(jù)來說明系統(tǒng)的穩(wěn)定性。測試結(jié)果如表1所示。
通過對以上測試數(shù)據(jù)的分析,本設(shè)計基本完成了對脈搏和體溫的測量和顯示。當(dāng)測量值高于設(shè)定值時,蜂鳴器也會發(fā)出報警信號。通過測試數(shù)據(jù)可以得到系統(tǒng)符合設(shè)計要求。
本次設(shè)計實(shí)現(xiàn)了以下目標(biāo):①設(shè)計實(shí)現(xiàn)了脈搏信號的采集,并且將信號輸入到單片機(jī)中,經(jīng)過單片機(jī)的計算處理后,成功地顯示在了液晶顯示屏上;②設(shè)計實(shí)現(xiàn)了體溫信號的采集,同樣將信號輸入到了單片機(jī)后,經(jīng)過單片機(jī)的計算處理之后,成功地輸出到液晶顯示屏并且顯示出具體示數(shù);③設(shè)計中,可以設(shè)置脈搏和體溫的上限,檢測時將讀數(shù)設(shè)置在范圍之外,蜂鳴器發(fā)出了報警信號。
表1 測試結(jié)果Tab.1 Test results
設(shè)計的不足和未來改進(jìn)手段如下:①采集脈搏體溫信號時會受到外界因素的干擾,導(dǎo)致測量結(jié)果的誤差較大。以后可以嘗試使用其他精度和準(zhǔn)確度比較高的信號采集模塊;②選擇的DS18B20 溫度傳感器會受到環(huán)境溫度的影響,外界環(huán)境溫度不能超過人體體溫,否則會影響測試結(jié)果;③對DS18B20溫度傳感器而言,溫度是實(shí)時傳輸給單片機(jī)信號的,所以顯示的體溫是慢慢變化最終接近于人體體溫。若要提高測溫速度,需嘗試其他傳感器。