文中將介紹一種采用數字溫度濕度傳感器SHTll和超低功耗單片機MSP430F149實現的溫度濕度測量系統,該系統可方便的實現對溫度和濕度的實時監控。
1 芯片簡介
SHTll是Sensirion公司生產的一款數字溫度濕度傳感器。它是一款將溫度敏感元件、濕度敏感元件、信號放大調理器、14位的A/D轉換器和二線串行接口電路集于一體的全校準數字輸出傳感器。該芯片可以直接提供溫度在-40~120℃范圍內分辨率為14 bit的數字輸出和濕度在O~100%RH范圍內分辨率為12 bit的數字輸出。由于該芯片具有響應速度快、抗干擾能力強和性價比高等優點,因此采用SHTll芯片作為測量單元。
該SHTll芯片內部還有一個加熱器,利用加熱器可以實現以下功能。
(1)經過加熱前后測出的相對溫度值和濕度值的比較可以確定傳感器是否處于正常工作的狀態。
(2)在潮濕的環境下使用加熱器可以避免傳感器凝露,同時還可以縮短響應時間,提高測量精度。
(3)在實現高質量露點測量的時候也需要使用加熱器。
2 硬件設計
在硬件設計中,溫度和濕度信號經過SHTll內部的溫度敏感元件和濕度敏感元件轉化為模擬電壓信號,該模擬電壓信號經過SHTll內部的信號放大調理器放大、然后再經過A/D轉換器進行模/數轉換、校準和糾錯,最后才將相對溫度或濕度的數據通過二線串行接口的雙向數據口DATA端傳送至超低功耗微處理器MSP430F149。當MSP430F149微處理器接收到數據后,通過P4和P5口經由LED顯示溫度值和濕度值。由于P1口具有中斷功能,可以通過其設置矩陣鍵盤來輸入報警的具體參數,經過比較如果需要報警,則通過P3口經過相關外圍電路輸出溫度、濕度警報。具體的硬件連接如圖1所示。
因為SHTll是通過二線串行接口來訪問,所以硬件的接口電路非常簡單。其中需要注意的是:DATA數據線需要外接電阻。時鐘線SCLK用于超低功耗微處理器MSP430F149和SHTll之間的同步通信,由于接口包含完全靜態邏輯,所以對SCLK最低頻率沒有要求。
溫度和濕度數值可以通過LED顯示。如果需要節約管腳,可以采用移位寄存器來實現LED的靜態顯示。例如8位的移位寄存器SN74HC595D芯片。該芯片的工作電壓為2~6 V,可以和MSP430系列單片機直接連接。部分連接電路如圖2所示。
其中通過SN74HC595D的串行輸出管腳實現串行級聯,這樣可以控制兩個數碼段的顯示。微處理器的P4.1和P4.2分別與鎖存輸入信號端口RCLK 和移位時鐘信號端口SRCLK相連,分別產生鎖存信號和移位時鐘信號。OE接地,使輸出使能。基于以上電路,只要增加SN74HC595D的個數就可以增加顯示的位數。
矩陣鍵盤由行線和列線組成。主要通過掃描來實現捕獲鍵盤的輸入,掃描就是單片機不斷地對行線依次設置低電平,然后檢查列線的輸入狀態,圖3為鍵盤電路。
3 軟件設計
3.1 測量設計
在程序開始時,微處理器首先用一組“啟動傳輸”時序表示數據傳輸的初始化,然后發出一個8位的命令碼,這個命令碼包含3個地址位(必須設定為000)和5 個命令位。發送完該命令代碼(命令代碼含義如表l所示),將DATA數據線設為輸入狀態等待SHTll的響應。SHTll接收到上述地址和命令碼后,在第 8個時鐘下降沿將DATA數據線下拉為低電平作為響應信號。在第9個時鐘下降沿之后,SHTll將DATA數據線恢復為高電平,這表示已經正確地接收到測量指令。DATA數據線恢復后,SHTll開始測量當前溫度或濕度,測量結束后,再次將DATA數據線下拉為低電平,這表示測量已經結束。微處理器檢測到 DATA數據線被拉低后,給出時鐘信號。SHTll接著傳輸2 bit的測量數據和1 bit的校驗數據,微處
理器需要通過下拉DATA數據線以確認每個字節。首先在8個時鐘下降沿輸出高字節數據,在第9個時鐘下降沿,微處理器將DATA數據線拉低作為響應信號,然后釋放DATA數據線。在隨后8個時鐘下降沿SHTll發出低字節數據;接下來的時鐘下降沿微處理器再次將DATA數據線拉低作為接收數據的響應信號。最后8個時鐘下降沿SHTll發出校驗數據,微處理器不予應答則表示通訊結束。在測量和通訊結束后,SHTll自動進入休眠模式。經測試,該系統可以對溫度和濕度進行監控。
3.2 LED顯示設計
微處理器通過P4.0口串行輸出數據到SN74HC595D。輸出完成一個字節后,如果給一個鎖存信號,則SN74HC595D就并行輸出,在數碼管上顯示數據。如果沒有給鎖存信號,而是繼續輸出第二個字節,這時第一個SN74HC595D將前一個字節的數據通過串行輸出管腳輸出到第二個SN7 4HC595D的輸入管腳。當輸出結束時,兩個SN74HC595D分別存儲了兩個字節的數據。此時如果微處理器給出鎖存信號,則兩個SN74HC595D通過并行輸出將數據分別顯示在兩個數碼管上。
3.3 鍵盤輸入設計
由于所有的列線都被上拉到3.3 V,因此當任何鍵都沒有被按下的情況下,所有的列線上都是高電平。如果在P1.7管腳上輸出低電平,同時行線的其他管腳上輸出高電平時,當“S01”鍵被按下時,P1.0就為低電平;當“S02”鍵被按下時,P1.1就為低電平;當“S03”鍵被按下,則P1.2就為低電平;當“S04”鍵被按下,P1.3為就低電平。通過設置一條行線的輸出就可以獲取列線上的相應狀態,從而獲得鍵盤輸入值。同理,如果依次在其他列線上輸出低電平,就可以獲取到其他鍵的輸入值。通過這樣的掃描方式,就可以實現鍵盤的輸入。鍵盤掃描結果如圖4所示。
可以看出,當按鍵盤的4、0、5和6鍵時,單片機可以接收到準確的數據。當輸入參數后,微處理器每次測量數據后都會與存儲的參數進行比較,如果超出則發出警報。
4 結束語
文中介紹了數字溫度濕度監控系統的實現方案,硬件連接以及各個功能部分的設計。經測試,該系統可以實現對溫度和濕度進行實時測量和監控,達到了設計要求。