賈麗霞
(鹽城生物工程高等職業技術學校,江蘇鹽城 224051)
隨著社會經濟的發展和科學技術的不斷進步,許多情況下都需要對環境的溫濕度進行限定。因此,為了隨時可以檢測環境溫濕度以進行監測[1],減少由于溫濕度對工程帶來的經濟損失,本文設計基于SHT11對溫濕度進行測量的系統,可以實現對環境溫濕度的監測。
溫度監測系統以msp430為核心,采用溫濕度傳感器SHT11測量溫濕度,系統由溫濕度數據采集模塊、主控模塊、顯示模塊、按鍵模塊組成,由溫濕度數據采集模塊采集數據送入單片機,處理之后根據按鍵操作完成相應的溫度和濕度顯示,并且具有超限報警的功能,圖1為系統結構圖。

圖1 系統結構框圖
1.2.1 主控模塊
MSP430單片機是由TI 公司推出的一系列超低功耗微處理器[2]。它的顯著特性是具有超低功耗,有5個低功耗模式可供選擇;數字控制的振蕩器可以使硬件從低功耗狀態快速轉化到喚醒狀態,可以在少于6μs時間內達到激活工作方式;開發語言有匯編語言和C 語言等特點。以上特性使之成為電池供電便攜設備的首選微處理器。
1.2.2 溫濕度監測模塊
本設計采用SHT11傳感器測量溫濕度。溫濕度測量芯片由一個電容式聚合體測濕元件和一個能隙式測溫元件組成,并與14位的模數轉換芯片以及串行接口電路無縫連接[3]。因此,該芯片與其他同類芯片相比,具有抗干擾能力強、測量精度高、相應時間極短、性價比高等優勢。
SHT11的內部硬件結構如圖2所示。

圖2 SHT11芯片的內部結構
SHT11傳感器測量溫度和相對濕度的默認精度分別為14位、12位,如果設置狀態寄存器,可將精度降至12位、8位。可以測量溫度的范圍為-40~123.8℃,如果設置的精度為14位,則溫度分辨率為0.01℃;可以測量的濕度范圍為0%~100%RH,如果設置的精度為12位,則濕度分辨率為0.03%RH[6]。SHT11傳感器芯片在出廠前,進行了極為精確的濕度標定,校準系數在OTP 內存以程序形式進行儲存。在測量過程中,程序能夠對相對濕度自動校準,傳感器的信號的校準與校準系數相關。SHT11芯片利用溫濕度傳感器分別產生的相對溫度、相對濕度模擬信號,經過放大器進行信號放大,然后經過模數轉換芯片進行模數轉換、信號校準和糾錯,最后通過RS232串行接口將相對溫度及濕度傳送到MSP430單片機進行處理。

表1 溫濕度結果對比
如圖4所示,SHT11的傳輸過程為當SCK 是高電平時DATA線是低電平,接著SCK 給出一個低脈沖,當SCK 再次為高電平時DATA 再次升高[7]。之后的命令序列由三個地址位(目前支持只000)和五個命令位組成。SHT11通過第八個SCK時鐘的下降沿后的DATA的下拉引腳來指示命令的正確接收。在SCK時鐘的第九個下降沿時,DATA 線被釋放(升為高電平),如圖4所示。傳輸兩個字節的測量數據和一個字節的CRC 校驗和傳輸,μC 必須通過DATA 線的下拉引腳接收每一個字節。
當外部與SHT11傳感器芯片的之間的通信突然中斷,則依據下面的時序可以使串口復位:如圖4所示,置位DATA 線處于高電平,觸發SCK 脈沖9次以上,緊接著在SCk 線上傳送一個“傳輸開始”命令序列。當執行溫(濕)度測量命令序列后,溫濕度測量控制器需要測量完成后才能接受新的命令。當使用12位和14位測量精度時,分別需要55和210ms的測量時間。當一次測量完成時,SHT11芯片將置位數據線為低電平,此時溫濕度測量控制器必須重新啟動SCK 信號后,傳輸2字節的隨機測量數據和1字節CRC校驗和。溫濕度測量控制器必須通過置位DATA 線為低電平,來確認接收的每一個字節,接收到數據是以MSB 序列傳輸的[8]。溫濕度測量控制器在確認CRC 數據正確后便停止工作,如果CRC-8校驗和不存在或沒有被是以,則溫濕度測量控制器在接收到LSB位后保持SCK 線為高電平來停止數據的傳輸,SHT11芯片會在測量溫濕度和數據通信完成后,返回睡眠模式自動節能。
1)顯示和按鍵模塊
系統的顯示模塊采用8位數碼管顯示,加上4*1的按鍵模塊控制。其中K1、K2分別在數碼管上顯示當前溫度和濕度,K3、K4顯示0,方便硬件調試。
2)報警模塊
系統采用了聲光報警。若系統檢測到周圍環境的溫濕度超過或低于測量的要求范圍,則單片機驅動P3.5接口的LED 閃爍,同時蜂鳴器響起,提醒報警。
整個程序主要包括了主程序、溫濕度數據采集、數碼管顯示、按鍵處理、聲光報警等模塊的設計。

圖3 SHT11開始傳輸時序圖

圖4 SHT11復位時序圖
圖5是監測儀主程序流程圖,在程序設計時采用按鍵選擇的結構,主要為溫濕度顯示選擇。按鍵后,由單片機系統判斷,若為K1,則顯示當前溫度;若為K2,則顯示當前濕度;若為K3或者K4,則顯示“0”。最后判斷溫濕度有沒有超限,若超限,則進入聲光報警,LED 閃爍和蜂鳴器響起;若正常,則繼續測量溫濕度。
本系統的溫濕度測量模塊中,SHT11芯片的I2C 口與MSP430單片機通用I/O 口連接進行數據命令的傳輸。溫濕度測量程序放在定時器的中斷服務程序里,系統自動判斷事件后調用“寫”命令子程序、“讀”命令子程序、數值計算子程序和顯示子程序,最后將實際溫濕度值存儲于2個固定存儲單元中,溫、濕度各占一個單元。
為了檢驗SHT11顯示溫濕度的正確性,利用可以顯示溫濕度的鬧鐘與本系統放在離加熱到一定溫度的熱水旁,觀察其讀數變化并記錄。表1為鬧鐘與本系統監測的溫濕度記錄結果對比。
溫濕度鬧鐘的參數:
溫度測量范圍:-20℃~+60℃
溫濕度測量精度:±1.0℃(15℃~30℃)±5%RH(40%RH~80%RH)
溫度分辨率:0.1℃
濕度測量范圍:10%RH~99%RH
濕度分辨率:1%RH
從得到的實驗結果可以看出,系統測量出來的溫度值與鬧鐘顯示的數值很接近,而相對溫度與鬧鐘的顯示數值有大概1%到2%的誤差,但在溫濕度鬧鐘的測量精度的誤差范圍內。在用兩種不同的儀器測量溫濕度的時候,本系統實時顯示當前溫濕度,可以較快的得到實時數值,而溫濕度鬧鐘需要5s時間的取樣刷新,所以相對于系統來說要得到當前溫濕度時間較長,且測量數據也不如本系統精準。
本設計在傳統的溫濕度監測和報警系統的基礎上加以改進,設計出低功耗的溫濕度監測系統。通過軟硬件測試證明該系統能夠安全可靠的運行測量誤差小,具有良好的應用效果。

圖5 系統流程圖
[1]張艷麗,張勇.基于SHT11的溫濕度控制器[J].自動測量與控制.2007,26(5):83-84
[2]張艷麗,楊仁弟.數字溫濕度傳感器SHT11及應用[J].工礦自動化.2007,3:113-114
[3]樊建明,陳淵睿.基于SHT11的溫室多點測量系統設計[J].國外電子測量技術.2006,25(11):4-8
[4]謝楷,趙建.MSP430系列單片機系統工程設計與實踐[M].北京:機械工業出版社,2009