張曉娟,付楊濤,成晉軍
(山西工程科技職業(yè)大學(xué),山西 太原 030619)
人類的體溫是非常重要的一項(xiàng)生理指標(biāo),體溫的測(cè)量方式可分為接觸式和非接觸式,非接觸式測(cè)溫的優(yōu)點(diǎn)是在進(jìn)行體溫的測(cè)量時(shí),不容易造成交叉感染、測(cè)溫速度快、不影響物體本身的溫度場(chǎng)等[1]。本文通過大量的實(shí)踐設(shè)計(jì),目的在于設(shè)計(jì)一種較高精度的同時(shí)具有一定的誤差補(bǔ)償功能的非接觸式的紅外測(cè)溫系統(tǒng)。
本設(shè)計(jì)的主要流程:紅外測(cè)溫傳感器對(duì)物體紅外波段輻射能進(jìn)行采集,將采集到的模擬信號(hào)經(jīng)過放大和ADC轉(zhuǎn)換為數(shù)字信號(hào)傳入微控制器中[2]。紅外傳感器內(nèi)置NTC信號(hào)直接接入STM32內(nèi)置ADC,該紅外測(cè)溫?cái)?shù)據(jù)受到環(huán)境溫度、環(huán)境濕度和距離的影響,通過環(huán)境溫度模塊,環(huán)境濕度模塊和激光測(cè)距模塊分別對(duì)環(huán)境溫度、環(huán)境濕度和距離三方面進(jìn)行數(shù)據(jù)采集并傳入微控制器中,然后對(duì)測(cè)得的各種數(shù)據(jù)進(jìn)行處理,得出修正以后的紅外溫度測(cè)量值,在OLED12864中進(jìn)行顯示,通過WiFi模塊進(jìn)行無線傳輸,將溫度數(shù)據(jù)傳送給手機(jī),通過USB接口將數(shù)據(jù)傳送給上位機(jī),利用無源蜂鳴器設(shè)計(jì)報(bào)警模塊,當(dāng)溫度高于37.5 ℃進(jìn)行報(bào)警。當(dāng)測(cè)溫儀正常工作時(shí)顯示綠光,報(bào)警時(shí)顯示紅光,錯(cuò)誤時(shí)顯示藍(lán)光。
單片機(jī)的選擇對(duì)于本設(shè)計(jì)是至關(guān)重要的,本次單片機(jī)需要考慮的范圍內(nèi)容包括性能的高低、功耗的大小、通訊的速度、穩(wěn)定性的好壞和封裝的形式。選取最適合本設(shè)計(jì)的單片機(jī)型號(hào)為STM32F103,它具備價(jià)格實(shí)惠、性能強(qiáng)大、資源完備等特點(diǎn),能夠滿足設(shè)計(jì)所需;功耗有三個(gè)模式分別為:sleep、stop、standby,在standby形式下,只保存?zhèn)浞菁拇嫫骱痛龣C(jī)電流維持任務(wù),能夠?qū)崿F(xiàn)低功耗的作用;CPU幾乎不需要等待,非常接近計(jì)算機(jī),而且更適應(yīng)于手機(jī)等設(shè)備,為后續(xù)的傳輸數(shù)據(jù)提供了更優(yōu)的條件。
STM32F103的工作電壓為2 V~3.6 V,工作溫度為-40 ℃~85 ℃,選用的是LQFP48封裝,系統(tǒng)時(shí)鐘最高可達(dá)72 MHz,通過將其他部分的裝置單元例如傳感器模塊、執(zhí)行單元、傳輸模塊等連接到相應(yīng)的引腳上,實(shí)現(xiàn)本設(shè)計(jì)具體的功能。
本系統(tǒng)采用的紅外傳感器是BM43THA紅外測(cè)溫傳感器,紅外光電傳感器在檢測(cè)是否有人經(jīng)過時(shí)會(huì)向目標(biāo)發(fā)出一束紅外光,當(dāng)有人經(jīng)過時(shí)就會(huì)將這束紅外光遮擋反射給傳感器的接收部分,此時(shí)就會(huì)判斷為有人經(jīng)過[3]。而在與單片機(jī)通信的電路中,紅外光電傳感器模塊在檢測(cè)到人時(shí),STM32F103C8T6單片機(jī)會(huì)輸出低電平,無人時(shí)輸出高電平,在電路中紅外光電傳感器只需要三個(gè)引腳(電源輸入引腳、接地引腳、信號(hào)輸出引腳)與單片機(jī)通信即可。
圖1 高精度紅外測(cè)溫系統(tǒng)結(jié)構(gòu)框圖
本設(shè)計(jì)使用VL53L0X激光測(cè)距芯片,該傳感器使用940 nm無紅外閃爍激光器,該頻段的激光為不可見光,不會(huì)危害人的眼睛,系統(tǒng)FOV可達(dá)25 ℃,測(cè)距范圍為2 cm~200 cm。正常工作模式下的功率為20 mW,待機(jī)時(shí)的電流僅有5 μA。SCL和SDA為連接MCU的IIC接口,MCU通過這個(gè)IIC接口來控制VL53L0X,XSHUT為芯片的片選引腳,用于MCU使能或者復(fù)位傳感器。而GPIO1引腳為中斷輸出引腳,使用時(shí)需要外部上拉電阻。
本設(shè)計(jì)使用DHT11對(duì)環(huán)境濕度進(jìn)行測(cè)量以實(shí)現(xiàn)誤差修正。DHT11是一款能夠測(cè)量溫濕度的傳感器,其測(cè)量的核心元件是電阻式元件,測(cè)量濕度采用的是濕敏電阻,其相對(duì)濕度精度可達(dá)±5%RH。
本設(shè)計(jì)使用DS18B20溫度傳感器對(duì)環(huán)境溫度進(jìn)一步進(jìn)行補(bǔ)償,以提高紅外線測(cè)溫的精度。DS18B20通過PB12引腳與單片機(jī)連接,同時(shí)還連接了電阻R3,可以控制通信的穩(wěn)定,對(duì)人體體溫的讀取主要是通過兩個(gè)命令,先對(duì)時(shí)序初始化,啟動(dòng)DS18B20,發(fā)送轉(zhuǎn)換命令0x44;第二個(gè)是0xbe存儲(chǔ)命令,得到數(shù)據(jù),若測(cè)得值為負(fù)值,就使用補(bǔ)碼,再進(jìn)行轉(zhuǎn)換。
該模塊的作用為顯示測(cè)溫讀數(shù),采用SSD1306作為OLED驅(qū)動(dòng)芯片,SSD1306有256級(jí)的亮度控制等級(jí),能夠通過IIC接口來接收MCU傳來的數(shù)據(jù)或者是命令。
本設(shè)計(jì)所用無線通信模塊是ESPRESSIF的ESP8266,ESP8266能夠進(jìn)行開發(fā)和寫程序的部分占比更大,還可以連接云端,里面配置了10 bit高精度ADC,ESP8266系列不同的模組之間大部分是封裝上的,以及flash大小不一樣,裝置型號(hào)選擇使用ESP8266-12E。
ESP8266的TXD與芯片PA3引腳連接,RXD和PA2引腳連接,它能夠進(jìn)行信號(hào)之間的轉(zhuǎn)換,在收到串行信號(hào)以后要經(jīng)過轉(zhuǎn)變成無線信號(hào),再發(fā)送到終端,同樣它也能夠?qū)o線信號(hào)轉(zhuǎn)回至串行信號(hào)發(fā)送給芯片。
對(duì)于系統(tǒng)的配置以及初始化、檢測(cè)信息的收集、I/O控制、自動(dòng)模式的設(shè)計(jì)等使用開發(fā)設(shè)計(jì)STM32F103C8T6的軟件為Keil uVision5,包括編譯器、調(diào)試器等等,編程語言使用C語言,總體軟件流程圖如圖2所示。
圖2 總體程序流程圖
本文設(shè)計(jì)了一款較高精度的基于紅外技術(shù)的測(cè)溫系統(tǒng),實(shí)現(xiàn)對(duì)人體體溫的測(cè)量,并著力降低測(cè)溫距離、測(cè)溫時(shí)的環(huán)境溫度以及測(cè)溫時(shí)環(huán)境濕度對(duì)測(cè)溫精度造成的誤差[4]。設(shè)計(jì)以STM32F103為核心芯片,使用BM43THA紅外測(cè)溫傳感器進(jìn)行人體體溫的測(cè)量,引入VL53L0X激光測(cè)距模塊,DS18B20環(huán)境溫度測(cè)量模塊以及DHT11環(huán)境濕度測(cè)量模塊對(duì)紅外測(cè)溫的數(shù)值進(jìn)行誤差補(bǔ)償。本文所設(shè)計(jì)的紅外測(cè)溫系統(tǒng)通過對(duì)誤差進(jìn)行分析、電路的合理設(shè)計(jì)使得測(cè)溫精度得到了有效地提高。