基于SHT11傳感器的溫濕度測量系統設計
摘要 研究了基于SHT11溫濕度傳感器和單片機技術的智能溫濕度測量系統。系統使用SHT11溫濕度傳感器實時采集溫濕度數據;同時采用AT 89s52單片機進行數據的存儲和計算等處理;并通過擴展外圍電路設計了一個集多種應用功能于一體的溫濕度值檢測系統。該系統具有測量精度高、可靠性強、體積小、成本低,且使用操作方便等優點。
本文引用地址:http://www.j9360.com/article/201610/309023.htm隨著新技術被應用到溫濕度測量領域中,高集成度、智能化、高精度、高可靠性的溫濕度一體化檢測傳感器開始得到應用。SHT11作為新一代的高性能智能傳感器,具有廣泛的應用前景。本設計介紹了SHT11溫濕度傳感器的工作原理,并論述了如何利用單片機進行溫濕度數據處理以及結合外圍電路完成溫濕度監視和控制功能。
1 傳感器工作原理
SHT11智能溫濕度傳感器的結構如圖1所示,該傳感器由一片檢測相對濕度和溫度的混合傳感器模塊及一個經校準的數字輸出組成,兩線串行接口和內部電壓自動調節,使其具有方便、快速的系統集成。

SHT11系列傳感器的優點為:無需外部模擬電子電路,可直接被微控制器訪問;溫度、供電、電容偏差及剩余電流等變化均不影響精度,即使被浸濕也不會失靈或出現誤差。同時具有長期穩定性,無需再校準,且反應速度快、能量消耗低,適用于電池供電。
2 硬件設計
設計系統框圖如圖2所示,采用SHT11傳感器采集溫濕度數據,利用非自鎖按鈕式開關組成的鍵盤向控制部分發出人為的控制信號,再使用DS1302時鐘芯片產生實時時間數據。而控制部分采用AT89s52單片機進行各類數據接收、處理和輸出。輸出部分則采用報警發生電路來報警,并通過液晶顯示模塊對溫濕度和時間等結果信息進行顯示。

2.1 傳感器硬件接口電路設計
SHT11通過兩線串行接口電路與單片機連接,具體電路如圖3所示。其中,串行時鐘輸入線SCK用于單片機控制器與SHT11之間的通信同步。串行數據線DATA用于內部數據的輸出與外部數據的輸入。DATA在SCK時鐘下降沿之后改變狀態,并僅在SCK時鐘上升沿后有效。因此,單片機可在SCK高電平時讀取數據,而當其向SHT11發送數據時,在SCK時鐘下降沿后改變狀態,同時保證DATA線上的電平狀態在SCK高電平段穩定。

設計中在數據線DATA上加入10 kΩ的上拉電阻。此外,在VDD和GND之間跨接一個100 nF的電容用于去耦濾波。
2.2 單片機系統外圍電路設計
系統采用的AT89s52是一個低功耗,高性能CMOS 8位單片機,片內含8kB的Flash程序存儲器,256 Byte的RAM,40個引腳,32個I/O口,3個16位可編程定時/計數器,5個中斷源,2個優先級,1個全雙工串行通信口,兼容標準MCS-51指令系統及80C51引腳結構。應用中單片機的最小系統通常包含電源開關、復位電路、晶振電路等相關外圍電路,設計中單片機系統部分電路如圖4所示。

2.3 顯示電路設計
系統采用帶ST7920漢字液晶控制驅動器的OCMJ4×8C液晶顯示模塊,該液晶提供8位微處理器接口,帶有顯示RAM及字型產生器,只需一個最小的微處理系統,便可方便地操作模塊。該顯示模塊內置2 MB中文字型ROM(CGROM)總共提供8 192個中文字型(16×16點陣),16 kB半寬字型ROM(HCGROM)總共提供128個符號字型(16×8點陣),并可與文字畫面混和顯示。
使用單片機的P0口作為并行數據傳輸接口,在P0口接入8個1 kΩ的電阻用于提高帶負載能力,使其可正常驅動單片機,電路如圖5所示。

2.4 其他功能電路設計
如圖6所示,系統采用非自鎖按鈕式開關組成的簡單鍵盤,向單片機發出人為的功能選擇和設定控制信號,利用帶3 V紐扣電池供電的DS1302時鐘芯片產生實時時間數據。同時采用三極管放大電路和蜂鳴器組成的簡單報警發生電路報警,而報警電路可通過拔出跨接器P_SP來進行隔離。整個系統采用5 V電源直接供電。

3 軟件設計
編程主要涉及SHT11傳感器的溫濕度數據測量和采集、時間數據采集、液晶顯示界面、鍵盤掃描設定及溫濕度限值數據比較等讀寫程序與算法程序的編寫。
3.1 溫濕度測量程序設計
SHT11傳感器的工作時序如圖7所示,傳感器工作時首先對數據傳輸進行初始化來啟動SHT11測量時序,即在第一個SCK時鐘高電平時,DA TA翻轉為低電平,并在第二個SCK時鐘高電平時,DATA翻轉為高電平。SHT11測量命令包含3個地址位和5個命令位。單片機發布一組8 bit測量命令后,DATA在第8個SCK時鐘的下降沿被置為低電平。再發送第9個SCK時鐘作為命令確認,DA2TA在其下降沿后,恢復為高電平。同時,單片機可暫時停止發送時鐘序列以進入空閑模式,準備讀取測量數據。SHT11在轉換結束后,將DATA置為低電平,單片機繼續發出時鐘序列,來讀取2個8 bit的測量數據和1個8 bit的CRC奇偶校驗。所有數據從MSB開始,右值有效。其中,在每個字節傳輸結束后,均需要發出一個時鐘高電子ACK,并將DATA置為低電平,以確認讀取成功。在測量和傳輸結束后,SHT11自動轉入休眠模式。

3.2 鍵盤設定算法程序設計
鍵盤采用K1、K2、K3、K4,4個非自鎖開關設計,當開關按下后會給單片機相應I/O口一個高電平。鍵盤主要實現對顯示界面的切換、溫濕度報警上下限設定及時間設定3大功能。這4個開關的功能為:K1為界面切換鍵;K2為邏輯“+”,上翻頁,光標上移;K3為邏輯“-”,下翻頁,光標下移;K4選擇鍵。

3.3 液晶顯示程序設計
液晶顯示模塊的編程方式主要由該模塊使用的控制/驅動器所決定。設計采用ST7920漢字液晶控制/驅動器,其擁有8位并行微控制器接口,通過單片機編程,并使用了顯示字母、數字符號和中文字型的功能。另外,對于液晶屏的編程,一般只需向其中寫數據即可。顯示程序設計流程如圖9所示。

3.4 報警程序設計
溫濕度越限報警功能通過報警函數實現,當溫濕度高于設定的報警上限或低于設定的報警下限時,便會在單片機的P2.1管腳輸出高電平,并通過三極管放大電路驅動蜂鳴器報警。
在報警函數中,通過算法比較溫濕度顯示的限值和濕度設定限值的大小來判斷當前濕度是否越限。而溫度與濕度的比較類似,僅是算法上仍需對綜合溫度的正負值進行考慮。
3.5 DS1302時鐘程序設計
DS1302時鐘芯片在系統中起計時及時間顯示、設定的功能。DS1302的讀寫操作時序如圖10所示,在控制指令字輸入后的下一個SCLK時鐘上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據。

3.6 主函數程序設計
主函數程序將上述各功能單元子函數程序綜合到一個函數中循環運行,其流程如圖11所示。

4 結束語
SHT11作為新一代高性能智能傳感器,具有較高的應用前景。本文所設計的智能電子溫濕度測量系統,經實驗驗證可對溫度和相對濕度進行精確測量,并實時顯示測量結果,此外,該裝置還具有時間顯示、歷史溫濕度數據查詢、溫濕度上下限越限報警和相關顯示切換及設定等功能。該裝置成果具有體積小、測量精度高、測量速度快、范圍廣、使用操作方便、成本低以及功能強等優點,適用于家居、旅行、溫室農業、食物儲存、檔案保管等多種應用場合,并具有較大的實際應用與經濟利用價值。
評論