(湖南鐵道職業(yè)技術(shù)學(xué)院,湖南 株洲 412001)
溫度和濕度是對種植土壤要求的兩個重要參數(shù),在不同的地方和不同的季節(jié),不同的植物生長對土壤的溫度和濕度又有著不同的具體要求。中國由于地勢地形的多樣化,農(nóng)作物的種植非常普及廣泛,有著“農(nóng)業(yè)大國”的稱號,作為農(nóng)業(yè)大國是離不開植物與植物成長的土壤,在農(nóng)作物與植物成長的過程中,土壤的溫濕度有著較為大的影響作用,不同的植物而且對土壤溫濕度的適應(yīng)不同。土壤的溫濕度不僅影響營養(yǎng)物質(zhì)的吸收程度和植物的生長發(fā)育,還影響土壤中各種養(yǎng)分對植物的有效性。比如石蒜又有對水分的要求,但根部以上的蒜頭部分既要部分保持在土壤中又不能長期處于濕氣過重的環(huán)境,否則,極易使其根部腐爛致死。因此一種能夠精確有效的檢測土壤水分,溫度的檢測器,對降低植物死亡起著重要作用[1-4]。
在大棚農(nóng)業(yè)、植被種植、特別是育種等方面對土壤溫濕度環(huán)境的要求特別高,土壤溫濕度環(huán)境的合理控制,將影響著植物的正常生長,家居種植的盆栽可能損失不大,然而像那種大棚農(nóng)業(yè)種植的花果蔬菜大面積的死亡,將對農(nóng)戶造成巨大的經(jīng)濟(jì)損失?;诖嗽O(shè)計(jì)了一種造價便宜、體積較小、檢測精準(zhǔn)的基于STC89C52單片機(jī)土壤溫濕度檢測儀器,以期更好地檢測和控制土壤溫濕度,減小農(nóng)業(yè)損失,提高經(jīng)濟(jì)效益[1-4]。
使用STC89C52單片機(jī)設(shè)計(jì)的溫濕度檢測器,可以使其精確地反應(yīng)土壤中的溫濕度值信息,同時可以制定相應(yīng)的人工干預(yù)實(shí)現(xiàn)調(diào)節(jié)功能,實(shí)現(xiàn)諸如調(diào)節(jié)溫度至植物適宜生長的溫度、也可以降低溫度至適宜的溫度。而在超過溫度上下限范圍的時候,能夠時進(jìn)行自動報警,同時在濕度檢測方面的功能也是如此。因此,將此設(shè)備運(yùn)用于農(nóng)業(yè)無疑將為植被生長提供更合適的環(huán)境。對于大棚農(nóng)業(yè)、植被種植、育種,合理的使用溫濕度設(shè)備進(jìn)行管理。該系統(tǒng)能有效、實(shí)時、準(zhǔn)確地監(jiān)測土壤溫濕度變化,滿足溫濕度控制的要求[1-4]。
SHT11溫濕度傳感器使用的是工業(yè)級的CMOSens TM集成技術(shù)制作而成,該溫濕度傳感器將溫濕度傳感器(信號采集單元)、信號的放大處理、模/數(shù)轉(zhuǎn)換模塊、數(shù)據(jù)總線接口集成于一體,具有體積小、功能強(qiáng)、使用方面的特點(diǎn)。SHT11溫濕度傳感器的輸出信號通過自帶的模/數(shù)轉(zhuǎn)換模塊轉(zhuǎn)換成數(shù)字信號輸出,輸出的溫度信息的分辨率是12位、濕度信息的分辨率是14位,并且具有可靠的CRC數(shù)據(jù)傳輸校驗(yàn)功能[1]。
SHT11溫濕度傳感器的工程經(jīng)典應(yīng)用電路如圖1所示,輸出接口(DATA等)采用具備工業(yè)標(biāo)準(zhǔn)的總線結(jié)構(gòu),借助時鐘信號引腳SCK與數(shù)據(jù)信息引腳DATA完成溫濕度信息的數(shù)據(jù)傳輸功能。時鐘引腳SCK實(shí)現(xiàn)傳感器SHT與微處理器之間的同步通信,引腳DATA為數(shù)據(jù)引腳,作用是往器件里輸入與輸出信息數(shù)據(jù)。當(dāng)數(shù)據(jù)信息引腳DATA在時鐘引腳SCK的下降沿之后改變,則在上升沿時候有效。在信息傳輸?shù)倪^程中,當(dāng)時鐘引腳SCK為高電平時,數(shù)據(jù)信息引腳DATA需要保持穩(wěn)定。為了避免信號的沖突,微處理器只可以驅(qū)動數(shù)據(jù)信息引腳DATA為低電平。所以,需要外加一個上拉電阻拉高信號,一般情況下,上拉電阻一般包含于微處理器的電路當(dāng)中[1]。
圖1 SHT11溫濕度傳感器典型應(yīng)用電路
SHT11溫濕度傳感器具有如下特點(diǎn):SHT11溫濕度傳感器是集成多個功能的小型集成元器件;總共有VDD、DATA、SCK和GND四個引腳,實(shí)現(xiàn)溫度和濕度信息和數(shù)據(jù)傳遞;SHT11溫濕度傳感器可通過編程實(shí)現(xiàn)測量精度的調(diào)節(jié),內(nèi)置了模/數(shù)轉(zhuǎn)換器,實(shí)現(xiàn)模擬信號轉(zhuǎn)換成數(shù)字信號,數(shù)字信號可以直接傳遞給微處理器進(jìn)行信號的處理;SHT11溫濕度傳感器形狀尺寸超小,便于集成應(yīng)用,測量與通信工作結(jié)束后,SHT11溫濕度傳感器自動進(jìn)入低功耗模式,減小功率損耗,提高電源效率[1]。
基于STC89C52單片機(jī)土壤溫濕度檢測器總體上分為溫濕度信息采集部分、控制模塊、顯示數(shù)字模塊以及報警提示模塊部分。以STC89C52單片機(jī)最小系統(tǒng)為核心控制電路,對SHT11傳感器采集的溫濕度轉(zhuǎn)換、LCD1602液晶顯示屏的顯示和蜂鳴器的報警進(jìn)行控制。通過軟件編程來完成內(nèi)容顯示及功能實(shí)現(xiàn)?;赟TC89C52單片機(jī)土壤溫濕度檢測器的系統(tǒng)框圖如圖2所示。
SHT 11傳感器模塊與單片機(jī)的P2.1-P2.1口連接,將采集到溫濕度信息通過自身的模數(shù)轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換后,輸入給STC89C52單片機(jī),STC89C52單片機(jī)將接受到的信號進(jìn)行處理,處理后通過連接P0.0~P0.7口的顯示模塊顯示土壤溫濕度數(shù)據(jù)。同時,與通過P3.5~P3.7口連接的按鍵模塊設(shè)定的溫濕度設(shè)定的門限值進(jìn)行比較,如果采集到的土壤溫濕度超過設(shè)定值,則STC89C52單片機(jī)通過P1.4輸出信號控制報警模塊報警。報警模塊由聲音報警模塊和光信號報警模塊組成。
圖2 基于STC89C52單片機(jī)土壤溫濕度檢測器的系統(tǒng)框圖
圖3 STC89C52單片機(jī)主控模塊原理圖
AT89S52單片機(jī)是ATMEL公司生產(chǎn)的低功耗、高性能的 CMOS8位微處理器,單片機(jī)內(nèi)包含有8 KB的EPROM存儲器與256B 的RAM存儲器,總共32個可編程的I/O口, 3個16位的定時/計(jì)數(shù)器,8個中斷源, 1個雙工串行通信口及時鐘電路,片內(nèi)置通用 8位中央處理和FLASH存儲單元,與MCS?51系列指令和引腳完全兼容。該芯片功能強(qiáng)大,適用于復(fù)雜控制應(yīng)用場合[4]。
AT89S52單片機(jī)小系統(tǒng)電路由時鐘電路和復(fù)位電路共同組成(如圖3所示)。時鐘電路是在STC89C52單片機(jī)的18腳XTAL1和19腳XTAL2之間跨接12M的晶體振蕩器和微調(diào)電容C2、C3組成,產(chǎn)生穩(wěn)定的時鐘信號。復(fù)位電路連接STC89C52單片機(jī)的RST腳,由按鈕開關(guān)S1和電容C1組成,通過按鍵和復(fù)位方式STC89C52單片機(jī)的RST腳輸入一個低電平信號,給實(shí)現(xiàn)按鍵復(fù)位和斷電復(fù)位的功能。
顯示模塊選用LCD1602液晶顯示屏,LCD1602液晶顯示屏是目前工控系統(tǒng)中應(yīng)用最為廣泛的液晶屏之一,顯示質(zhì)量高。LCD1602液晶顯示屏的字符型液晶模塊屬于點(diǎn)陣型液晶,驅(qū)動比較方便,可通過單片機(jī)小系統(tǒng)的輸出信號直接驅(qū)動,經(jīng)過編程后顯示的內(nèi)容比較[4]。
顯示模塊選用LCD1602液晶顯示器,實(shí)現(xiàn)對土壤溫度和濕度的顯示(電路原理圖如圖4所示)。其中1腳VSS表示為電源地、2腳VDD為正電源正極、3腳VL為液晶顯示偏壓信號、4腳RS為數(shù)據(jù)/命令選擇端、5腳R/W為讀寫信號端、6腳E端為使能端、7~14腳D0~D7端為8位雙向數(shù)據(jù)傳遞端。
圖4 顯示模塊電路原理圖
LCD1602液晶顯示器的引腳分別與STC89C52單片機(jī)的P0.0-P0.7口連接。其主要功能是顯示土壤的溫度和濕度,以便實(shí)時觀察土壤的溫度和濕度信息。
通過SHT11溫濕度傳感器在接收到單片機(jī)信號之后,通過溫度傳感器、濕度傳感器采集實(shí)時場景的溫度與濕度信號轉(zhuǎn)換成電信號,再將信息處理放大,然后通過數(shù)字模擬轉(zhuǎn)化之后,再通過一些功能對信號進(jìn)行優(yōu)化處理,然后通過DATA串口將信號發(fā)送給單片機(jī),當(dāng)SHT11測量和信息傳遞完畢之后,傳感器將自動進(jìn)入低功耗模式,等待下一次命令。
SHT11溫濕度傳感器的SCL(時鐘信號端)1腳接STC89C52單片機(jī)P2.1口,2腳接電源,3腳接地,4腳(SDA)接STC89C52單片機(jī)P2.0口(如圖5所示)。SHT11溫濕度傳感器將采集到的土壤溫度和濕度信息通過處理、放大和轉(zhuǎn)換后通過P2.0口輸入單片機(jī),完成土壤溫度和濕度信號的實(shí)時采集與檢測工作。
圖5 傳感器模塊電路連線示意圖
溫濕度檢測器包含一個發(fā)聲裝置,用于在測量溫濕度的過程中,溫濕度超過或者低于一定值時將會發(fā)出報警提示,且對應(yīng)的指示燈也將通過亮滅來告訴我們是溫度超限或過低,還是濕度過高或太低,電路部分如圖6~8所示。
報警模塊由聲音報警電路和LED 顯示電路組成。報警電路(如圖6所示)通過STC89C52單片機(jī)P14口輸出信號控制,由有源蜂鳴器B1、三極管Q1、限流電阻R2和電源VCC組成。三極管Q1(8550PNP型三極管)作為開關(guān)管,起開關(guān)作用,當(dāng)土壤溫濕度超過或者低于設(shè)定的上限或者下限值時,STC89C52單片機(jī)P14口輸出低電平信號,三極管Q1的基極接收到低電平信號,三極管飽和導(dǎo)通,相當(dāng)于開關(guān)閉合,形成由電源VCC到三極管Q1到蜂鳴器B1到地的導(dǎo)通回路,蜂鳴器B1接收到電平信號發(fā)出聲音報警信號。溫度報警提示燈電路(如圖7所示)和濕度報警提示燈電路(如圖8所示)結(jié)構(gòu)一致、功能相同。溫度報警提示電路由電源VCC、限流電阻R1、R3、D1和D2組成,當(dāng)檢測到的溫度值超過或者低于設(shè)定值時,單片機(jī)P16和P17口輸出低電平信號,發(fā)光二極管D1和D2導(dǎo)通,實(shí)現(xiàn)雙色報警。
圖6 報警電路圖
圖7 溫度報警提示燈電路圖
圖8 濕度報警提示燈電路圖
根據(jù)整個功能,將整個模塊劃分為幾個不同的子程序模塊,分別進(jìn)行設(shè)計(jì)、編程和調(diào)試,各模塊實(shí)現(xiàn)各自的功能[2]。最后,將各子程序模塊合理地連接起來,形成整個程序。這有利于程序的修改和調(diào)試,增強(qiáng)程序的可變性[2]。后再系統(tǒng)通電,系統(tǒng)初始化。初始化程序主要完成單片機(jī)專用寄存器的設(shè)置、定時器的工作方式和各端口的工作狀態(tài)。主程序首先對整個系統(tǒng)進(jìn)行初始化,然后將采集到的溫濕度指令發(fā)送給系統(tǒng),顯示數(shù)據(jù),并執(zhí)行報警提示[3]。主程序流程圖如圖9所示。
圖9 主程序流程圖
首先編寫延時函數(shù)子程序模塊、1602命令/寫函數(shù)子程序模塊、定時器子程序模塊、溫度計(jì)算子程序模塊、濕度計(jì)算子程序模塊等子程序模塊,再編寫主程序模塊。然后進(jìn)行軟件調(diào)試,調(diào)試完成后結(jié)合硬件進(jìn)行軟硬件聯(lián)調(diào)。在調(diào)試過程中不斷完善程序,最終完成產(chǎn)品的軟硬件聯(lián)調(diào)。
基于STC89C52單片機(jī)土壤溫濕度檢測器在上電復(fù)位以后,首先初始化各個參數(shù)值,掃描的按鍵是否已經(jīng)按下,如果有按鍵按下的話,則開始執(zhí)行按鍵處理的程序;如果沒有按鍵按下的話,則開始讀取溫度和濕度信息。溫濕度顯示完成后,則開始將讀取的溫度和濕度與設(shè)置的上銜和下限溫度、濕度值進(jìn)行數(shù)值比較,如果超過設(shè)定的上限值或者低于設(shè)定的下限,則啟動相應(yīng)的聲光報警[4]。
編制的主程序如下:
void main()
{ P0 = P1 = P2 = P3 = 0xff;
time_init(); //定時器初始化
init_1602(); //lcd1602初始化
delay_1ms(150);
while(1)
{ if(flag_300ms == 1)
{ flag_300ms = 0;
if(menu_1 == 0)
{ text_jisuan_temp11();//測溫濕度
table_sht11[0] = xianzhi_h; //顯示濕度
table_sht11[2] = xianzhi_t; //顯示溫度
write_sfm2(2,3,table_sht11[0]); //顯示濕度
write_sfm2(1,3,table_sht11[2]); //顯示溫度
}
clock_h_l(); //報警函數(shù)
}
key();
if(key_can< 10)
{ key_with(); //設(shè)置報警溫度
if(menu_1 == 0)
{ if(k3 == 0)
{ flag_en = 0; //手動取消報警
beep = 1; //關(guān)閉蜂鳴器
}
}
beep = 0;
delay_1ms(50);
beep = 1;
}
delay_1ms(1);
}
}
產(chǎn)品設(shè)計(jì)制作完成后,用該土壤溫濕度檢測器對不同溫濕度條件下的土壤標(biāo)本進(jìn)行了測試,并將測試結(jié)果與土壤的溫濕度標(biāo)準(zhǔn)值進(jìn)行了比較,測試結(jié)果如表1所示。
表1 不同溫度條件下的土壤標(biāo)本測試結(jié)果
表2 不同濕度度條件下的土壤標(biāo)本測試結(jié)果
為保證土壤溫度和濕度的測量范圍,在進(jìn)行土壤溫濕度測量時分別選擇不同的土壤樣本進(jìn)行相應(yīng)溫度和濕度的測量,已達(dá)到測試基于STC89C52單片機(jī)土壤溫濕度檢測器功能實(shí)現(xiàn)的問題。從測試結(jié)果看:當(dāng)土壤溫度在-10 ℃,100 ℃范圍內(nèi)選擇8個不同的溫度值,測試結(jié)果的誤差范圍在-0.4~+0.4 ℃之間;當(dāng)土壤濕度在0~100%RH之間選擇7個不同的濕度值時,測試結(jié)果的誤差范圍在-3~+3%RH之間,達(dá)到了設(shè)計(jì)的目的,完成了土壤溫濕度檢測器的功能設(shè)計(jì)。
基于STC89C52單片機(jī)土壤溫濕度檢測器,以STC89C52單片機(jī)為核心芯片,并搭配SHT11溫濕度傳感器模塊、液晶顯示模塊、報警模塊等相關(guān)的外圍功能模塊。該土壤溫濕度檢測器利用溫度和濕度傳感器SHT11采集土壤的溫度和濕度信息,并將采集到的信息并傳送到STC89C52單片機(jī),單片機(jī)將接收到的信號進(jìn)行分析和處理,并將采集到的溫濕度信息發(fā)送到LCD1602進(jìn)行顯示。同時,通過將采集到的溫濕度信息與設(shè)置溫度和濕度的門限值進(jìn)行比較,進(jìn)而控制聲光報警模塊,實(shí)現(xiàn)超限報警功能。實(shí)驗(yàn)表明,該檢測器的溫度范圍為-40~+123.8 ℃、精度誤差為±0.4 ℃,濕度范圍為0~100%RH、誤差為±3.0%RH。實(shí)驗(yàn)結(jié)果表明土壤溫濕度檢測器的測量精度高、可靠性較高,而且具有價格便宜、操作方便、方便攜帶及體積小的優(yōu)點(diǎn)。