陳周凡,宦智杰,馬瑋城
(廈門理工學院,福建 廈門 361024)
本設(shè)計的目的是在較遠距離外對人體體溫進行測量,根據(jù)功能需求,設(shè)計了紅外體溫檢測系統(tǒng)。其主要由八大模塊組成,包含微處理器模塊、測溫傳感器模塊、測距傳感器模塊、OLED 液晶屏模塊、按鍵模塊、蜂鳴器模塊、LED 燈模塊以及電源模塊,其中電源模塊由一個7.4 V 可充電鋰電池和一個電壓轉(zhuǎn)換模塊構(gòu)成。
系統(tǒng)的工作流程如下:由一個7.4 V 鋰電池和一個降壓模塊作為電源,降壓模塊能夠提供5 V 和3.3 V兩種電壓給系統(tǒng)各模塊供電。系統(tǒng)通電后,在STM32單片機控制下,OLED 顯示屏顯示初始化畫面,按下測溫按鍵,紅外測溫傳感器將測得的體溫數(shù)據(jù)通過SMBus 總線發(fā)送到單片機,單片機同時通過超聲波傳感器的回響時間計算距離,之后單片機利用程序中的均值濾波算法和溫度補償算法將體溫數(shù)據(jù)精確計算后,得到溫度值,并在液晶屏上顯示溫度數(shù)據(jù)和距離數(shù)據(jù)。如果體溫正常,綠色LED 燈亮起,如果體溫超過37.3 ℃,紅色LED 燈亮起,蜂鳴器報警。
本設(shè)計選用STM32F103 增強型系列的32 位單片機STM32F103C8T6 作為微處理器,這款單片機搭載了ARM32 位Cortex-M3 內(nèi)核,主頻達72 MHz,擁有48 個端口,其中包括32 個通用IO 口、2 個IIC 接口、3 個USART 接口等,芯片內(nèi)嵌了64 K 字節(jié)的FLASH 存儲器和20 K 字節(jié)的SRAM,具有強大的存儲能力,且體積小巧,價格低廉,完全符合設(shè)計的功能要求。
出于對測溫精度和測溫距離的考慮,溫度檢測部分采用的紅外傳感器型號為MLX90614DCI。它是Melexis 公司推出的一款數(shù)字式紅外傳感器,它集成了MLX81101 紅外熱電堆傳感器和包括含有穩(wěn)壓電路、低噪聲放大器、A/D 轉(zhuǎn)換器、DSP 單元、脈寬調(diào)制電路及邏輯控制電路的MLX90302 信號處理芯片,能同時測得環(huán)境溫度和物體溫度,它集成在超小TO-46 封裝中,在小型的便攜設(shè)備中得到廣泛利用。MLX90614 正常工作的外溫范圍在-40~125 ℃,能夠?qū)囟?70~+380 ℃之間的物體進行溫度測量,在35~40 ℃這一溫度范圍內(nèi),它的測量精度可以達到0.5 ℃。MLX90614 傳感器所測得的目標溫度數(shù)據(jù)可通過雙線標準SMBus 傳送或者經(jīng)PWM 傳送,有效測溫距離能達到100 cm,在3~5 V的直流電壓下能正常工作。在使用MLX90614DCI 傳感器進行測溫時,應移除周圍的熱源。
本設(shè)計采用紅外測溫傳感器測量人體體溫,紅外測溫傳感器發(fā)出的紅外輻射會隨著測溫距離的增加而不斷衰減。在所設(shè)計的紅外測溫系統(tǒng)中,對較遠的距離外的目標進行體溫檢測時,測溫距離將成為體溫檢測系統(tǒng)測溫精度的關(guān)鍵影響因素。距離越大,傳感器所測得的溫度與標準溫度的偏差可能越大,所以設(shè)計人員需要考慮距離補償。這里設(shè)計人員主要考慮使用激光測距傳感器和超聲波測距傳感器來進行距離測量。與激光測距傳感器相比,超聲波測距傳感器成本低,使用方便,只需通過定時器得到超聲波從發(fā)出到接收的時間,就能計算出傳感器到物體的距離,它的探測距離為2~450 cm,精度可達3 mm,適用于小型系統(tǒng)中。本系統(tǒng)采用超聲波測距傳感器HC-SR04 測量距離。
顯示屏是用來直觀展示測溫結(jié)果的,將結(jié)果直接在顯示屏上顯示能夠簡化操作流程,提升測溫效率。本設(shè)計選擇的是中景園電子的0.96 寸OLED 顯示屏,它被廣泛應用于各類便攜式電子設(shè)備中。這款顯示屏分辨率為128×64,裸屏支持6800、8080 并行接口、串行SPI 接口(有3 線和4 線兩種)和IIC 接口共計5 種接口模式。該顯示屏集成了SSD1306 驅(qū)動芯片,SSD1306集成了晶振、顯示RAM 和對比度控制器,具有內(nèi)部升壓功能,簡化了屏幕外圍電路的同時還降低了系統(tǒng)能耗。此外,OLED 顯示屏還可以顯示圖片、漢字、字符,需要通過對應的取模軟件PCtoLCD2002 生成字模。
軟件部分主要由主函數(shù)、紅外測溫子程序、超聲波測距子程序、OLED 顯示子程序、按鍵測溫子程序、聲光報警子程序和溫度補償程序組成。其中,溫度補償程序包括近距離下的溫度補償和較遠距離外的距離補償。溫度補償程序第一部分是在室溫條件下(26 ℃左右)將系統(tǒng)測量所得的近距離(20 cm 以內(nèi))人體體溫數(shù)據(jù)和標準體溫數(shù)據(jù)進行整理對比,之后用MATLAB對兩組數(shù)值進行擬合;第二部分的距離補償首先是在室溫條件下(26 ℃左右),紅外傳感器探頭距離人的額頭20 cm 的地方開始每間隔5 cm 采集一次溫度數(shù)據(jù),共計采集9 組數(shù)據(jù),對照測量體溫,進行數(shù)據(jù)擬合。在數(shù)據(jù)擬合后得到紅外傳感器近似的距離特性曲線后,可以根據(jù)該曲線計算出所測得的溫度與標準溫度之間偏差的百分比,從而對紅外傳感器測得的結(jié)果添加更適當?shù)难a償量,使其更接近被測物體的真實溫度。
測溫系統(tǒng)最終測得的經(jīng)過溫度補償和距離補償后的溫度由公式(1)得到:
公式中,T1為經(jīng)過第一步溫度補償后的溫度數(shù)值,X為紅外傳感器到被測者額頭的距離。
完成以上設(shè)計后,將編寫好的程序錄進單片機進行實驗。在不同距離下測量同一部位的體溫,實驗數(shù)據(jù)如圖1 所示,圖中的數(shù)據(jù)均在室溫環(huán)境下測得,標準體溫是采用額溫槍測量五次后取的平均值。通過對不同距離下的人體體溫檢測結(jié)果分析可知,經(jīng)過兩次補償,在0~60 cm 的距離內(nèi),室溫條件下,設(shè)計的體溫檢測系統(tǒng)的誤差在0.3 ℃范圍內(nèi),已經(jīng)達到了設(shè)計目標。
圖1 檢測結(jié)果對比
本文介紹了基于STM32 單片機的人體體溫遠距離檢測系統(tǒng)的設(shè)計。該設(shè)計以STM32F103C8T6 單片機作為主控模塊,以紅外溫度傳感器MLX90614DCI 作為檢測傳感器,搭建了溫度檢測模塊這一關(guān)鍵功能模塊。在主控模塊、溫度檢測模塊、距離檢測模塊和OLED 顯示模塊的配合下,加入一些輔助電路,該設(shè)計可以在較遠距離外檢測人體體溫。在設(shè)計過程中,加入了溫度補償算法來減少紅外損失帶來的測量誤差。經(jīng)測試,該設(shè)計能夠在室溫條件下較為準確地測量60 cm 內(nèi)的人體體溫,誤差在0.3 ℃范圍內(nèi),設(shè)計的成本體積基本滿足設(shè)計目標中的要求,并且系統(tǒng)穩(wěn)定性較高。