















摘 要:體溫是人體一項重要的生理指標,體溫檢測是人體健康狀況篩查的基本手段。在傳染性疾病大流行期間,高效快速的非接觸式體溫檢測顯得尤為重要。基于STM32主控芯片,采用紅外傳感器MLX90614以及超聲波傳感器HC-SR04設計一款非接觸式紅外體溫檢測系統。通過HC-SR04控制待測目標距離,通過MLX90614采集目標表面溫度數據,經微處理器處理轉換后,由交互模塊輸出。當目標距離超出最佳范圍或者是目標溫度高于設定健康溫度閾值時,蜂鳴器發出報警提示。通過與傳統水銀溫度計及商用紅外測溫儀的對比測試,驗證了該設計可以快速、準確檢測人體體溫。
關鍵詞:STM32單片機;紅外傳感器;超聲波傳感器
中圖分類號:TP271 文獻標識碼:A 文章編號:2096-4706(2024)16-0157-06
Design of Non-contact Infrared Body Temperature Detection System Based on STM32
Abstract: Body temperature is an important physiological indicator of the human body, and body temperature detection is a basic means for screening human health s8FC51uHb31B3n675u2JZqg==tatus. During the pandemic of infectious diseases, efficient and rapid non-contact body temperature detection is particularly important. Based on the STM32 main control chip, a non-contact infrared body temperature detection system is designed using an infrared sensor MLX90614 and an ultrasonic sensor HC-SR04. It controls the distance of the target to be tested through HC-SR04, collects surface temperature data of the target through MLX90614, processes and converts it by the microprocessor, and outputs it by the interaction module. When the target distance exceeds the optimal range or the target temperature exceeds the set healthy temperature threshold, the buzzer will sound an alarm prompt. Through comparative testing with traditional mercury thermometers and commercial infrared thermometers, it has been verified that the designed system can quickly and accurately detect human body temperature.
Keywords: STM32 Single-chip Microcomputer; infrared sensor; ultrasonic sensor
0 引 言
人體體溫對于機體活動而言至關重要[1],因此精準測量體溫對于評估個體的健康狀態具有重要意義[2-3]。在臨床實踐中,由于核心溫度測量的復雜性及侵入性,常用其他部位的體溫代替。在傳統的水銀溫度計時期,直腸被認為是最接近人體核心體溫的地方,而現在常用的紅外測溫儀則主要測量額頭表皮溫度和鼓膜溫度[4-5]。
根據普朗克輻射定律,任何高于絕對零度的物體,都會向外界散發熱輻射,輻射能量的大小與物體表面溫度相關[6]。根據此原理制作的紅外傳感器,可將物體散發的熱輻射轉換成電信號,該電信號經過數字信號處理器處理后[7-10],接入微控制器轉換成攝氏度溫度。因此基于紅外傳感器的體溫檢測系統,可以無接觸測量人體體溫。
對于單片機的紅外測溫精度研究,目前已經提出了一些研究方法。趙舜楠[11]基于PWM技術及PID算法,驗證了軟硬結合的混合式預熱補償方法。Heeley[12]等人運用斬波穩定運算放大器克服了溫度的零偏差漂移,從而提高了檢測精度。趙斌[13]將神經網絡算法及粒子群優化算法應用于溫度數據的訓練中,增強了檢測設備的魯棒性。上述研究方法雖然可以提高紅外測溫精度,但是在實際應用中環境溫差及測量距離對于紅外測溫精度影響較大,因此需要重點研究不同環境溫度下測量距離對測溫結果的影響。
基于上述分析,本文在檢測前置階段加入以HC-SR04為核心的距離控制單元。在最佳檢測范圍內時,以MLX90614為核心的測溫模塊采集目標表面溫度數據,經主控芯片處理后輸出。在相同測溫環境下,將本設計測溫結果與傳統水銀溫度計和商用測溫儀測溫結果對比分析,驗證了本設計在人體體溫檢測方面的準確性。
1 工作原理及系統設計方案
1.1 工作原理
物質內部的粒子處于不斷運動的狀態,在粒子躍遷的過程中會不斷向外釋放能量,表現為電磁波的形式。當物體溫度高于熱力學溫度0K時,它就會不斷向外輻射電磁波[14]。物體溫度不同,輻射電磁波的波長也就不同,通常將熱輻射波長所在范圍定義為紅外光或者紅外線。
紅外傳感器就是能夠接收物體輻射的紅外光并將其轉換為電信號的器件,根據紅外光探測原理的不同,分為熱探測器和光子探測器兩大類[15-16]。其中,熱探測器是基于熱輻射和物質相互作用產生熱效應原理制作而成的,本文使用的紅外傳感器就是熱探測器[17-18]中的一種。
1.2 系統設計方案
本設計的硬件部分包括以STM32F103C8T6為控制芯片的核心板、超聲波測距模塊、紅外測溫模塊、OLED顯示模塊、電源模塊和蜂鳴器。總體框圖如圖1所示。系統啟動后由超聲波測距模塊檢測目標距離后,確認目標是否進入最佳檢測范圍。緊接著紅外傳感器采集目標表面輻射出的紅外線輻射能并將這類模擬信號轉換成數字信號后,再發送給STM32微處理器,之后微處理器處理數據并將之換算為人體體溫數值,最后傳輸到OLED顯示模塊進行顯示,與此同時若檢測溫度超過所設閾值則觸發蜂鳴器進行報警。
2 系統硬件電路設計
2.1 STM32主控芯片
本設計選用的是一款基于ARM Cortex-M3內核的STM32F103C8T6微處理器,該處理器采用精簡指令集,具有響應速度塊、低功耗等特性。同時,該處理器強大的運算能力和豐富的外設資源,能夠滿足較復雜的設計要求。
2.2 超聲波測距模塊
紅外測溫時,只有當被測目標占據了紅外傳感器視場范圍的一半后,紅外傳感器才能準確采集目標所輻射的能量。所以為了降低距離對紅外傳感器檢測功能的影響,本設計加入了超聲波測距模塊來判定目標是否進入了紅外傳感器的最佳檢測范圍。本設計選取的HC-SR04超聲波測距傳感器是采用渡越時間法檢測目標距離,該模塊共有四個外接引腳,如表1所示,接線圖如圖2所示。
除了電源和地線,還有輸入觸發測距信號的TRIG引腳和傳回時間差的ECHO引腳,而這兩個引腳分別連接著該模塊內部超聲波的發射和接收電路,其中ECHO引腳與STM32的PA9口相連,TRIG引腳與PA10口相連。
2.3 紅外測溫模塊
在本設計中采用MLX90614型紅外傳感器[19],該傳感器能根據檢測目標所輻射的紅外輻射能量來計算物體的溫度,避免與檢測目標接觸,不干擾檢測目標溫度的發散,具有分辨率高、響應速度快、測溫范圍廣、穩定性好等特點。該芯片共有四個引腳,除了供電用的VDD和接地的VSS,還有用于數據通信的SCL和SDA引腳。通常VDD和VSS之間需要并聯一個0.1 μF電容進行濾波,其與主控芯片之間采用兩線制SMBUS通信協議傳輸數據,其中SDA引腳與STM32主控芯片的PB8口相連,SCL引腳與PB9口相連,接線圖如圖3所示。
2.4 交互模塊
本設計采用OLED與主控芯片進行交互,實時顯示本設計與待測目標的距離及檢測溫度。當待測目標距離過遠或者檢測溫度過高時,及時提醒用戶。除此之外,本設計的報警電路是一個高電平觸發的有源蜂鳴器電路,當檢測異常時報警提醒。圖4為OLED接線圖,圖5為蜂鳴器接線圖。
3 系統軟件程序設計
827a18ae7cb65e616b23274f86894dd43.1 主程序
本系統的軟件程序是基于德國Keil公司的Keil MDK v5進行開發的,該軟件兼容單機片C語言軟件開發系統,且具備編譯器、宏匯編、庫管理和功能強大的仿真調試軟件,極大地提高了編寫效率。
主程序是本設計整個軟件部分的主干,通過主程序調用管理各個外設模塊的工作和交互,從而實現本設計的整體功能。具體工作流程為,當程序開始工作后,首先進行主控芯片的GPIO口配置初始化以及串口、定時器等的初始化,其次是各個外設模塊的初始化。然后超聲波測距模塊開始工作,實時檢測待測目標的距離并顯示在OLED屏上。當待測目標的距離在設定的最佳檢測范圍內時,紅外檢測傳感器實時檢測待測目標表面溫度并顯示在OLED屏上,當溫度大于設定閾值時蜂鳴器報警提醒,否則保持靜默狀態。此時,如果距離超出最佳檢測范圍,則會在OLED屏上提醒用戶超出檢測范圍,并返回到距離檢測階段。主程序流程圖如圖6所示。
3.2 超聲波測距模塊程序
該模塊主要使用了STM32芯片的APB2時鐘資源和相關GPIO口,并由中斷函數控制定時器的計數以此達到計時的目的。通過GPIO口的高低電平狀態觸發超聲波,并由超聲波往返時間計算出目標實際距離。運行步驟包括使能APB2時鐘總線、配置GPIO口模式、通過TRIG接收高電平觸發測距、判斷ECHO是否為高電平并停止計時、判斷回響信號持續時間并清零計數器或計算距離、將結果返回到主程序中調用。
工作流程概括如下:
1)觸發測距:使用IO口連接TRIG引腳觸發測距,需要至少10 μs的高電平信號。
2)發送超聲波:模塊自動發送8個周期的40 kHz方波。
3)檢測信號返回:模塊自動檢測是否有信號返回。
4)計算時間:如果有信號返回,通過IO口連接ECHO引腳輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間,這個時間可以用來計算距離。
5)計算距離:S = (t×v) / 2,其中S為檢測距離,t為高電平持續時間,v為聲速。通過測量高電平持續時間(即超聲波往返時間),可以計算出物體與模塊之間的距離。
3.3 紅外測溫模塊程序
MLX90614模塊是一款通用型的紅外測溫模塊,具有分辨率高、響應速度快、穩定性好等特點。該模塊與單片機之間通過系統管理總線SMBus(System Management Bus)進行通信,SMBus是I2C協議的一個子集,由英特爾公司在1995年提出。
MLX90614紅外測溫模塊在初始化后,會將其收集的所有數據存儲在內部寄存器中。MLX90614有EEPROM和RAM兩個存儲器,當單片機需要讀取其測量的數據時,它會分別讀取這兩個存儲器,圖7為該模塊的工作流程圖。
單片機從MLX90614讀取數據后,將其轉換為攝氏度,轉換公式為:
4 結果分析
4.1 系統功能分析
按照前文所述硬件電路設計,使用嘉立創EDA軟件繪制并制作PCB板,該PCB板尺寸為75 mm×50 mm,其設計圖和實物圖如圖8所示。在實物對應接口處連接傳感器模塊,進行實際功能測試。
為了測試超聲波傳感器模塊功能是否正常,在程序中設置距離的報警閾值為10 cm,分別在5 cm和15 cm左右的位置放置一定溫度的物體,OLED與報警器均以正常工作。為了測試溫度報警功能是否正常,在程序中設置溫度的報警閾值為30 ℃,隨后在同一位置分別放置不同溫度的物體,OLED與報警器均可以正常工作。圖9為實物演示圖,表2為測試結果表。
從測試結果可以發現,各個模塊均可以正常工作,當測試距離超過閾值時,OLED顯示“請您靠近點!”進行文本提示,且蜂鳴器進行報警;當測試溫度超過閾值時,OLED顯示“過高”進行文本提示,且蜂鳴器進行報警;當距離與溫度均在閾值范圍內時,OLED顯示“正常”,且蜂鳴器保持靜默。
4.2 距離檢測結果分析
為了測試超聲波距離檢測模塊的性能,把本設計系統固定在實驗臺上,在平臺上從超聲波模塊HC-SR04的頂端開始標注0~20 cm的測試距離。測試結果如表3所示,測試誤差擬合圖如圖10所示。
通過查閱HC-SR04的產品參數可知,該模塊檢測距離為2 cm到450 cm,檢測精度可達0.2 cm。通過測試結果可知在11.5 cm以內時,檢測誤差值在0.2 cm上下波動,隨著距離增加檢測誤差逐漸增大至2.54 cm,由于本設計主要用于人體體溫檢測,因此將檢測范圍控制在10 cm以內時精度最佳。
4.3 溫度檢測結果分析
在室溫25 ℃下,采用本設計與傳統水銀溫度計分別采集人體體溫,為保證樣本一致性,體溫采集時均采集腋下體溫。并將本設計的采集距離控制在5 cm左右,采集結果如表4所示。
從表4可以看出,本設計采集的人體體溫與傳統水銀溫度計采集的體溫,誤差值在±0.5 ℃左右。為了分析環境溫度對于檢測結果的影響,在室外15 ℃左右的環境溫度下,對相同樣本采用相同的檢測方式,采集到的溫度如表5所示。
從表4和表5可以發現,相同的樣本采用水銀溫度計在15 ℃時采集的體溫與25 ℃時采集的體溫相比有一定誤差,同樣地采用本設計在15 ℃和25 ℃時分別采集的體溫也有一定的誤差,兩者的誤差值相近效果相當。
為了全面驗證本設計的檢測準確性,購買市面常見的商用紅外測溫儀進行比較測試,并采用水浴加熱的方式模擬37 ℃以上的溫度,對比測試結果如圖11所示。
從圖11可以看出,針對相同的樣本,本設計檢測的溫度值與水銀溫度計檢測的溫度值誤差在±0.5 ℃范圍內,商用紅外測溫儀的檢測誤差在±0.6 ℃范圍內。在檢測過程中,本設計與商用紅外測溫儀檢測時間均在秒級,而水銀溫度計檢測時間較長。
5 結 論
本文采用STM32作為主控芯片,利用MLX90614紅外傳感器,設計了一款非接觸式紅外體溫檢測系統。超聲波傳感器HC-SR04實時檢測待測目標距離,在最佳檢測范圍內時MLX90614實時采集目標表面溫度數據,經主控芯片處理后轉換為溫度數據并實時顯示在OLED上,當溫度數值超過設定的健康體溫閾值時報警提醒。利用EDA軟件繪制并制作了PCB電路板,經實物測試后驗證了該系統在功能上的有效性。通過搭建測試平臺,驗證了距離檢測單元在10 cm以內的檢測誤差在0.2 cm左右波動。將本設計與傳統水銀溫度計及商用紅外測溫儀對比測試,結果表明在室內室外環境下,溫度檢測結果相近,且本設計檢測誤差在0.5 ℃以內,驗證了本系統的準確性。
參考文獻:
[1] 阮嘉文,李木子,王建茗,等.成人不同體溫測量方法的測溫規律實驗研究 [J].當代護士:下旬刊,2024,31(5):93-97.
[2] 郭飛.非接觸式紅外輻射測溫儀的電子學系統研制 [D].長春:長春理工大學,2023.
[3] GRODZINSKY E,SUND LEVANDER M. Histor4zia/uhf95zwI5E2ssHebA==y of the Thermometer [M].London:Macmillan,2019:23-35.
[4] 魏坦勛.人體非接觸測溫綜合誤差補償技術的研究與實現 [D].杭州:杭州電子科技大學,2012.
[5] 蘇東岳,郭麗華,孫健,等.紅外測溫技術的應用和思考 [J].中國醫療器械信息,2020,26(11):23-25.
[6] 白敬晨,于慶波,胡賢忠,等.基于紅外熱像儀的物體表面發射率測量方法 [J].東北大學學報:自然科學版,2013,34(12):1747-1750.
[7] 李冠霖,范永杰,王正吉,等.3.2~3.4μm紅外熱像儀基于擬合的測溫方法 [J].激光與紅外,2024,54(1):92-96.
[8] 韓瑤,駱曉玲,程換新,等.基于改進YOLOv7的紅外安防目標檢測 [J].激光雜志,2024,45(5):55-61.
[9] 張藝,胡健釧,朱尤攀,等.短波紅外成像系統設計及應用的研究進展 [J].紅外技術,2024,46(3):246-255.
[10] TOMY A,NUR I S,AHLI I,et al. Infrared thermometer on the wall (iThermowall): An open source and 3-D print infrared thermometer for fever screening [J].HardwareX,2021,9:e00168.
[11] 趙舜楠.非接觸式紅外測溫儀熱沖擊影響及預熱補償方法研究 [D].岳陽:湖南理工學院,2021.
[12] HEELEY A D,HOBBS M J,WILLMOTT J R. Zero Drift Infrared Radiation Thermometer Using Chopper Stabilised Pre-Amplifier [J].Applied Sciences,2020,10(14):48.
[13] 趙斌.紅外熱成像系統前端溫度補償算法研究 [D].鎮江:江蘇科技大學,2014.
[14] 段鵬程,程博,管今哥,等.基于多CCD同步耦合的動態燃燒場三維輻射測溫 [J].紅外與激光工程,2022,51(10):51-60.
[15] 王海國,陳藝,祝連慶,等.基于超材料吸收器的非致冷微紅外熱探測器 [J].半導體光電,2023,44(4):508-514.
[16] 李佩展,鐘家強,張文,等.高性能超導相變邊緣單光子探測器 [J].光子學報,2023,52(5):11-19.
[17] 李曉芬,張香香,譚秋林.基于熱電堆的微型熱流傳感器制備及性能研究 [J].傳感器與微系統,2024,43(5):31-34.
[18] 陳永甫.紅外輻射紅外器件與典型應用 [M].北京:電子工業出版社,2004.
[19] 高雪娟,董小倩,石萌,等.基于MLX90614的智能體溫安檢系統 [J].現代信息科技,2020,4(24):171-173+177.