楊艷,謝燕群
(廣東石油化工學(xué)院 電子信息工程學(xué)院,廣東 茂名 525000)
水產(chǎn)品的品質(zhì)與養(yǎng)殖的水質(zhì)密切相關(guān),而對魚塘水質(zhì)影響較大的參數(shù)有水溫、水位以及水的渾濁度等。傳統(tǒng)養(yǎng)殖方式中養(yǎng)殖戶只能根據(jù)經(jīng)驗來對這些參數(shù)進(jìn)行分析和調(diào)整,不利于擴大養(yǎng)殖規(guī)模,也常常會因為養(yǎng)殖戶缺乏經(jīng)驗或無人看管沒有及時調(diào)節(jié)水質(zhì),出現(xiàn)水產(chǎn)品質(zhì)不佳甚至死亡的情況,造成經(jīng)濟損失。對魚塘水質(zhì)進(jìn)行檢測與自動調(diào)節(jié),有利于提高水產(chǎn)品的品質(zhì),增大水產(chǎn)養(yǎng)殖的產(chǎn)能,增加養(yǎng)殖戶的經(jīng)濟收入,逐漸成為未來水產(chǎn)養(yǎng)殖技術(shù)的發(fā)展方向[1]?;诖?,本文提出一種基于單片機STC89C52的水質(zhì)檢測系統(tǒng),模擬魚塘的水溫、水位及渾濁度,并進(jìn)行實時檢測和調(diào)節(jié)。
魚塘水質(zhì)檢測系統(tǒng)整體框架,如圖1所示。系統(tǒng)以單片機STC89C52為主控制器,主要由水溫模塊、水位模塊、渾濁度模塊、電源模塊、報警模塊及顯示模塊組成。實時檢測魚塘的水溫、水位和水的渾濁度,并在液晶屏LCD1602上實時顯示。且當(dāng)檢測數(shù)據(jù)超限時,發(fā)出報警信號,幫助水產(chǎn)養(yǎng)殖戶更加快速有效地對魚塘進(jìn)行監(jiān)控和管理,從而提高水產(chǎn)品質(zhì)量,降低養(yǎng)殖風(fēng)險,增加養(yǎng)殖效益。
圖1 系統(tǒng)整體框架
魚塘水質(zhì)檢測系統(tǒng)整體原理圖,如圖2所示。系統(tǒng)以單片機STC89C52為主控制器,DS18B20溫度傳感器檢測水溫,浮球開關(guān)檢測水位并控制繼電器調(diào)節(jié)水位,民用濁度傳感器進(jìn)行渾濁度檢測,LCD1602液晶顯示屏顯示檢測數(shù)據(jù)。系統(tǒng)的主要功能有:水溫、水位、渾濁度的檢測,以及超限報警與調(diào)節(jié)。
圖2 魚塘水質(zhì)檢測系統(tǒng)原理
使用溫度傳感器DS18B20來檢測水溫。DS18B20是數(shù)字溫度傳感器,其測溫范圍為-55~125 ℃,它與單片機接線簡單容易、體積小、測量精度高,可以對水溫進(jìn)行精準(zhǔn)測量[2]。DS18B20檢測到實時水溫后,與預(yù)設(shè)值進(jìn)行比較,如果實測水溫高于預(yù)設(shè)的最大值時,系統(tǒng)會通過繼電器啟動風(fēng)扇進(jìn)行降溫;如果實測水溫低于預(yù)設(shè)的最小值時,啟動加熱模塊使水溫逐漸升高。
水位檢測與調(diào)節(jié)模塊由水位檢測和水泵控制兩部分組成。水位檢測利用浮球開關(guān),在單片機端接入上拉電阻,通過檢測單片機引腳的電平來判斷浮球開關(guān)的狀態(tài),進(jìn)而判斷水位情況。水泵控制部分由驅(qū)動電路和繼電器組成,通過判斷單片機引腳的電平來控制繼電器,通過抽水和注水來調(diào)節(jié)水位[3]。
通過測量水中的懸浮固體總量(TSS)來檢測水的渾濁度,TSS值越大,渾濁度越高。使用民用濁度傳感器對水中的渾濁度數(shù)據(jù)進(jìn)行采集。該傳感器在精確度以及可靠性方面性能較好,維護(hù)簡單,抗污性能強。濁度傳感器將采集到的渾濁度信號發(fā)送到A/D轉(zhuǎn)換器[4],信號轉(zhuǎn)換后,再傳送到單片機,并在顯示器上顯示。如果渾濁度高于預(yù)設(shè)值,就會啟動水泵抽渾水、注清水,降低水的渾濁度,改善水質(zhì)。
本設(shè)計采用外部供電的方式,主要給單片機、水泵、風(fēng)扇、加熱模塊等供電。單片機供電可通過USB外接電源,水泵、風(fēng)扇等由4節(jié)1.5 V的電池組成外部電源進(jìn)行供電,加熱模塊由220 V的交流電源供電。
1)報警模塊。報警模塊的電路比較簡單,采用發(fā)光二極管(LED)來進(jìn)行報警。當(dāng)溫度值高于30 ℃或者低于27 ℃、水位超出所設(shè)定的正常范圍或者渾濁度高于1000 NTU時,報警模塊立即進(jìn)入工作狀態(tài),啟動報警功能,即發(fā)光二極管不停地閃爍。
2)顯示模塊。顯示模塊用于顯示水溫和渾濁度,本設(shè)計采用LCD1602液晶顯示屏來進(jìn)行顯示。
圖3為系統(tǒng)軟件設(shè)計流程圖。系統(tǒng)開始工作時,首先,對LCD顯示屏進(jìn)行清屏,并進(jìn)行初始化;其次,檢測溫度、水位、濁度等數(shù)據(jù)的情況,將溫度值和濁度值寫入到LCD中;最后,進(jìn)行溫度、水位、渾濁度判斷。在溫度判斷中,如果溫度高于預(yù)定值,那么系統(tǒng)則會驅(qū)動風(fēng)扇來進(jìn)行降溫;如果是溫度低于預(yù)定值,就會進(jìn)行加熱,使水溫升高。在水位判斷中,如果水位低于預(yù)定值,驅(qū)動水泵往魚塘里注水,使水位升高至正常范圍;如果水位高于預(yù)定值,那么驅(qū)動繼電器從魚塘向外抽水,降低水位。在渾濁度的判斷中,如果渾濁度超過預(yù)定值,就驅(qū)動水泵從魚塘里面抽出渾水、注入清水以降低渾濁度。
圖3 魚塘水質(zhì)檢測系統(tǒng)流程
用水桶模擬魚塘,進(jìn)行了系統(tǒng)各項功能的測試,測試環(huán)境見圖4。分別對水溫模塊、水位模塊、渾濁度模塊、顯示模塊、報警模塊進(jìn)行測試。測試結(jié)果表明,系統(tǒng)能自動檢測水溫、水位、渾濁度,并將水溫數(shù)據(jù)和渾濁度數(shù)據(jù)在LCD1602上實時顯示,這些數(shù)據(jù)變化時,顯示數(shù)據(jù)也隨之變化。當(dāng)加入熱水或冷水模擬水溫超過30 ℃或者低于27 ℃時,風(fēng)扇或加熱模塊進(jìn)行工作。水位超出了預(yù)定水位的上限值時,單片機就會控制繼電器,使水泵向外抽水;水位低于預(yù)定水位的下限值時,單片機控制繼電器,啟動水泵進(jìn)行注水。將一些渾濁的水放入模擬的魚塘中,濁度傳感器一旦顯示檢測到的水渾濁度超過預(yù)定值,就會利用水泵進(jìn)行抽渾水、注清水,降低渾濁度。且當(dāng)溫度、水位或者渾濁度超過預(yù)設(shè)值時,報警模塊均能正常工作。
圖4 魚塘水質(zhì)檢測系統(tǒng)測試環(huán)境
本文設(shè)計的魚塘水質(zhì)檢測系統(tǒng)可以檢測并顯示水溫、水位、渾濁度等參數(shù)。當(dāng)這些參數(shù)超出設(shè)定值時,發(fā)出報警信號并進(jìn)行自動調(diào)節(jié)。系統(tǒng)簡單可靠,在一定程度上為水產(chǎn)養(yǎng)殖戶提高養(yǎng)殖自動化程度提供了便利。