溫濕度的測(cè)量與控制在工業(yè)生產(chǎn)、氣象、環(huán)保及日常生活的許多領(lǐng)域得到越來(lái)越廣泛的應(yīng)用,有很多地方都需要對(duì)溫度和濕度進(jìn)行定時(shí)或?qū)崟r(shí)監(jiān)控。人們除對(duì)溫濕度傳感器的普通性能(如度、長(zhǎng)期漂移特性等)感興趣外,還把目光聚集到其在不同環(huán)境下的耐久性、元件尺寸、數(shù)字化、簡(jiǎn)單和快速的系統(tǒng)綜合特性上。SHTll是瑞士Sensirion公司生產(chǎn)的具有二線串行接口的單片全校準(zhǔn)數(shù)字式新型相對(duì)濕度和
溫度傳感器,可用來(lái)測(cè)量相對(duì)濕度、溫度和露點(diǎn)等參數(shù),具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路及全互換的特點(diǎn)。該傳感器將CMOS芯片技術(shù)與傳感器技術(shù)融合,為開(kāi)發(fā)高集成度、高精度、高可靠性的溫濕度測(cè)控系統(tǒng)提供了解決方案。
1、系統(tǒng)組成及硬件設(shè)計(jì)
溫濕度感測(cè)系統(tǒng)將單片機(jī)與溫濕度傳感器等技術(shù)相結(jié)合,以PIC單片機(jī)為微控制器,利用數(shù)字溫濕度傳感器SHTll對(duì)環(huán)境的溫度和相對(duì)濕度進(jìn)行檢測(cè),通過(guò)二線串行接口將數(shù)字溫濕度信號(hào)送至PIC微控制器,zui后利用PIC微控制器完成相對(duì)濕度的非線性補(bǔ)償和溫度補(bǔ)償,并將實(shí)際溫度和相對(duì)濕度值送液晶顯示器顯示,從而實(shí)現(xiàn)對(duì)環(huán)境溫濕度的測(cè)控。溫濕度感測(cè)系統(tǒng)主要由溫濕度傳感器SHTll和PIC單片機(jī)以及162字符型液晶顯示屏組成。
1.1數(shù)字溫濕度傳感器SHTll
溫濕度傳感器SHTll將溫度感測(cè)、濕度感測(cè)、信號(hào)變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個(gè)芯片上,其內(nèi)部結(jié)構(gòu)如圖1所示。該芯片包括一個(gè)電容性聚合體濕度敏感元件和一個(gè)用能隙材料制成的溫度敏感元件。這兩個(gè)敏感元件分別將濕度和溫度轉(zhuǎn)換成電信號(hào),該電信號(hào)首*入微弱信號(hào)放大器進(jìn)行放大,然后進(jìn)入一個(gè)14位的A/D轉(zhuǎn)換器,zui后經(jīng)過(guò)二線串行數(shù)字接口輸出數(shù)字信號(hào)。SHTll在出廠前,都會(huì)在恒濕或恒溫環(huán)境中進(jìn)行校準(zhǔn),校準(zhǔn)系數(shù)存儲(chǔ)在校準(zhǔn)寄存器中,在測(cè)量過(guò)程中,校準(zhǔn)系數(shù)會(huì)自動(dòng)校準(zhǔn)來(lái)自傳感器的信號(hào)。此外,SHTll內(nèi)部還集成了一個(gè)加熱元件,加熱元件接通后可以將SHTll的溫度升高5℃左右,同時(shí)功耗也會(huì)有所增加。此功能主要為了比較加熱前后的溫度和濕度值,可以綜合驗(yàn)證兩個(gè)傳感器元件的性能。在高濕(>95%RH)環(huán)境中,加熱傳感器可預(yù)防傳感器結(jié)露,同時(shí)縮短響應(yīng)時(shí)間,提高精度。加熱后SHTll溫度升高、相對(duì)濕度降低,較加熱前,測(cè)量值會(huì)略有差異。
單片機(jī)和溫濕度傳感器通信采用串行二線接口SCK和DATA,其中SCK為時(shí)鐘線,DATA為數(shù)據(jù)線,硬件接口電路非常簡(jiǎn)單。需要注意的是:DATA數(shù)據(jù)線需要外接上拉電阻,時(shí)鐘線SCK用于微處理器和SHTll之間通信同步,由于接口包含了*靜態(tài)邏輯,所以對(duì)SCKzui低頻率沒(méi)有要求,當(dāng)工作電壓高于4.5V時(shí),SCK頻率zui高為10MHz,而當(dāng)工作電壓低于4.5V時(shí),SCKzui高頻率為1MHz。由于所用單片機(jī)不具備I2C總線接口,故使用單片機(jī)通用I/O口線來(lái)虛擬I2C總線,并利用RA0口來(lái)虛擬數(shù)據(jù)線DATA,RA1口線來(lái)虛擬時(shí)鐘線,并在DATA端接入一只10kΩ的上拉電阻,同時(shí),在VDD及GND端接入一只0.1μF的去耦電容。
硬件連接如圖2所示。
1.2162字符型液晶顯示模塊
162字符型液晶顯示模塊是發(fā)展比較成熟的一種液晶顯示屏,應(yīng)用相當(dāng)廣泛。它是一類(lèi)于顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣液晶顯示模塊,可顯示兩行,每行可以顯示16個(gè)字符,162字符型液晶顯示模塊應(yīng)用到溫濕度感測(cè)系統(tǒng)中顯示溫濕度,直觀方便又節(jié)約成本。
該顯示屏是一個(gè)以若干5x8或5x11點(diǎn)陣塊組成的顯示字符群。其中,字符群中的每一個(gè)字符塊為一個(gè)字符單位,字符間的點(diǎn)距和行距均為一個(gè)點(diǎn)的寬度。它的內(nèi)部有字符發(fā)生器CGROM,可以顯示160個(gè)5x7和32個(gè)5x10點(diǎn)陣字符,具有64個(gè)字節(jié)的CGRAM,可以自定義8個(gè)5x8或4個(gè)5x11點(diǎn)陣字符,有80個(gè)顯示存儲(chǔ)器DDRAM的地址。
162字符型液晶顯示模塊由16個(gè)引腳組成,具體的引腳功能如表1所示。
控制器接口信號(hào)說(shuō)明:也就是RS、R/W和E信號(hào)的配合選擇決定控制接口的4種模式,如表2所示。
162模塊與單片機(jī)的接口電路如圖3所示。
硬件將162模塊的數(shù)據(jù)總線的低4位接為常態(tài),在軟件中設(shè)置數(shù)據(jù)總線長(zhǎng)度為4位,4位數(shù)據(jù)總線時(shí)序圖如圖4所示。
2、系統(tǒng)軟件設(shè)計(jì)
2.1溫濕度讀取
單片機(jī)和溫濕度傳感器通信采用串行二線接口SCK和DATA,該二線串行通信協(xié)議和I2C協(xié)議是不兼容的。由于采用二線串行接口,對(duì)于SHTll的操作按照嚴(yán)格時(shí)序,共有5條用戶(hù)命令,分別是測(cè)量溫度命令(03H)、測(cè)量濕度命令(05H)、讀寄存器狀態(tài)命令(07H)、寫(xiě)寄存器狀態(tài)命令(06H)和軟啟動(dòng)命令(1EH)。
單片機(jī)發(fā)出啟動(dòng)命令,隨后發(fā)出一個(gè)后續(xù)8位命令碼,該命令碼包含3個(gè)地址位(芯片設(shè)定地址為000)和5個(gè)命令位,發(fā)送完該命令碼,將DATA總線設(shè)為輸入狀態(tài)等待SHTll的響應(yīng),SHTll接收到上述地址和命令碼后,在第8個(gè)時(shí)鐘下降沿,將DATA下拉為低電平作為芯片的ACK;在第9個(gè)時(shí)鐘下降沿之后,芯片釋放DATA(恢復(fù)高電平)總線;釋放總線后,開(kāi)始測(cè)量當(dāng)前濕度,測(cè)量結(jié)束后,再次將DATA總線拉為低電平;單片機(jī)檢測(cè)到DATA總線被拉低后,得知濕度測(cè)量已經(jīng)結(jié)束,給出SCK時(shí)鐘信號(hào);芯片在第8個(gè)時(shí)鐘下降沿,先輸出高字節(jié)數(shù)據(jù);在第9個(gè)時(shí)鐘下降沿,單片機(jī)將DATA總線拉低作為ACK信號(hào),然后釋放總線DATA,在隨后8個(gè)SCK周期下降沿,芯片發(fā)出低字節(jié)數(shù)據(jù);接下來(lái)的SCK下降沿,單片機(jī)再次將DATA總線拉低作為接收數(shù)據(jù)的ACK信號(hào);zui后8個(gè)SCK下降沿芯片發(fā)出CRC校驗(yàn)數(shù)據(jù),單片機(jī)不予應(yīng)答(NACK)則表示測(cè)量結(jié)束。CRC寄存器通過(guò)計(jì)算一個(gè)多項(xiàng)式(x8+x5+x4)之和來(lái)判定測(cè)量過(guò)程是否發(fā)生錯(cuò)誤,一旦發(fā)現(xiàn)錯(cuò)誤,單片機(jī)就發(fā)送軟啟動(dòng)命令,重新進(jìn)行測(cè)量。如果不使用CRC校驗(yàn),單片機(jī)可以在測(cè)量值LSB后保持應(yīng)答信號(hào)ACK高電平,來(lái)終止通信。SHTll在測(cè)量和通信完成后會(huì)自動(dòng)返回睡眠模式。
以測(cè)量相對(duì)濕度,測(cè)量值N=0000100100110001為例,整個(gè)測(cè)量過(guò)程時(shí)序如圖5(a)、(b)、(c)所示。DATA為雙向數(shù)據(jù)口,圖5中粗線段表示由SHTll來(lái)控制數(shù)據(jù)線,常態(tài)下由單片機(jī)控制數(shù)據(jù)線。
下面給出與上述硬件電路配套的PIC16的溫度傳感器讀取程序。
RETURN
2.2溫度和濕度值的計(jì)算
2.2.1濕度線性補(bǔ)償和溫度補(bǔ)償
SHTll可通過(guò)DATA數(shù)據(jù)總線直接輸出數(shù)字量濕度值。該濕度值稱(chēng)為“相對(duì)濕度”,需要進(jìn)行線性補(bǔ)償和溫度補(bǔ)償后才能得到較為準(zhǔn)確的濕度值。由于相對(duì)濕度數(shù)字輸出特性呈一定的非線性,因此為了補(bǔ)償濕度傳感器的非線性,可按下式修正濕度值:
式中,RHlineer為經(jīng)過(guò)線性補(bǔ)償后的濕度值,SORH為相對(duì)濕度測(cè)量值,C1、C2、C3為線性補(bǔ)償系數(shù)。
由于溫度對(duì)濕度的影響十分明顯,而實(shí)際溫度和測(cè)試參考溫度25℃有所不同,所以對(duì)線性補(bǔ)償后的濕度值進(jìn)行溫度補(bǔ)償很有必要。補(bǔ)償公式如下:
式中:RHtrue為經(jīng)過(guò)線性補(bǔ)償和溫度補(bǔ)償后的濕度值,T為測(cè)試濕度值時(shí)的溫度(℃),t1和t2為溫度補(bǔ)償系數(shù)。
2.2.2溫度值輸出
由于SHTll是采用PTAT能隙材料制成的溫度敏感元件,因而具有很好的線性輸出。實(shí)際溫度值可由下式算得:
式中,d1和d2為特定系數(shù),d1的取值與SHTll工作電壓有關(guān),d2的取值則與SHTll內(nèi)部A/D轉(zhuǎn)換器采用的分辨率有關(guān)。
2.3溫濕度顯示
計(jì)算出溫度、濕度值后,在162字符型液晶顯示模塊上顯示出來(lái),屏幕*行顯示溫度值:“TEM:……”第二行顯示濕度值:“HUM:……”。程序設(shè)定每5min更新一次溫濕度。顯示流程圖如圖6所示。
3、結(jié)論
由PIC單片機(jī)和溫濕度數(shù)字傳感器SHTll以及162液晶顯示模塊組成的溫濕度感測(cè)系統(tǒng),充分利用了SHTll的特點(diǎn),又對(duì)溫濕度測(cè)量功能進(jìn)行了擴(kuò)充,使其具有顯示直觀、運(yùn)行可靠、擴(kuò)充方便等優(yōu)點(diǎn)。利用可控的加熱制冷設(shè)備對(duì)該系統(tǒng)性能進(jìn)行了測(cè)試,實(shí)際結(jié)果表明:測(cè)溫范圍為-40~+100℃,誤差不超過(guò)0.5℃,濕度測(cè)量范圍是2~98%RH,誤差不超過(guò)4%RH(室溫25℃時(shí)測(cè)量),達(dá)到了預(yù)期性能指標(biāo),滿(mǎn)足實(shí)際應(yīng)用要求。