林永鋮 林超洋 梁志鋒 羅永生 張京玲
(五邑大學信息工程學院,廣東 江門 529020)
當遇到梅雨或惡劣天氣時,水中溶氧量會減少,pH值和水溫都會變化,這些水質參數都會直接影響到淡水魚的生存和生長。而傳統的養殖方法,對這些環境的把握,需要養殖戶多年的摸索而得出,并且還要親自到淡水養殖場觀察水質是否出現變化,所以普遍存在工作效率低下,水質參數把握不準確的問題。另外,淡水養殖場的水位如果超出水位警戒線,大量的養殖魚會逃逸或者當水位過低也不利于魚的生長,加上淡水養殖場被投毒的事件不斷出現,更加引起了人們對淡水養殖問題的關注。所以人們設想通過建立物聯網淡水養殖監控系統解決這一現實問題[1]。
本文提供了基于物聯網技術的的淡水養殖監控系統,其可以測量多種水質參數、報警自動處理、實現遠程控制,并且可以通過短信實時了解和控制魚塘設備和水質,充滿人性化的設計及考慮,可以更好的讓魚塘養殖戶實現智能管理。
基于物聯網技術的的淡水養殖監控系統將STC12C5A60S2單片機作為主控芯片。這個系統分為上位機和下位機模式,其中下位機部分使用了主從機模式,節點模塊是下位機的從機,主要負責收集各種傳感器的數據、控制各種設備、保障人體檢測報警和水質超標報警。主控模塊是下位機的主機,主要負責上下位機之間的數據傳輸和傳達上位機的命令。上位機是由通信模塊,電腦軟件平臺模塊和手機軟件模塊構成的,主要負責對檢測的魚塘進行綜合信息化管理與控制,可在手持的移動設備和筆記本上運行。
本控制系統總體框圖如圖1所示,下位機部分由 4個單片機通過 str30無線模塊組成的主從機系統,將一個單片機作為主機控制其他的三個單片機,主機還通過USB串口和上位機進行通信。3個從機主要負責控制喂食器和抽水泵和測量各種水質參數,如果超過設定水質參數或者檢測到人體接近,則反饋報警信息給主機。上位機通過串口通信和主機進行通信,同時也可以通過短信模塊和手機端進行信息交流。所以本系統利用str30無線模塊,wifi模塊,短信模塊和串口通信實現軟件平臺和下位機的通信。

圖1 系統模塊圖
在圖1所示中,PC上位機可以通過串口通信給主機發送控制和查詢命令,主機通過str30無線模塊向3個從機分別發送查詢和控制命令,從機接收到命令后進行相應的動作,反饋信息給上位機,并且可以通過上位機給手機端傳輸數據。同時上位機也可以通過wifi模塊對攝像頭和步進電機進行控制。
如圖2所示,我們利用濁度傳感器,通過液體溶液中的透光率和散射率來綜合判斷濁度情況,由于濁度值是漸變量,于是我們利用LM393,連接IN2-和OUTPUT引腳做出一個電壓跟隨器,并在輸出端加上10k的上拉電阻,此時我們可以得出0~5V的模擬電壓,對應透光度0~100%,最后通過AD轉換來得到相應的濁度系數。

圖2 從機傳感器模塊系統圖
我們利用電阻浸泡于水中時,電導率會提高的原理,在我們設定的水位警戒線放置一個電阻,當水位高于警戒線浸泡電阻,我們能通過電阻值的變化來得到電壓的變化,然后利用LM393的電壓比較得到電平輸出,借此判斷水位是否達到或超出警戒線。
可以檢測水位高度。該模塊的工作電壓為 DC 5V,最遠測距為5m,盲區為25cm,角度小于50°,抗干擾強,防水。
內帶溫度補償,工作電壓為5V,工作電流為5~10mA,可以檢測的范圍為 pH 0~14,輸出方式為模擬電壓信號輸出。此模塊靈敏度高,響應速度快,靜態功耗小,體積小巧,易于安裝。感應距離:0~5m,輸出高電平,H=3.3V,L=0V。供電直流:3.3~15V,靜態電流:20μA。
下位機和上位機的通信方式采用 str30無線通信模塊進行數據傳輸,在實現以單片機為主控的主從機之間實現數據的無線傳輸。這個無線通信部分的電路原理圖如圖3所示,圖中利用串口將主從機通過無線模塊連接起來。

圖3 str30無線通信模塊接線圖
探頭采用 DS18B20溫度傳感器芯片,芯片每個引腳均用熱縮管隔開從而防止短路,加上內部有封膠,防水防潮。外部使用了不銹鋼管進行封裝,同樣起到防水效果。供電在 3.0~5.5V間,可以測量在-55~125℃的溫度數據。
本設備的軟件系統主要包括以單片機為主控的下位機、手機終端機及上位機軟件三部分。
如圖5所示,利用QT軟件進行了人機監控界面的設計,選擇QT是因為QT支持Windows平臺,而我們平時所用的基本都是 Windows系統,而且QT有比較完善的串口通信的類,而我們的通信都是通過串口實現的[2]。

圖4 軟件系統框圖
使用上位機界面中主界面的采集數據和子界面各個魚塘的采集數據按鍵,可以向主機發送約定的一串十六進制的命令,同時,上位機還同步保存將數據轉換后的實際參數到一個TXT文件,且可以在查詢數據中隨時查看。在上位機的魚塘控制區,通過按下控制按鈕,上位機會向主機發送控制命令,實現對魚塘的氧氣泵、水泵等的開關或報警控制。在上位機的報警區,可以實時地接收主機返回的數據,實時顯示魚塘的安全情況,而在各個魚塘子界面中,還設有單獨魚塘布防按鍵,并可以記錄發生的各種報警的次數。上位機可通過串口與一個短信模塊進行通信,可接收外部用戶手機發送的短信,或者向用戶發送短信。
下位機主要通過單片機STC12C5A60S2為主控組成的主從機模式。整個從機程序分初始化程序,數據采集程序以及命令處理程序三大部分。初始化程序主要是進行 AD采集,串口和定時器初始化設置。數據采集程序是通過定時器來實現定時1s采集一次數據,采集pH和濁度的程序是在AD中斷中進行的,由于此單片機 AD中斷只有一個,所以設置標志位使得采集 pH后再進行濁度的采集,避免發送沖突。而采集水位是通過定時器中斷實現時間計時[3]。命令處理程序是接收到主機的命令之后,根據不同的命令采取不同動作,而且只有處理完一個命令之后才繼續處理下一個命令[4],否則不接受主機的命令。

圖5 淡水養殖監控系統
主機按順序循環查詢從機數據,從機不能主動發送數據給主機[5]。每查詢完一個從機后比較報警報警字節中的狀態位,如果有修改,則馬上反饋信息給上位機。然后保存當前的信道信息,檢測有沒有上位機的命令,處理完之后繼續查詢一下個從機。
主機發送查詢命令給從機,等待從機的應答,超時修改報警字節的最高位,發送給上位機。繼續查詢下一個從機。
如果接收到上位機的控制命令,主機修改報警字節中的狀態位,馬上回應,中斷查詢循環,給從機發送控制命令,等待從機反饋所有數據給主機,接收到從機返回的數據后主機保存數據,比較報警報警字節中的狀態位,如果有修改,則馬上反饋信息給上位機。
主機發送控制命令給從機,超時則重發兩次,若超過兩次,主機馬上改變報警這個字節的最高位,發送給上位機。
如圖5所示,此平臺是淡水養殖監控系統平臺,此軟件平臺分為主控界面和子界面。從主控平臺的全局操作區可以看到,短信模塊初始化按鍵用于開啟短信功能,自動對模塊進行初始化,還有系統的開關按鈕,此外,用戶還可以根據實際的需要設置定時采集魚塘數據的時間。而在魚塘控制區和報警區可以直觀的看出各個魚塘的報警信息和電氣設備的開關狀態,在開關區還能一鍵控制所有魚塘的電氣設備,一鍵控制是否開啟布防系統或者一鍵查詢所有魚塘的數據,起到總控制的作用。
本系統的子界面對應著不同的魚塘,進入不同的子界面能看到不同魚塘的詳細數據。實時參數顯示區可以看到魚塘的實時水質數據,在報警功能設置區能單獨的控制該魚塘是否開啟布防,下面顯示著超水位報警和人體檢測報警的次數。在短信功能設置區里,用戶可以先設定自己的手機號碼,設置完畢后,上位機會通過短信模塊向用戶發送一個操作指令表,用戶可以通過自己手機的短信發送對應的指令,上位機收到信息后可讀取到相應的內容,進行相應的操作,如發送查詢指令,上位機會查詢魚塘的實時數據后向用戶返回一條包含各種參數的短信,或者發送控制指令,上位機會對魚塘的電氣設備進行相應的控制。在魚塘設置區,只要用戶預先設定各種水質參數,系統就能根據用戶設定的水質參數,自動調整魚塘的水質直至達到用戶預先設定好的參數值。此外,該系統還可以隨時調取歷史數據,讓用戶可以研究以往水質參數,更加科學且方便的管理多個魚塘。
本系統在整體上的功能能夠比較好的實現,我們進行了軟件、硬件的設計和調試,保證能夠把從機所采集的數據通過無線通信的方式發送到主控平臺上,然后再PC上位機顯示出來,同時也能在PC上位機和手機終端上查詢控制魚塘數據和設備。通過現場試驗,本系統能長時間穩定運行。
[1] 楊定鵬, 張洋洋, 季春霖. 智能漁場系統設計[J]. 控制工程, 2003, 10(z1): 8-10.
[2] Blanchette J, Summerfield M. C++GUI Qt 4編程[M].2版. 北京: 電子工業出版社, 2008.
[3] 郭天祥. 51單片機C語言版教程[M]. 北京: 電子工業出版社, 2009.
[4] 沈其聰. 數字通信原理[M]. 北京: 機械工業出版社,2004.
[5] 樊昌信. 通信原理[M]. 北京: 國防工業出版社, 1988.