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