程 智
一種防疫測(cè)溫儀的設(shè)計(jì)與實(shí)現(xiàn)——基于MLX90614非接觸式紅外測(cè)溫傳感器
程 智
(黃岡職業(yè)技術(shù)學(xué)院 電子信息學(xué)院,湖北 黃岡 438002)
非接觸式紅外測(cè)溫是新冠疫情預(yù)防的第一關(guān)卡,往往測(cè)量人員眾多,且要求溫度測(cè)量準(zhǔn)確。MLX90614紅外測(cè)溫傳感器測(cè)量通過捕獲人體輻射的紅外線,達(dá)到測(cè)量溫度的目的。其體積小、非接觸方式、測(cè)量精度高和響應(yīng)速度快,廣泛的用于醫(yī)療測(cè)量設(shè)備、工業(yè)生產(chǎn)、日常家用電器之中。本文重點(diǎn)分析MLX90614結(jié)構(gòu)及工作原理,圍繞該傳感器設(shè)計(jì)了充電電路、顯示電路、控制電路等,從而設(shè)計(jì)出一款便攜式紅外測(cè)溫儀。
MLX90614;充電電路;顯示電路;控制電路;測(cè)溫儀
一般來(lái)說(shuō),測(cè)溫方式可分為接觸式和非接觸式[1]。常見接觸式測(cè)溫:水銀計(jì)測(cè)溫,利用水銀的熱脹冷縮原理;熱敏電阻測(cè)溫,通過半導(dǎo)體阻值與溫度關(guān)系來(lái)實(shí)現(xiàn)對(duì)溫度測(cè)量。而新冠在預(yù)防中,測(cè)溫必須采用非接觸式測(cè)溫。如在公眾場(chǎng)合如商場(chǎng)、火車站熱流量大的地方采用紅外熱成像攝像頭來(lái)測(cè)溫,但測(cè)量?jī)x器非常昂貴,在私人場(chǎng)所,如的士、住宅、小區(qū)等,更需要一種測(cè)量準(zhǔn)確、響應(yīng)迅速、攜帶方便和價(jià)格便宜的非接觸式測(cè)溫儀。
人體能對(duì)外輻射能量,稱為紅外輻射。人體溫度與自身輻射能量的強(qiáng)度、頻率(波長(zhǎng))有關(guān)。如果能夠測(cè)量出紅外輻射能量強(qiáng)度和波長(zhǎng),就能夠推算出人體表面溫度,這就稱之為紅外測(cè)溫原理。紅外測(cè)溫系統(tǒng)由光電探頭、光學(xué)系統(tǒng)、信號(hào)調(diào)理電路及電信號(hào)輸出四部分組成。如下圖1所示,為紅外非接觸式紅外測(cè)溫儀硬件設(shè)計(jì)框圖:
圖1 硬件設(shè)計(jì)框圖
圖2 STM32主控制電路
采用ARM32位Cortex-M3內(nèi)核的STM32F103C8T6單片機(jī)為系統(tǒng)控制器,最高工作頻率72MHz,1.25 DMIPS/MHz,單周期乘法和硬件除法。片上集成256KB的Flash存儲(chǔ)器;20KB的SRAM存儲(chǔ)器,內(nèi)部集成了多路ADC(模數(shù)轉(zhuǎn)換器),多路串口控制器。開發(fā)資源豐富,采用圖形化開發(fā)工具STM32CUBEMX,KEIL實(shí)現(xiàn)軟件設(shè)計(jì),大大縮減開發(fā)周期。主要實(shí)現(xiàn)功能如下:控制紅外傳感器 MLX90614 進(jìn)行溫度測(cè)量,并將溫度顯示在OLED上。如果溫度超過37.3℃,通過蜂鳴器和LED彩燈進(jìn)行聲光報(bào)警。STM32主控制電路主要由晶體振蕩電路、復(fù)位電路組成。可外部高速晶振(HSE)和低速晶振(LSE)。其中高速晶振為8MHZ,低速晶振為32.768KHZ。8M晶振與電容C8、C10構(gòu)成晶體振蕩電路,產(chǎn)生穩(wěn)定的時(shí)鐘信號(hào)。為單片機(jī)提供精準(zhǔn)的時(shí)鐘源。當(dāng)NRST引腳保持低電平一段時(shí)間后(2us以上)會(huì)導(dǎo)致MCU發(fā)生復(fù)位,當(dāng)維持一段時(shí)間的低電平后再恢復(fù)高電平即可。因?yàn)殡娙莸奶匦允歉糁蓖ń唬?,電容只有在上電時(shí)候會(huì)在兩端累計(jì)電荷,當(dāng)穩(wěn)定后不會(huì)在釋放電荷。當(dāng)上電時(shí),電容兩端逐漸由電位差為0,即NRST引腳與GND等電位,為低電平;隨著充電時(shí)間推移,電容兩端的電位差逐漸達(dá)到最大3.3V,即為高電平。如上圖2所示。
圖3 鋰電池供電電路
為了提高溫度測(cè)量便攜性,故采用鋰電池供電,如上圖3所示,CN1為鋰電池接口,系統(tǒng)采用4.2V聚合鋰電池,當(dāng)電量不足時(shí)候,通過USB對(duì)鋰電池供電,其中芯片TC4056A為充電管理芯片,負(fù)責(zé)對(duì)電池充電。該芯片充電電流由2腳串聯(lián)電阻R9決定,電流大小計(jì)算公式為:
I = Vprog/R9 * 1200 (1)
在電池預(yù)充電階段Vprog電壓為0.1V,在恒流充電階段,Vprog電壓為1V。
GHRG(引腳 7)漏極開路輸出的充電狀態(tài)指示端。當(dāng)充電器向電池充電時(shí),CHRG 管腳被內(nèi)部開關(guān)拉到低電平,表示充電正在進(jìn)行;否則 CHRG 管腳處于高阻態(tài)。LED2用于指示充電狀態(tài),點(diǎn)亮表示在充電之中,熄滅表示充電完成。
1.3.1 MLX90614結(jié)構(gòu)及應(yīng)用電路
圖4 外觀及應(yīng)用電路
MLX90614采用5V供電,測(cè)量溫度范圍為-40℃—125℃。溫度輸出有兩種方式:SMBus和PWM(脈沖寬帶調(diào)制信號(hào))。MLX90614 集成了紅外熱電堆感應(yīng)器MLX81101和用于處理紅外感應(yīng)器信號(hào)的專用處理芯片MLX90302(內(nèi)含低噪聲放大器、17 位 A/D 轉(zhuǎn)換器、數(shù)字信號(hào)處理單元、脈寬調(diào)制及邏輯控制電路)[1-2],測(cè)量相應(yīng)速度僅僅100多毫秒,測(cè)量量辨析度可達(dá)到 0.02℃[2]。如圖4為該傳感器外觀圖及應(yīng)用電路圖,表1為具體引腳功能。
表1 MLX90614引腳功能圖
MLX90614 基于SMBus總線傳輸協(xié)議。SMBus接口能提供在主設(shè)備(MD:Master Device)與從屬設(shè)備(SD:Slave Device)之間進(jìn)行數(shù)據(jù)通訊[3]。根據(jù)手冊(cè)單個(gè)MLX90614 作為從設(shè)備地址為0x00,多個(gè)MLX90614 默認(rèn)地址為0x5A。主設(shè)備STM32控制器與從設(shè)備MLX90614,數(shù)據(jù)傳輸以字節(jié)為單位進(jìn)行傳輸,采用握手應(yīng)答方式來(lái)傳輸信號(hào),及每次發(fā)送一個(gè)字節(jié)數(shù)據(jù),等待對(duì)方應(yīng)答ACK(應(yīng)答)信號(hào),如果超時(shí)沒有收到ACK信號(hào),從新發(fā)送一字節(jié)數(shù)據(jù),如果多次依然沒有接收到ACK信號(hào),停止發(fā)送,結(jié)束通信。數(shù)據(jù)傳輸協(xié)議如圖5所示:
圖5 SMBus傳輸協(xié)議
圖6 數(shù)據(jù)讀寫協(xié)議
MLX90614的數(shù)據(jù)傳輸每次傳送一個(gè)字節(jié)。每個(gè)字節(jié)都按照高位(MSB)在前、低位(LSB)在后的格式傳輸?2個(gè)字節(jié)中間的第9個(gè)時(shí)鐘是應(yīng)答時(shí)鐘[4]。如圖6所示,首先來(lái)看主設(shè)備讀取從設(shè)備過程:主設(shè)備(單片機(jī))首先發(fā)送第一幀9bits的數(shù)據(jù):1位起始位,7位從機(jī)地址,1位寫命令。等待從機(jī)相應(yīng)ACK。接著發(fā)送第二幀數(shù)據(jù)8bits命令,等待從機(jī)相應(yīng)發(fā)出ACK信號(hào)。第三幀由9bits數(shù)據(jù)組成:1位啟始幀,7bit從機(jī)地址,1bit讀命令。從機(jī)依次發(fā)出2字節(jié)的回復(fù)數(shù)據(jù)。其次再來(lái)看主設(shè)備讀取寫從設(shè)備過程:主設(shè)備(單片機(jī))首先發(fā)送第一幀9bits的數(shù)據(jù):1位起始位,7位從機(jī)地址,1位寫命令。等待從機(jī)相應(yīng)ACK。接著發(fā)送第二幀數(shù)據(jù)8bits命令,等待從機(jī)相應(yīng)發(fā)出ACK信號(hào)。從機(jī)依次接收到2字節(jié)的數(shù)據(jù),每接收到一幀就回復(fù)ACK應(yīng)答信號(hào)。
1.3.2 溫度計(jì)算
主控制通過SMBus總線來(lái)讀取 MLX90614內(nèi)部RAM中0x07地址里面的溫度數(shù)據(jù),溫度數(shù)據(jù)由2字節(jié)組成,低字節(jié)(DataL)在前,高字節(jié)(DataH)在后。然后根據(jù)計(jì)算公式2,計(jì)算出最終測(cè)試溫度(單位:℃)。
T= (DataH<<8) | DataL * 0.02-273.15 (公式二)
圖7 聲光報(bào)警電路
如圖7所示,單片機(jī)通過NPN型三極管來(lái)控制有源蜂鳴器的開、關(guān)。當(dāng)BUZZ引腳輸出高電平的時(shí)候,三極管導(dǎo)通蜂鳴器響,當(dāng)輸出低電平的時(shí)候,三極管停止工作,蜂鳴器不響。LED電路采用紅、綠、藍(lán)三色等,分別表示不同的工作狀態(tài),其中紅燈表示溫度異常,綠燈表示溫度正常,藍(lán)燈表示正在測(cè)量中。
系統(tǒng)流程圖如圖8所示,首先完成系統(tǒng)硬件相關(guān)初始化,如配置stm32單片機(jī)時(shí)鐘、定時(shí)器、GPIO等。然后等待按鍵是否按下,如果按下則進(jìn)行溫度測(cè)量,否則一直等待,直到用戶按下。當(dāng)用戶按下按鍵后,單片機(jī)與傳感器MLX90614通過SMBus總線協(xié)議進(jìn)行數(shù)據(jù)傳輸,如果計(jì)算出溫度超過37.3℃,則顯示溫度異常蜂鳴器每隔1S響一次,同時(shí)RGB彩燈,顯示紅色。如果溫度正常則從新回到按鍵檢測(cè)狀態(tài)等待下一次按下。
圖8 系統(tǒng)流程圖
圖9 溫度讀取流程圖
溫度讀取過程:?jiǎn)纹瑱C(jī)首先發(fā)送三幀數(shù)據(jù),其中第二幀為命令,寄存器為0x07,讀取傳感器內(nèi)部RAM溫度值。傳感器MLX90614接收到讀命令后,分兩幀,依次傳輸溫度低8位和溫度高8位[5]。
核心讀寫代碼如下:
圖10 實(shí)物設(shè)計(jì)圖
圖11 PCB設(shè)計(jì)圖
圖10采用雙面板PCB設(shè)計(jì)實(shí)物圖,溫度傳感器安裝在傳感器背面,實(shí)物設(shè)計(jì)正面放置OLED顯示屏、STM32控制電路、按鍵電路、鋰電池充電電路等。圖11位PCB設(shè)計(jì)圖,在進(jìn)行PCB設(shè)計(jì)時(shí)候,對(duì)于大電流電路:供電電路、鋰電池充電電路采用鋪銅方式來(lái)降低阻抗,提高系統(tǒng)穩(wěn)定性。STM32晶體振蕩電路的晶振下方盡量不走線,避免高頻率信號(hào)的干擾,這樣整體設(shè)計(jì)電路才可靠、穩(wěn)定性好。
[1]鄭貴林,劉麗莎.基于MLX90614的非接觸式 測(cè)溫儀[J].自動(dòng)化與儀表,2014(10):12-15.
[2]鞏文東,趙青龍,馮國(guó)俊,等.具有云端報(bào)警功能的高校分布式體溫檢測(cè)裝置[J].安徽電子信息職業(yè) 技術(shù)學(xué)院學(xué)報(bào),2021,20(1):14-18.
[3]張日欣.基于MLX90614 的非接觸式體溫測(cè)量系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2009,8(3):105-107.
[4]沙春芳.紅外溫度計(jì) MLX90614 及其應(yīng)用[J].現(xiàn)代電子技術(shù),2007 (22):36-37,40.
[5]Melexis.MLX90621 Datasheet [EB/OL].(2016- 09-15).https://www.melexis.com/zh/documents/documentation/ datasheets/datasheet-mlx90621.
TP732+.2
A
1672-1047(2022)06-0138-05
10.3969/j.issn.1672-1047.2022.06.36
2022-11-03
程 智,男,湖北武漢人,碩士,講師。研究方向:嵌入式技術(shù),人工智能技術(shù)。
[責(zé)任編輯:羅幼平]
黃岡職業(yè)技術(shù)學(xué)院學(xué)報(bào)2022年6期