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