陳靜CHEN Jing;李鑫LⅠXin
(南京理工大學紫金學院,南京 210023)
隨著新冠疫情的全球性發(fā)展,傳統(tǒng)接觸式測溫的測量方法和測量速度都已無法滿足需求[1,2]。相比于接觸式測溫,非接觸式紅外測溫耗時短、靈敏度高、測量范圍寬,而且不會對被測物體造成影響,因此非接觸式紅外測溫已成為測量體溫的主流方式[3,4]。但目前市面上主要應用的測溫系統(tǒng)大多只顯示溫度,不能直觀地顯示具體的測量部位,因此本文設計一種能同時顯示熱像圖和具體溫度的測溫系統(tǒng)。
本文設計的非接觸式紅外測溫系統(tǒng)采用STM32F103MCU 作為主控芯片,采用AMG8833 紅外熱成像模塊作為傳感器,實現(xiàn)非接觸式快速測溫,并能夠實時顯示熱像圖,當溫度超過設定閾值時能夠報警,該系統(tǒng)使用方便快捷,具有一定的實用性。
本系統(tǒng)主要基于STM32F103ZET6 單片機開發(fā)平臺,獲取AMG8833 紅外熱成像傳感器采集的信息,完成信息計算與處理并顯示被測物體溫度,系統(tǒng)的整體設計方案如圖1 所示。
圖1 系統(tǒng)整體設計方案
本設計主要實現(xiàn)的功能如下:
①在TFT-LCD 顯示屏上顯示動態(tài)熱像圖;
②在熱像圖的右側顯示三個數據(圖像中的最大溫度、最小溫度和中間位置溫度);
③當中間位置溫度大于預設值(系統(tǒng)默認預設值為50℃,顯示在熱像圖下方)時,LED 燈亮,蜂鳴器響,表示警報;
④通過按下設置按鈕,可增加或減少預設值,每次增加或減少1℃;
⑤按下復位按鈕,系統(tǒng)還原到初始狀態(tài)。
非接觸式紅外測溫系統(tǒng)的硬件設計分為6 個子模塊,分別是AMG8833 紅外熱成像模塊、TFT-LCD 液晶顯示模塊、復位模塊、按鍵模塊、LED 模塊和蜂鳴器模塊。
AMG8833 紅外熱成像模塊:該模塊可測量產生8*8的熱像矩陣,通過I2C 通訊將數據傳至MCU。在設計時將IIC_SCL 引腳與STM32 的GPIOB6 引腳連接,SDA 引腳與GPIOB7 引腳連接,達到I2C 通訊的目的。
TFT-LCD 液晶顯示模塊:該模塊采用RGB565 編碼,接收MCU 通過熱像矩陣計算出的RGB 顏色矩陣,并實時顯示熱像圖,同時可顯示圖像中的最大溫度、最小溫度和中間位置溫度。TFT-LCD 模塊采用16 位并行數據通訊與MCU 相連。
復位模塊:該模塊的RESET 端接到STM32 的NRST引腳,實現(xiàn)單片機的低電平復位。在設計電路時,將TFTLCD 的復位引腳也接到RESET 處,達到在STM32 復位的同時復位TFT-LCD 液晶屏的效果。
按鍵模塊:該模塊KEY0 和KEY1 端分別與STM32的GPIOE4、GPIOE3 引腳相連,實現(xiàn)溫度預設值的增加或減小。在設計電路時并沒有使用上拉電阻,需要使用STM32 自身的上拉電阻,因此在配置IO 口時對應設置為上拉輸入模式。
LED 模塊:該模塊LED0 端與STM32 的GPIOB5 引腳相連,當溫度超限時,GPIOB5 引腳輸出低電平,LED 燈亮以示告警。
蜂鳴器模塊:該模塊BEEP 端與STM32 的GPIOB8 引腳相連,當溫度超限時,GPIOB8 引腳輸出高電平,蜂鳴器發(fā)聲。
系統(tǒng)整體硬件原理圖如圖2 所示。
圖2 系統(tǒng)整體硬件原理圖
系統(tǒng)總體軟件設計過程如下:
①初始化STM32 單片機、AMG8833 模塊和TFT-LCD模塊,完成通訊配置,為后續(xù)的操作做準備;
②采用I2C 通訊方式與AMG8833 紅外熱成像模塊通信,讀取采集的8*8 溫度矩陣;
③找出溫度矩陣中的最大值、最小值和中心點的溫度;
④采用插值計算方法將8*8 的溫度矩陣擴展為59*59 的溫度矩陣;
⑤將59*59 的溫度矩陣轉換為RGB565 格式的圖像矩陣,便于生成熱像圖;
⑥掃描按鍵狀態(tài),根據中心點溫度是否超過設定閾值,選擇是否進行聲光報警;
⑦將溫度數值和熱像圖輸出顯示至LCD 顯示屏。
總體軟件設計流程圖如圖3 所示。
圖3 系統(tǒng)軟件設計流程圖
在上述過程中,采用插值計算進行溫度矩陣擴展過程如下:
在TFT-LCD 屏幕上,8*8 共64 個像素點所能提供的視覺效果十分有限,甚至無法看到明顯的變化,所以在設計程序時,必須加入合適的插值計算算法,將8*8 的矩陣擴大。本設計的插值計算算法是將原來的8*8 矩陣擴大到59*59,具體操作過程如下:
①將8*8 的矩陣均勻放入57*57 的矩陣中(除去原定59*59 矩陣中的第0 行、第58 行、第0 列、第58 列)。
②完成橫向插值。假設矩陣中兩個已有溫度的點x1、x9之間有7 個待插值的點x2~x8,計算舉例,以此類推,橫向插值結束后溫度點個數變?yōu)?56 個。
③完成縱向插值。方法與橫向類似,縱向插值結束后溫度點個數變?yōu)?249 個,即57*57。
④完成第0 行、第58 行、第0 列、第58 列的插值。第0 行與第1 行完全相同,第58 行與第57 行完全相同,第0列與第1 列完全相同,第58 行與第57 行完全相同。插值完成后就可以得到一個59*59 的溫度矩陣。
要想顯示熱像圖,必須將溫度矩陣轉換成顏色矩陣。此設計采用的顏色編碼對應溫度從低到高分別是:黑色、藍色、紫色、紅色、黃色、白色。TFT-LCD 采用RGB565 編碼,調節(jié)顏色就是改變R、G、B 三個值,最后通過二進制移位的方法生成一個具體的顏色,將這些顏色寫入LCD 的GRAM 對應的像素點就會顯示為對應的顏色。
根據上述軟硬件設計原理,完成非接觸式紅外測溫系統(tǒng)如圖4 所示。
圖4 非接觸式紅外測溫系統(tǒng)實物圖
LCD 界面設計顯示如圖5 所示。它由熱像圖區(qū)域、數據顯示區(qū)域、報警溫度顯示區(qū)域(對于中心點)和一個顏色條組成。圖5 中顯示的熱像圖為人的手勢1 所呈現(xiàn)的熱像圖。從顯示結果可以看出測溫系統(tǒng)的結果準確度較高,可以用于實時測量人體溫度。
圖5 LCD 界面顯示測試效果
本文基于STM32 單片機設計了一套非接觸式紅外測溫系統(tǒng),結合AMG8833 紅外熱成像模塊、TFT-LCD 液晶顯示模塊等實現(xiàn)了測溫系統(tǒng)的軟件設計和各模塊的硬件設計,基于設計方案完成了非接觸式紅外測溫系統(tǒng)的實物設計,對實物系統(tǒng)進行測試,驗證了測溫系統(tǒng)的有效性與可靠性,說明本文設計的系統(tǒng)能夠用于實時測量人體溫度,同時可以實時顯示熱像圖,具有一定的實用性。