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