郭榮艷,胡 翔
(周口師范學院 物理與電子工程系,河南 周口 466001)
溫濕度是和人們生活環(huán)境有著密切關(guān)系的物理量,也是生產(chǎn)、生活、科研中需要測量和控制的重要物理量.溫濕度的變化會給人們的生活、工作、生產(chǎn)等帶來重大影響,因此對溫濕度的測量和控制至關(guān)重要.在現(xiàn)代化的蔬菜大棚管理中通常需要溫濕度自動控制系統(tǒng),以控制蔬菜大棚的溫度及濕度,來滿足生產(chǎn)需要.溫濕度控制系統(tǒng)以先進的技術(shù)和設施,人為地控制作物生長的環(huán)境條件,使作物的生長不受自然氣候的影響.
溫濕度控制系統(tǒng)由單片機處理模塊、溫濕度采集模塊、鍵盤設置模塊、顯示模塊、及控制執(zhí)行模塊等組成.
方案一:由于涉及溫濕度兩個物理量的測控,可采用一個溫度傳感器和一個濕度傳感器分別對溫濕度進行測量.在元器件的選擇上,可選取DS18B20數(shù)字式溫度傳感器和HS1101濕敏電容作為信號的采集傳感器.由濕度傳感器HS1101采集濕度數(shù)據(jù),然后經(jīng)ADC0809對所采集的濕度進行模數(shù)轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)和DS18B20所采集的溫度數(shù)據(jù)在單片機里進行存儲和處理,然后送顯示模塊進行顯示[1].
方案二:采用瑞士Sensirion公司推出的新型數(shù)字式溫濕度傳感器SHT71作為溫濕度檢測元件.數(shù)字式溫濕度傳感器SHT71除了集成溫度、濕度敏感元件,還包括一個放大器、A/D轉(zhuǎn)換器和數(shù)字接口,可以同時采集溫度、濕度數(shù)據(jù).單片機對SHT71檢測數(shù)據(jù)進行存儲和處理,然后送液晶顯示模塊進行顯示,并發(fā)出信號對溫度控制電路進行控制.
綜上分析,由于方案一使用的是模擬式濕度傳感器,在和單片機進行連接時需要經(jīng)過A/D轉(zhuǎn)換,這就造成硬件電路設計和軟件電路設計都較方案二繁瑣,而且方案一測量的精度不能完全達到溫濕度控制系統(tǒng)的要求.因此采用方案二,整個系統(tǒng)由單片機、溫濕度傳感器SHT71、液晶顯示和溫度控制電路組成.
溫濕度控制系統(tǒng)工作原理如下:SHT71測量外界溫濕度,測量數(shù)據(jù)送入單片機,由單片機對數(shù)據(jù)進行處理,送LCD液晶屏顯示,并分析判斷是否超出設定界限.如果超出設定界限,由單片機輸出數(shù)字控制量控制電機的工作,從而實現(xiàn)了對溫濕度的控制.
系統(tǒng)的單片機采用美國ATMEL公司生產(chǎn)的高性能CMOS 8位單片機AT89C52.單片機內(nèi)含8KBytes只讀存儲器(ROM)和256Bytes的隨機存取數(shù)據(jù)存儲器(RAM).器件采用ATMEL公司的高密度兼容標準MCS-52指令系統(tǒng),內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,功能強大,性價比高,可靈活應用于各種控制領域[2].
溫濕度傳感器選用高度集成的溫濕度傳感器芯片SHT71,包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的溫度敏感元件.這兩個敏感元件與一個14位的A/D轉(zhuǎn)換器以及一個串行接口電路設計在同一個芯片上面.溫濕度傳感器SHT71品質(zhì)卓越、響應超快、抗干擾能力強.濕度敏感元件在極為精確的濕度腔室中進行標定,以鏡面冷凝式濕度計為參考.標準系數(shù)以程序形式儲存在OTP內(nèi)存中,在標定的過程中使用.兩線制的串行接口與內(nèi)部的電壓調(diào)整,使得外圍系統(tǒng)集成變得快速而簡單.
液晶顯示電路選用圖形液晶顯示器LCD12864,它主要有行驅(qū)動器、列驅(qū)動器及128×64全點陣液晶組成,可以完成圖形顯示,也可顯示8×4個(16×16點陣)漢字.利用該模塊靈活的接口方式和簡單、方便的操作指令,可以構(gòu)成全中文人機交互圖形界面.
時鐘振蕩電路及復位電路如圖1所示.
時鐘振蕩電路采用內(nèi)部時鐘電路,單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入和輸出端.單片機的這個放大器與作為反饋元件的片外晶振一起構(gòu)成穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部的時鐘電路.
復位電路采用上電復位.上電復位是利用電容充放電來實現(xiàn)的,只要VCC的上升時間不超過1 ms,振蕩器建立時間不超過10ms,這個時間常數(shù)足以保證完成復位操作.
SHT71通過二線數(shù)字串行接口來訪問,所以硬件接口非常簡單,但需要注意的是DATA數(shù)據(jù)線要外接上拉電阻.時鐘線SCK用于和微處理器之間的通訊,由于接口包含了完全靜態(tài)邏輯,所以對 SCK最低頻率沒有要求[3].SHT71 與AT89C52接口電路設計如圖2所示.
LCD12864的數(shù)據(jù)線DB0~DB7與單片機的P0口相連.由于P0口作為通用I/O口時,輸出級是開漏電路,當它驅(qū)動負載時,需要外接上拉電阻才有高電平輸出,所以在LCD12864數(shù)據(jù)線和P0口相連時要接一個排阻.LCD12864的CS1,CS2,RS,DI,E引腳可以和單片機其他的I/O口相連.LCD12864與AT89C52接口電路設計如圖3所示.
電機控制部分與單片機的一個I/O口相連,由PNP三極管實現(xiàn)電平轉(zhuǎn)換,繼電器實現(xiàn)弱電控制強電的功能.當這個I/O口是高電平時,由瞬間極性判別法可知PNP的集電極為低電平,所以此時繼電器的常開觸點不會閉合;反之,若這個I/O口變?yōu)榈碗娖綍r,繼電器常開觸點會閉合,電機電路導通,電機開始工作.電機與AT89C52接口電路如圖4所示.
溫度上下限設置電路由一個開關(guān)和一個按鍵組成,開關(guān)接AT89C52的外部中斷0,按鍵接AT89C52的一個I/O口,當開關(guān)閉合時,引起外部中斷0,執(zhí)行外部中斷0程序,通過按鍵來改變溫度設定值.按鍵與AT89C52接口電路如圖5所示.
本設計采用SHT71分辨率12位的相對濕度和12位的溫度測量,先發(fā)送溫度測量命令,再發(fā)送濕度測量命令,然后通過單片機對所測數(shù)據(jù)進行處理,再在LCD12864上實時顯示;用軟件查詢的方式比較所測溫度與設定的TH和TL的關(guān)系,從而判斷是否超限;如果所測溫度超出設定值時,開始啟動電機調(diào)節(jié)溫度,直到溫度變?yōu)樵O定區(qū)域內(nèi)[4].系統(tǒng)流程如圖6所示.
1)發(fā)送命令.在程序開始時,用一組“啟動傳輸”時序表示數(shù)據(jù)傳輸?shù)某跏蓟?它包括:當SCK時鐘高電平時,DATA翻轉(zhuǎn)為低電平,隨后是在SCK時鐘低電平時DATA翻轉(zhuǎn)為高電平.后續(xù)命令包含3個地址位和5個命令位.SHT71會以下述方式表示已正確地接收到指令:在第8個SCK時鐘的下降沿之后,將DATA數(shù)據(jù)總線下拉為低電平;在第9個SCK時鐘的下降沿之后,釋放DATA[5].
2)測量時序.發(fā)布一組測量命令(0x05表示相對濕度RH,0x03表示溫度T),緊接著控制器需要等待測量結(jié)束.這個過程大約210ms,分別對應14位測量.SHT71通過下拉DATA至低電平,表示測量結(jié)束.接著傳輸2個字節(jié)的測量數(shù)據(jù)和1個字節(jié)的CRC奇偶校驗.單片機需要通過下拉DATA為低電平,確認每個字節(jié),所有的數(shù)據(jù)從MSB開始.用CRC數(shù)據(jù)的確認位,表示通訊結(jié)束.如果不使用CRC校驗,控制器可以在測量LSB后,通過保持確認位ACK高電平,來中止通訊.在測量和通訊結(jié)束后,SHT71自動轉(zhuǎn)入休眠模式.
SHT71可以通過DATA數(shù)據(jù)總線直接輸出數(shù)字量濕度值.該濕度稱作相對濕度,需要進行線性補償和溫度補償后才能得到較為精準的濕度值.線性補償公式如公式(1)所示.
式中RH1為經(jīng)過線性補償后的濕度值,SO為相對濕度測量值,C1,C2,C3為線性補償系數(shù)(精度為12位時,C1=-4,C2=0.405,C3=-2.8×10-6).
由于溫度對濕度的影響十分明顯,而實際溫度和測試參考溫度25度有所不同,所以對線性補償后的濕度再進行溫度補償很有必要.溫度補償公式如公式(2)所示.
式中RH為經(jīng)過線性補償和溫度補償后的濕度值,T為測試溫度,t1和t2為溫度補償系數(shù)(t1=0.01,t2=0.000 08).
露點是一個特殊的溫度值,是空氣保持在某一定濕度必須達到的最低溫度.當空氣中的溫度低于露點時,空氣容納不了過多的水分,這些水分會變成霧、霜等.露點可根據(jù)當前相對濕度和溫度計算得出,具體計算公式如公式(3)和(4)所示[6].
式中T為當前溫度,SO為相對濕度測量值,D為露點.
本溫濕度控制系統(tǒng)的程序編寫使用的是C51語言,編程軟件是Keilu Vision 4,硬件仿真是在Protues 7.7軟件中進行.
溫濕度控制系統(tǒng)仿真圖如圖7和圖8所示.
本溫濕度控制系統(tǒng)采用SHT71數(shù)字式溫濕度傳感器對溫濕度進行實時監(jiān)測,在仿真中可通過更改SHT71上的加減按鈕來仿真外界的變化情況,還可變化溫度模式和濕度模式.用LCD12864液晶顯示屏顯示溫度、濕度數(shù)據(jù).液晶顯示屏的第一行顯示“周口師范學院”,第三行顯示濕度的數(shù)值,第四行顯示溫度的數(shù)值.因為對濕度進行了線性補償和溫度補償,所以濕度顯示數(shù)值和測量數(shù)值有些小的出入.在對溫度進行調(diào)節(jié)時,可以看到當溫度變化時,會引起濕度數(shù)值的變化.
圖7 溫濕度控制系統(tǒng)仿真1
本溫濕度控制系統(tǒng)中設置的溫度上下限分別為27℃,36℃.當溫度的值增加并大于36℃時,電機1開始啟動,來調(diào)節(jié)溫度;同理,當溫度小于27℃時,電機2開始工作.
圖8 溫濕度控制系統(tǒng)仿真2
在本溫濕度控制系統(tǒng)中,采用一個開關(guān)和一個按鍵來完成溫度上下限的設定.當開關(guān)閉合時,執(zhí)行中斷服務子程序,此時液晶屏上第一行顯示“周口師范學院”,第三行顯示高溫設置數(shù)值,第四行顯示低溫設置數(shù)值.設置完成后,斷開開關(guān).
調(diào)節(jié)溫度按鈕,此時測量值是和重新設定值相比較而不是原來的設定值.溫度上下限設置仿真如圖9所示.
圖9 溫度上下限設置仿真2
本設計對溫濕度傳感器SHT71的工作原理及其技術(shù)指標進行了深入分析,提出了一種基于單片機和SHT71的溫濕度控制系統(tǒng),克服了傳統(tǒng)濕度傳感器在技術(shù)方面、精度方面的局限性,避免了一些其他傳感器可能出現(xiàn)的誤差和失誤,同時大大簡化了軟硬件的設計,使系統(tǒng)結(jié)構(gòu)較為緊湊,實現(xiàn)了溫濕度同時測量的功能.
[1]張勃,屈保中.電容式濕度傳感器設計[J].傳感器技術(shù),2004(9):57-58.
[2]李剛民.單片機原理及實用技術(shù)[M].北京:高等教育出版社,2005:18-27.
[3]張敏.基于單片機的多通道溫濕度檢測[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2008(2):144-145.
[4]金偉正.溫濕度檢測控制系統(tǒng)的研制[J].電子與自動化,2000(2):25-27.
[5]李群林.基于多傳感器的溫濕度檢測系統(tǒng)[J].中國儀器儀表,2006(11):38-40.
[6]張馨,喬曉軍,劉恩,等.高精度便攜式溫濕度露點測量儀[J].儀表技術(shù)與傳感器,2006(3):9-11.