林永鋮 林超洋 梁志鋒 羅永生 張京玲
(五邑大學信息工程學院,廣東 江門 529020)
當遇到梅雨或惡劣天氣時,水中溶氧量會減少,pH值和水溫都會變化,這些水質(zhì)參數(shù)都會直接影響到淡水魚的生存和生長。而傳統(tǒng)的養(yǎng)殖方法,對這些環(huán)境的把握,需要養(yǎng)殖戶多年的摸索而得出,并且還要親自到淡水養(yǎng)殖場觀察水質(zhì)是否出現(xiàn)變化,所以普遍存在工作效率低下,水質(zhì)參數(shù)把握不準確的問題。另外,淡水養(yǎng)殖場的水位如果超出水位警戒線,大量的養(yǎng)殖魚會逃逸或者當水位過低也不利于魚的生長,加上淡水養(yǎng)殖場被投毒的事件不斷出現(xiàn),更加引起了人們對淡水養(yǎng)殖問題的關(guān)注。所以人們設(shè)想通過建立物聯(lián)網(wǎng)淡水養(yǎng)殖監(jiān)控系統(tǒng)解決這一現(xiàn)實問題[1]。
本文提供了基于物聯(lián)網(wǎng)技術(shù)的的淡水養(yǎng)殖監(jiān)控系統(tǒng),其可以測量多種水質(zhì)參數(shù)、報警自動處理、實現(xiàn)遠程控制,并且可以通過短信實時了解和控制魚塘設(shè)備和水質(zhì),充滿人性化的設(shè)計及考慮,可以更好的讓魚塘養(yǎng)殖戶實現(xiàn)智能管理。
基于物聯(lián)網(wǎng)技術(shù)的的淡水養(yǎng)殖監(jiān)控系統(tǒng)將STC12C5A60S2單片機作為主控芯片。這個系統(tǒng)分為上位機和下位機模式,其中下位機部分使用了主從機模式,節(jié)點模塊是下位機的從機,主要負責收集各種傳感器的數(shù)據(jù)、控制各種設(shè)備、保障人體檢測報警和水質(zhì)超標報警。主控模塊是下位機的主機,主要負責上下位機之間的數(shù)據(jù)傳輸和傳達上位機的命令。上位機是由通信模塊,電腦軟件平臺模塊和手機軟件模塊構(gòu)成的,主要負責對檢測的魚塘進行綜合信息化管理與控制,可在手持的移動設(shè)備和筆記本上運行。
本控制系統(tǒng)總體框圖如圖1所示,下位機部分由 4個單片機通過 str30無線模塊組成的主從機系統(tǒng),將一個單片機作為主機控制其他的三個單片機,主機還通過USB串口和上位機進行通信。3個從機主要負責控制喂食器和抽水泵和測量各種水質(zhì)參數(shù),如果超過設(shè)定水質(zhì)參數(shù)或者檢測到人體接近,則反饋報警信息給主機。上位機通過串口通信和主機進行通信,同時也可以通過短信模塊和手機端進行信息交流。所以本系統(tǒng)利用str30無線模塊,wifi模塊,短信模塊和串口通信實現(xiàn)軟件平臺和下位機的通信。
圖1 系統(tǒng)模塊圖
在圖1所示中,PC上位機可以通過串口通信給主機發(fā)送控制和查詢命令,主機通過str30無線模塊向3個從機分別發(fā)送查詢和控制命令,從機接收到命令后進行相應的動作,反饋信息給上位機,并且可以通過上位機給手機端傳輸數(shù)據(jù)。同時上位機也可以通過wifi模塊對攝像頭和步進電機進行控制。
如圖2所示,我們利用濁度傳感器,通過液體溶液中的透光率和散射率來綜合判斷濁度情況,由于濁度值是漸變量,于是我們利用LM393,連接IN2-和OUTPUT引腳做出一個電壓跟隨器,并在輸出端加上10k的上拉電阻,此時我們可以得出0~5V的模擬電壓,對應透光度0~100%,最后通過AD轉(zhuǎn)換來得到相應的濁度系數(shù)。
圖2 從機傳感器模塊系統(tǒng)圖
我們利用電阻浸泡于水中時,電導率會提高的原理,在我們設(shè)定的水位警戒線放置一個電阻,當水位高于警戒線浸泡電阻,我們能通過電阻值的變化來得到電壓的變化,然后利用LM393的電壓比較得到電平輸出,借此判斷水位是否達到或超出警戒線。
可以檢測水位高度。該模塊的工作電壓為 DC 5V,最遠測距為5m,盲區(qū)為25cm,角度小于50°,抗干擾強,防水。
內(nèi)帶溫度補償,工作電壓為5V,工作電流為5~10mA,可以檢測的范圍為 pH 0~14,輸出方式為模擬電壓信號輸出。此模塊靈敏度高,響應速度快,靜態(tài)功耗小,體積小巧,易于安裝。感應距離:0~5m,輸出高電平,H=3.3V,L=0V。供電直流:3.3~15V,靜態(tài)電流:20μA。
下位機和上位機的通信方式采用 str30無線通信模塊進行數(shù)據(jù)傳輸,在實現(xiàn)以單片機為主控的主從機之間實現(xiàn)數(shù)據(jù)的無線傳輸。這個無線通信部分的電路原理圖如圖3所示,圖中利用串口將主從機通過無線模塊連接起來。
圖3 str30無線通信模塊接線圖
探頭采用 DS18B20溫度傳感器芯片,芯片每個引腳均用熱縮管隔開從而防止短路,加上內(nèi)部有封膠,防水防潮。外部使用了不銹鋼管進行封裝,同樣起到防水效果。供電在 3.0~5.5V間,可以測量在-55~125℃的溫度數(shù)據(jù)。
本設(shè)備的軟件系統(tǒng)主要包括以單片機為主控的下位機、手機終端機及上位機軟件三部分。
如圖5所示,利用QT軟件進行了人機監(jiān)控界面的設(shè)計,選擇QT是因為QT支持Windows平臺,而我們平時所用的基本都是 Windows系統(tǒng),而且QT有比較完善的串口通信的類,而我們的通信都是通過串口實現(xiàn)的[2]。
圖4 軟件系統(tǒng)框圖
使用上位機界面中主界面的采集數(shù)據(jù)和子界面各個魚塘的采集數(shù)據(jù)按鍵,可以向主機發(fā)送約定的一串十六進制的命令,同時,上位機還同步保存將數(shù)據(jù)轉(zhuǎn)換后的實際參數(shù)到一個TXT文件,且可以在查詢數(shù)據(jù)中隨時查看。在上位機的魚塘控制區(qū),通過按下控制按鈕,上位機會向主機發(fā)送控制命令,實現(xiàn)對魚塘的氧氣泵、水泵等的開關(guān)或報警控制。在上位機的報警區(qū),可以實時地接收主機返回的數(shù)據(jù),實時顯示魚塘的安全情況,而在各個魚塘子界面中,還設(shè)有單獨魚塘布防按鍵,并可以記錄發(fā)生的各種報警的次數(shù)。上位機可通過串口與一個短信模塊進行通信,可接收外部用戶手機發(fā)送的短信,或者向用戶發(fā)送短信。
下位機主要通過單片機STC12C5A60S2為主控組成的主從機模式。整個從機程序分初始化程序,數(shù)據(jù)采集程序以及命令處理程序三大部分。初始化程序主要是進行 AD采集,串口和定時器初始化設(shè)置。數(shù)據(jù)采集程序是通過定時器來實現(xiàn)定時1s采集一次數(shù)據(jù),采集pH和濁度的程序是在AD中斷中進行的,由于此單片機 AD中斷只有一個,所以設(shè)置標志位使得采集 pH后再進行濁度的采集,避免發(fā)送沖突。而采集水位是通過定時器中斷實現(xiàn)時間計時[3]。命令處理程序是接收到主機的命令之后,根據(jù)不同的命令采取不同動作,而且只有處理完一個命令之后才繼續(xù)處理下一個命令[4],否則不接受主機的命令。
圖5 淡水養(yǎng)殖監(jiān)控系統(tǒng)
主機按順序循環(huán)查詢從機數(shù)據(jù),從機不能主動發(fā)送數(shù)據(jù)給主機[5]。每查詢完一個從機后比較報警報警字節(jié)中的狀態(tài)位,如果有修改,則馬上反饋信息給上位機。然后保存當前的信道信息,檢測有沒有上位機的命令,處理完之后繼續(xù)查詢一下個從機。
主機發(fā)送查詢命令給從機,等待從機的應答,超時修改報警字節(jié)的最高位,發(fā)送給上位機。繼續(xù)查詢下一個從機。
如果接收到上位機的控制命令,主機修改報警字節(jié)中的狀態(tài)位,馬上回應,中斷查詢循環(huán),給從機發(fā)送控制命令,等待從機反饋所有數(shù)據(jù)給主機,接收到從機返回的數(shù)據(jù)后主機保存數(shù)據(jù),比較報警報警字節(jié)中的狀態(tài)位,如果有修改,則馬上反饋信息給上位機。
主機發(fā)送控制命令給從機,超時則重發(fā)兩次,若超過兩次,主機馬上改變報警這個字節(jié)的最高位,發(fā)送給上位機。
如圖5所示,此平臺是淡水養(yǎng)殖監(jiān)控系統(tǒng)平臺,此軟件平臺分為主控界面和子界面。從主控平臺的全局操作區(qū)可以看到,短信模塊初始化按鍵用于開啟短信功能,自動對模塊進行初始化,還有系統(tǒng)的開關(guān)按鈕,此外,用戶還可以根據(jù)實際的需要設(shè)置定時采集魚塘數(shù)據(jù)的時間。而在魚塘控制區(qū)和報警區(qū)可以直觀的看出各個魚塘的報警信息和電氣設(shè)備的開關(guān)狀態(tài),在開關(guān)區(qū)還能一鍵控制所有魚塘的電氣設(shè)備,一鍵控制是否開啟布防系統(tǒng)或者一鍵查詢所有魚塘的數(shù)據(jù),起到總控制的作用。
本系統(tǒng)的子界面對應著不同的魚塘,進入不同的子界面能看到不同魚塘的詳細數(shù)據(jù)。實時參數(shù)顯示區(qū)可以看到魚塘的實時水質(zhì)數(shù)據(jù),在報警功能設(shè)置區(qū)能單獨的控制該魚塘是否開啟布防,下面顯示著超水位報警和人體檢測報警的次數(shù)。在短信功能設(shè)置區(qū)里,用戶可以先設(shè)定自己的手機號碼,設(shè)置完畢后,上位機會通過短信模塊向用戶發(fā)送一個操作指令表,用戶可以通過自己手機的短信發(fā)送對應的指令,上位機收到信息后可讀取到相應的內(nèi)容,進行相應的操作,如發(fā)送查詢指令,上位機會查詢魚塘的實時數(shù)據(jù)后向用戶返回一條包含各種參數(shù)的短信,或者發(fā)送控制指令,上位機會對魚塘的電氣設(shè)備進行相應的控制。在魚塘設(shè)置區(qū),只要用戶預先設(shè)定各種水質(zhì)參數(shù),系統(tǒng)就能根據(jù)用戶設(shè)定的水質(zhì)參數(shù),自動調(diào)整魚塘的水質(zhì)直至達到用戶預先設(shè)定好的參數(shù)值。此外,該系統(tǒng)還可以隨時調(diào)取歷史數(shù)據(jù),讓用戶可以研究以往水質(zhì)參數(shù),更加科學且方便的管理多個魚塘。
本系統(tǒng)在整體上的功能能夠比較好的實現(xiàn),我們進行了軟件、硬件的設(shè)計和調(diào)試,保證能夠把從機所采集的數(shù)據(jù)通過無線通信的方式發(fā)送到主控平臺上,然后再PC上位機顯示出來,同時也能在PC上位機和手機終端上查詢控制魚塘數(shù)據(jù)和設(shè)備。通過現(xiàn)場試驗,本系統(tǒng)能長時間穩(wěn)定運行。
[1] 楊定鵬, 張洋洋, 季春霖. 智能漁場系統(tǒng)設(shè)計[J]. 控制工程, 2003, 10(z1): 8-10.
[2] Blanchette J, Summerfield M. C++GUI Qt 4編程[M].2版. 北京: 電子工業(yè)出版社, 2008.
[3] 郭天祥. 51單片機C語言版教程[M]. 北京: 電子工業(yè)出版社, 2009.
[4] 沈其聰. 數(shù)字通信原理[M]. 北京: 機械工業(yè)出版社,2004.
[5] 樊昌信. 通信原理[M]. 北京: 國防工業(yè)出版社, 1988.