基于單片機(jī)的溫濕度感測(cè)系統(tǒng)的實(shí)現(xiàn)
摘要:基于PIC單片機(jī)的溫濕度感測(cè)系統(tǒng),以PIC單片機(jī)為核心,由溫濕度傳感器SHTll、162液晶顯示等模塊組成。首先SHTll對(duì)環(huán)境的溫度和相對(duì)濕度進(jìn)行檢測(cè),通過二線串行接口將數(shù)字溫濕度信號(hào)送至PIC微控制器,最后利用微控制器完成相對(duì)濕度的非線性補(bǔ)償和溫度補(bǔ)償,并將實(shí)際溫度和相對(duì)濕度值送液晶顯示器顯示,從而實(shí)現(xiàn)對(duì)環(huán)境溫濕度的測(cè)控。結(jié)果表明,系統(tǒng)溫度測(cè)量誤差為0.5℃,濕度測(cè)量誤差為4%RH,同時(shí)顯示直觀方便,滿足實(shí)際應(yīng)用要求。
關(guān)鍵詞:SHTll;溫濕度傳感器;單片機(jī);162字符型液晶顯示模塊
溫濕度的測(cè)量與控制在工業(yè)生產(chǎn)、氣象、環(huán)保及日常生活的許多領(lǐng)域得到越來越廣泛的應(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ì)濕度和溫度傳感器,可用來測(cè)量相對(duì)濕度、溫度和露點(diǎn)等參數(shù),具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路及全互換的特點(diǎn)。該傳感器將CMOS芯片技術(shù)與傳感器技術(shù)融合,為開發(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è),通過二線串行接口將數(shù)字溫濕度信號(hào)送至PIC微控制器,最后利用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)首先進(jìn)入微弱信號(hào)放大器進(jìn)行放大,然后進(jìn)入一個(gè)14位的A/D轉(zhuǎn)換器,最后經(jīng)過二線串行數(shù)字接口輸出數(shù)字信號(hào)。SHTll在出廠前,都會(huì)在恒濕或恒溫環(huán)境中進(jìn)行校準(zhǔn),校準(zhǔn)系數(shù)存儲(chǔ)在校準(zhǔn)寄存器中,在測(cè)量過程中,校準(zhǔn)系數(shù)會(huì)自動(dòng)校準(zhǔn)來自傳感器的信號(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ì)SCK最低頻率沒有要求,當(dāng)工作電壓高于4.5 V時(shí),SCK頻率最高為10 MHz,而當(dāng)工作電壓低于4.5 V時(shí),SCK最高頻率為1 MHz。由于所用單片機(jī)不具備I2C總線接口,故使用單片機(jī)通用I/O口線來虛擬I2C總線,并利用RA0口來虛擬數(shù)據(jù)線DATA,RA1口線來虛擬時(shí)鐘線,并在DATA端接入一只10kΩ的上拉電阻,同時(shí),在VDD及GND端接入一只0.1μF的去耦電容。
硬件連接如圖2所示。
1.2 162字符型液晶顯示模塊
162字符型液晶顯示模塊是發(fā)展比較成熟的一種液晶顯示屏,應(yīng)用相當(dāng)廣泛。它是一類專用于顯示字母、數(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)說明:也就是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條用戶命令,分別是測(cè)量溫度命令(03H)、測(cè)量濕度命令(05H)、讀寄存器狀態(tài)命令(07H)、寫寄存器狀態(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ù)高電平)總線;釋放總線后,開始測(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ù);接下來的SCK下降沿,單片機(jī)再次將DATA總線拉低作為接收數(shù)據(jù)的ACK信號(hào);最后8個(gè)SCK下降沿芯片發(fā)出CRC校驗(yàn)數(shù)據(jù),單片機(jī)不予應(yīng)答(NACK)則表示測(cè)量結(jié)束。CRC寄存器通過計(jì)算一個(gè)多項(xiàng)式(x8+x5+x4)之和來判定測(cè)量過程是否發(fā)生錯(cuò)誤,一旦發(fā)現(xiàn)錯(cuò)誤,單片機(jī)就發(fā)送軟啟動(dòng)命令,重新進(jìn)行測(cè)量。如果不使用CRC校驗(yàn),單片機(jī)可以在測(cè)量值LSB后保持應(yīng)答信號(hào)ACK高電平,來終止通信。SHTll在測(cè)量和通信完成后會(huì)自動(dòng)返回睡眠模式。
評(píng)論