基于SHT11傳感器的溫濕度測量系統(tǒng)設(shè)計
摘要 研究了基于SHT11溫濕度傳感器和單片機技術(shù)的智能溫濕度測量系統(tǒng)。系統(tǒng)使用SHT11溫濕度傳感器實時采集溫濕度數(shù)據(jù);同時采用AT 89s52單片機進行數(shù)據(jù)的存儲和計算等處理;并通過擴展外圍電路設(shè)計了一個集多種應(yīng)用功能于一體的溫濕度值檢測系統(tǒng)。該系統(tǒng)具有測量精度高、可靠性強、體積小、成本低,且使用操作方便等優(yōu)點。
本文引用地址:http://www.ex-cimer.com/article/201610/309023.htm隨著新技術(shù)被應(yīng)用到溫濕度測量領(lǐng)域中,高集成度、智能化、高精度、高可靠性的溫濕度一體化檢測傳感器開始得到應(yīng)用。SHT11作為新一代的高性能智能傳感器,具有廣泛的應(yīng)用前景。本設(shè)計介紹了SHT11溫濕度傳感器的工作原理,并論述了如何利用單片機進行溫濕度數(shù)據(jù)處理以及結(jié)合外圍電路完成溫濕度監(jiān)視和控制功能。
1 傳感器工作原理
SHT11智能溫濕度傳感器的結(jié)構(gòu)如圖1所示,該傳感器由一片檢測相對濕度和溫度的混合傳感器模塊及一個經(jīng)校準的數(shù)字輸出組成,兩線串行接口和內(nèi)部電壓自動調(diào)節(jié),使其具有方便、快速的系統(tǒng)集成。
SHT11系列傳感器的優(yōu)點為:無需外部模擬電子電路,可直接被微控制器訪問;溫度、供電、電容偏差及剩余電流等變化均不影響精度,即使被浸濕也不會失靈或出現(xiàn)誤差。同時具有長期穩(wěn)定性,無需再校準,且反應(yīng)速度快、能量消耗低,適用于電池供電。
2 硬件設(shè)計
設(shè)計系統(tǒng)框圖如圖2所示,采用SHT11傳感器采集溫濕度數(shù)據(jù),利用非自鎖按鈕式開關(guān)組成的鍵盤向控制部分發(fā)出人為的控制信號,再使用DS1302時鐘芯片產(chǎn)生實時時間數(shù)據(jù)。而控制部分采用AT89s52單片機進行各類數(shù)據(jù)接收、處理和輸出。輸出部分則采用報警發(fā)生電路來報警,并通過液晶顯示模塊對溫濕度和時間等結(jié)果信息進行顯示。
2.1 傳感器硬件接口電路設(shè)計
SHT11通過兩線串行接口電路與單片機連接,具體電路如圖3所示。其中,串行時鐘輸入線SCK用于單片機控制器與SHT11之間的通信同步。串行數(shù)據(jù)線DATA用于內(nèi)部數(shù)據(jù)的輸出與外部數(shù)據(jù)的輸入。DATA在SCK時鐘下降沿之后改變狀態(tài),并僅在SCK時鐘上升沿后有效。因此,單片機可在SCK高電平時讀取數(shù)據(jù),而當其向SHT11發(fā)送數(shù)據(jù)時,在SCK時鐘下降沿后改變狀態(tài),同時保證DATA線上的電平狀態(tài)在SCK高電平段穩(wěn)定。
設(shè)計中在數(shù)據(jù)線DATA上加入10 kΩ的上拉電阻。此外,在VDD和GND之間跨接一個100 nF的電容用于去耦濾波。
2.2 單片機系統(tǒng)外圍電路設(shè)計
系統(tǒng)采用的AT89s52是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8kB的Flash程序存儲器,256 Byte的RAM,40個引腳,32個I/O口,3個16位可編程定時/計數(shù)器,5個中斷源,2個優(yōu)先級,1個全雙工串行通信口,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu)。應(yīng)用中單片機的最小系統(tǒng)通常包含電源開關(guān)、復位電路、晶振電路等相關(guān)外圍電路,設(shè)計中單片機系統(tǒng)部分電路如圖4所示。
2.3 顯示電路設(shè)計
系統(tǒng)采用帶ST7920漢字液晶控制驅(qū)動器的OCMJ4×8C液晶顯示模塊,該液晶提供8位微處理器接口,帶有顯示RAM及字型產(chǎn)生器,只需一個最小的微處理系統(tǒng),便可方便地操作模塊。該顯示模塊內(nèi)置2 MB中文字型ROM(CGROM)總共提供8 192個中文字型(16×16點陣),16 kB半寬字型ROM(HCGROM)總共提供128個符號字型(16×8點陣),并可與文字畫面混和顯示。
使用單片機的P0口作為并行數(shù)據(jù)傳輸接口,在P0口接入8個1 kΩ的電阻用于提高帶負載能力,使其可正常驅(qū)動單片機,電路如圖5所示。
2.4 其他功能電路設(shè)計
如圖6所示,系統(tǒng)采用非自鎖按鈕式開關(guān)組成的簡單鍵盤,向單片機發(fā)出人為的功能選擇和設(shè)定控制信號,利用帶3 V紐扣電池供電的DS1302時鐘芯片產(chǎn)生實時時間數(shù)據(jù)。同時采用三極管放大電路和蜂鳴器組成的簡單報警發(fā)生電路報警,而報警電路可通過拔出跨接器P_SP來進行隔離。整個系統(tǒng)采用5 V電源直接供電。
3 軟件設(shè)計
編程主要涉及SHT11傳感器的溫濕度數(shù)據(jù)測量和采集、時間數(shù)據(jù)采集、液晶顯示界面、鍵盤掃描設(shè)定及溫濕度限值數(shù)據(jù)比較等讀寫程序與算法程序的編寫。
3.1 溫濕度測量程序設(shè)計
SHT11傳感器的工作時序如圖7所示,傳感器工作時首先對數(shù)據(jù)傳輸進行初始化來啟動SHT11測量時序,即在第一個SCK時鐘高電平時,DA TA翻轉(zhuǎn)為低電平,并在第二個SCK時鐘高電平時,DATA翻轉(zhuǎn)為高電平。SHT11測量命令包含3個地址位和5個命令位。單片機發(fā)布一組8 bit測量命令后,DATA在第8個SCK時鐘的下降沿被置為低電平。再發(fā)送第9個SCK時鐘作為命令確認,DA2TA在其下降沿后,恢復為高電平。同時,單片機可暫時停止發(fā)送時鐘序列以進入空閑模式,準備讀取測量數(shù)據(jù)。SHT11在轉(zhuǎn)換結(jié)束后,將DATA置為低電平,單片機繼續(xù)發(fā)出時鐘序列,來讀取2個8 bit的測量數(shù)據(jù)和1個8 bit的CRC奇偶校驗。所有數(shù)據(jù)從MSB開始,右值有效。其中,在每個字節(jié)傳輸結(jié)束后,均需要發(fā)出一個時鐘高電子ACK,并將DATA置為低電平,以確認讀取成功。在測量和傳輸結(jié)束后,SHT11自動轉(zhuǎn)入休眠模式。
3.2 鍵盤設(shè)定算法程序設(shè)計
鍵盤采用K1、K2、K3、K4,4個非自鎖開關(guān)設(shè)計,當開關(guān)按下后會給單片機相應(yīng)I/O口一個高電平。鍵盤主要實現(xiàn)對顯示界面的切換、溫濕度報警上下限設(shè)定及時間設(shè)定3大功能。這4個開關(guān)的功能為:K1為界面切換鍵;K2為邏輯“+”,上翻頁,光標上移;K3為邏輯“-”,下翻頁,光標下移;K4選擇鍵。
3.3 液晶顯示程序設(shè)計
液晶顯示模塊的編程方式主要由該模塊使用的控制/驅(qū)動器所決定。設(shè)計采用ST7920漢字液晶控制/驅(qū)動器,其擁有8位并行微控制器接口,通過單片機編程,并使用了顯示字母、數(shù)字符號和中文字型的功能。另外,對于液晶屏的編程,一般只需向其中寫數(shù)據(jù)即可。顯示程序設(shè)計流程如圖9所示。
3.4 報警程序設(shè)計
溫濕度越限報警功能通過報警函數(shù)實現(xiàn),當溫濕度高于設(shè)定的報警上限或低于設(shè)定的報警下限時,便會在單片機的P2.1管腳輸出高電平,并通過三極管放大電路驅(qū)動蜂鳴器報警。
在報警函數(shù)中,通過算法比較溫濕度顯示的限值和濕度設(shè)定限值的大小來判斷當前濕度是否越限。而溫度與濕度的比較類似,僅是算法上仍需對綜合溫度的正負值進行考慮。
3.5 DS1302時鐘程序設(shè)計
DS1302時鐘芯片在系統(tǒng)中起計時及時間顯示、設(shè)定的功能。DS1302的讀寫操作時序如圖10所示,在控制指令字輸入后的下一個SCLK時鐘上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù)。
3.6 主函數(shù)程序設(shè)計
主函數(shù)程序?qū)⑸鲜龈鞴δ軉卧雍瘮?shù)程序綜合到一個函數(shù)中循環(huán)運行,其流程如圖11所示。
4 結(jié)束語
SHT11作為新一代高性能智能傳感器,具有較高的應(yīng)用前景。本文所設(shè)計的智能電子溫濕度測量系統(tǒng),經(jīng)實驗驗證可對溫度和相對濕度進行精確測量,并實時顯示測量結(jié)果,此外,該裝置還具有時間顯示、歷史溫濕度數(shù)據(jù)查詢、溫濕度上下限越限報警和相關(guān)顯示切換及設(shè)定等功能。該裝置成果具有體積小、測量精度高、測量速度快、范圍廣、使用操作方便、成本低以及功能強等優(yōu)點,適用于家居、旅行、溫室農(nóng)業(yè)、食物儲存、檔案保管等多種應(yīng)用場合,并具有較大的實際應(yīng)用與經(jīng)濟利用價值。
評論