,
(溫州商學院 信息工程學院,溫州325035)
都說“養魚先養水”,從這句話中可見水產養殖對水質的要求極高,水質的質量也直接影響水產的生長和發育,從側面也反應出水產品的產量與質量的高低。[1]近年來,我國有五大方面阻礙水產養殖發展:養殖技術和方式落伍,水域資源不斷減少,水質污染迅速加重,水產品安全系數嚴重下降。然而,國內對水產養殖監控系統研發較少,而且以往的技術存在諸多問題:數據檢測準確性低、通信距離短、開發成本高、糾錯能力差、未接入物聯網。本文針對上述存在的問題,提出智能水產養殖監測系統對電熱棒、增氧機、投粉機等遠程設備進行控制并通過遠程監控系統顯示水質信息,用戶可以實時監控電機運行狀態和水質信息,還可以對水質進行實際情況調節,這樣智能養殖檢測系統具有方便、準確、實時的特點。
ZigBee是一種短距離、低功耗、可靠性高的全雙工無線通信技術,遵循了 IEEE 802.15.4 標準的規定[2]。可以適用于自動控制和遠程控制領域,鏈接嵌入各種設備,具有省電、節點安裝靈活方便、覆蓋范圍寬闊和傳輸準確性高等優點。GPRS網絡是一種高速分組數據交換無線業務,具有遠距離傳輸可靠度高、可以和物聯網物聯、實時性好等優點[3]。在遠程數據傳輸過程中,我們采用GPRS技術,通過客戶端和服務器進行點對點數據傳輸。
基于ZigBee和GPRS的特點,系統采用ZigBee和GPRS的技術組成無線網絡,設計互聯網水產養殖檢測系統,分別由采集控制層、網關監控層、監控中心構成。采集控制層由傳感器采集數據節點和繼電器控制器節點組成,傳感器節點編碼具有唯一性,經過ZigBee高可靠無線網絡技術傳輸到網關監控層。網關監控層具有接收傳感器檢測數據結果和顯示數據以及傳輸電機控制指令功能,經過串口總線與GPRS無線傳感網絡通信,并經過GPRS無線將水環境檢測結果傳輸到服務層。監控中心可分為服務層和應用層,服務層——利于保存、錄入、分析、發布檢測結果;服務層具有保密性、完整性、可控性;應用層——用戶可以通過電腦、手機、平板等電子設備瀏覽設備運行情況和水質數據信息。
采集控制層由中央主板模塊、傳感器模塊、電機控制模塊、電源模塊組成,如圖1所示。傳感器模塊由溶解氧傳感器(帶有溫度傳感器)、pH值傳感器和信號調理電路構成;電機控制模塊由繼電器控制電路和電機設備構成;中央處理模塊是由A/D轉換器、STM32以及ZigBee通信構成。[4]

圖1 采集控制層硬件設計方框圖

圖2 pH值調理電路
2.1.1 采集傳感器層硬件選用
考慮到水產養殖系統在室外,用電方面存在阻礙,則電源模塊采用太陽能發電,太陽能以鋰電池為儲能,晴天利用太陽能技術給鋰電池充電,就算夜晚或下雨的情況也能保證采集控制層弱電部分正常工作,另外也預留出干電池接口,以防不測。

傳感器模塊中的pH傳感器和溶解氧傳感器分別是由豪森傳感器公司和上海儀電科學儀器公司提供,pH傳感器測量范圍為0~14,溶解氧傳感器測量范圍為0~20 mg/L,其內置熱敏電阻,兩款傳感器具有安裝方便、穩定性好、價錢低廉的特點。[5]
2.1.2 pH值調理電路分析
pH值傳感器輸出電極信號以mA級為單位,并且內阻十分高。[6]在PH值調理電路設計中,采用集成運算放大電路構成3級放大電路:第一級將pH值傳感器輸出信號與電壓跟隨器相連,其作用是提高pH值調理電路輸入阻抗,并讓隔離前級與后級之間互不影響;第二級是將pH值傳感器輸出信號濾波放大;第三級是將pH值傳感器輸出信號放大,放大后正常的電壓在0~3.3 V之間,以滿足A/D轉換器正常轉換。pH值調理電路圖2所示。(注:1和2端分別是pH值輸出信號端)通過電路分析整理可得pH 值調整電路輸出電壓Vo1表達式為:
(1)
其中,Vin為 pH 值傳感器輸出信號;除RP1為可變電阻,其余電阻為固定電阻。
2.1.3 溶解氧調理電路分析
溶解氧電極輸出電流一般在10~100 μA之間。在調理電路的設計中,必須把電流信號轉換為電壓信號,因為A/D轉換器只對電壓進行轉換。另一方面,溶解氧電極需要施加0.7 V左右電壓才能正常工作。[7]第一級放大器為電壓跟隨器,調節RP2可以對溶解氧陰極電位調節;第二級放大器作用是把溶解氧輸出電流轉換為電壓。另一方面,調節RP2,使得溶解氧陰極和陽極電位差為0.7 V,保證溶解氧電極正常工作;第三級是將第二級的輸出電壓反相放大濾波,溶解氧調理電路圖3所示。(注:3和4端分別是溶解氧值輸出信號端)經過電路圖分析整理可得出溶解氧輸出電壓Vo2表達式為:
(2)
其中,R14、R18、R15為固定電阻;I為溶解氧輸出電流。

圖3 溶解氧調理電路
2.1.4 溫度調理電路分析
本文中溶解氧傳感器內置熱敏電阻,具有靈敏度好、精度高、測量范圍廣等特點,于是利用它作為溫度傳感器,在溫度調理電路設計中,采用電橋電路和運算放大電路組成溫度調理電路, R21、R22、R23、RP3、Rt組成電橋電路,電橋的平衡條件是:R21=R23,R22=(Rt||R23),(Rt||R23)=R23,R21=R22;如果電橋不平衡將調節RP3阻值,讓放大器輸出端為0,由于外部的溫度變化時電橋失去平衡狀態,從而放大器的輸出端將輸出電壓信號。溫度調理電路如圖4所示。(注:5和6端分別是熱敏電阻輸出信號端)。

圖4 溫度調理電路
經過電路圖分析整理可得出溫度調整電路輸出電壓Vot表達式為:

(3)
其中,RP3為可調電阻,Rt為溶解氧傳感器內嵌熱敏電阻,R21~R24、R26為固定電阻。
網關監控層分別由顯示器模塊、ZigBee通信模塊、電源模塊、GPRS通信模塊、單片機處理器組成。本系統的主控芯片是STM32F103單片機,具有高性能、低成本、低功耗,專門為嵌入式設計,擁有5個串口[8]。ZigBee通信電路采用CC2530完成無線接收、數據傳輸及智能控制,并通過標準的串口傳送給單片機,CC2530能夠以非常低的總材料成本建立強大的網絡節點。網關監控層硬件設計如圖5所示。

圖5 網關監控層硬件設計方框圖
觸摸顯示模塊和GPRS無線通信模塊經過RS485總線與單片機相連。RS485總線采用半雙工工作方式,具備抑制共模干擾能力、抗噪聲干擾性好、數據傳輸速率高、多點互聯方便以及高靈敏度等優點[9-10]。
顯示器采用7寸觸摸串口屏(USART HMI ),屏幕具備睡眠和觸碰喚醒特點,顯示器還可以通過圖表、文字來顯示水質信息和電機狀態,APM2483是一款隔離型的RS485收發器。其顯示器通信串口連接電路圖6所示。
GPRS采用MAX3082芯片,芯片接收速率可達85.60 kbps,發送速率達14.4 kbps,芯片具有永久在線連接、快速數據存儲和數據下載速度快的特點。其GPRS通信串口連接電路如圖7所示。
STM32單片機智能水產養殖檢測系統軟件設計基于μVision5軟件環境開發,Keil是由美國Keil Software公司出品,軟件可以運用匯編程序、C51程序混合式編寫。軟件生成目標代碼效率高、界面簡單方便、可讀性強、利于維護[11]。

圖6 顯示器通信串口連接電路圖

圖7 GPRS通信串口連接電路圖
本系統采用“主機+副機”模式,“副機”是由電機控制器擔任。主機在每30 s發送給電機控制器正確信息,說明系統運行良好,如果超過30 s時間未發送數據或錯發數據給電機控制器,則斷定主機出現問題,于是系統自動啟動“副機”進行控制整個系統運行,同時也對養殖戶發出相應的警報,即主機發生故障,系統依舊能夠正常運行。此外,如果溫度或溶解氧很低,而主機還是對電熱棒和增氧機發出關閉指令,則“副機”對主機進行監察,判斷主機是否不開啟,假如主機還是關閉,則“副機”自動對水質溫度、含氧量進行獲取,在進一步分析處理。“主機+副機”模式可提高整個系統的可靠性。
采集控制層軟件設計對各個電路進行分析計算,處理結果,軟件設計主要有采集層各個部分電路初始化、A/D轉換器進行數值轉換處理和RS485串口中斷服務。采集控制層軟件設計程序方框圖如圖8所示。

圖8 采集控制層軟件設計程序方框圖
首先程序對設備進行初始化設置,接著采集的數據經過A/D轉換器將模擬量轉換為數字量,A/D將轉換后的結果再發送給單片機,單片機設置數據采集延時為20 min,連續采集兩次數據,如果兩次采集的數據超出允許誤差,則再次采集數據,如果數據還是超出允許誤差,則報警設備立刻對用戶發出警報,否則計算兩次采集結果的平均值,使得數據更加可靠、準確。緊接著RS485串口進行點對點的通信,并將結果傳輸到ZigBee無線通信電路。最后ZigBee無線通信電路將信息傳輸到網關監控層。

圖9 網關控制層軟件設計程序方框圖
網關控制層軟件設計中的手動控制軟件和自動控制軟件的設計主要分為設備初始化化、接收采集控制層數據、檢測是否自動或者手動狀態、檢測數據參考范圍、發送繼電器閉合或是斷開指令等步驟。網關控制層軟件設計流程如圖9所示。
網關監控層首先接收采集控制層數據并進行數據顯示,然后收集數據進行分析、計算、處理、整合,在斷定手動或是自動狀態后,判定的結果通過GPRS電路將操作指令發送到服務層平臺,平臺可以根據數據的推算和人為發出的指令,通過GPRS網絡發送到服務器,接著通過ZigBee網絡傳輸到操作點,如果是自動狀態則將當前數據和設定的閉合繼電器數據進行對比,如果達標繼電器閉合,否則繼電器斷開,從而控制電機設備的開啟或斷開。
應用層軟件設計基于Visual Studio 軟件平臺進行開發,Visual Studio是目前最流行的Windows平臺應用程序,是一個超集成、全面、界面簡潔的開發工具,Visual Studio可以創建Windows應用程序,其必須運行在.NET 框架之上,.NET支持多種語言,如VB.NET、C #、C++等,服務器開發環境使用C#.NET語言編寫。
服務器根據魚塘唯一IP碼通過GPRS無線通信模塊與網關監控層通信,利用互聯網監控魚塘水質信息。該系統主要由用戶管理、參數配置和實時監控欄目組成。[12]用戶管理模塊主要是監控中心管理員對訪問用戶的身份授權與維護,用戶查閱或導出系統的水環境數據進行不同級別管理,所有用戶登陸后均可修改自己的登陸密碼;參數配置模塊可以查閱設備的型號以及設備參數,設置投餌機、增氧機以及加熱棒定時和運行時間;實時監控是指遠程監控中心通過互聯網來收集采集節點傳送的水質情況,對水質進行數據分析與顯示,當水質參數與設備工作狀態異常時則啟動報警裝置。其客戶端基本結構如圖10所示。

圖10 客戶端基本結構
2018年1月3日,我們將設計好的智能養殖器進行測試,測試項目主要包括網絡數據丟失率、水質數據采集以及設備運行情況,網絡數據丟失率用于驗證網絡傳輸的準確性,水質數據采集則考驗傳感器采集數據和傳輸數據的可靠性,設備運行情況用于檢驗設備運行的穩定性。
我們在水產養殖公司中把6個傳感器節點分別安放在6個魚塘里,安放6個路由器節點和1個匯聚節點,其中傳感器節點主要負責對水質環境進行采集,路由器節點負責轉發數據,匯聚節點作為監控中心。[13]傳感器節點每30 s采集一次數據,并采用ZigBee和GPRS的技術組成傳輸到網絡。測試結果如表1所列,通過表1分析整個系統數據包丟失率為0.62%,證明該網絡通信情況符合設計要求。

表1 網絡丟失包率數據統計
當檢測系統水質信息與電機狀態時,將水質進行部分干擾,讓水質數據在設備啟動和關閉之間。一般情況下,把魚塘的溫度、pH和溶解氧的值分別定在≥20 ℃、≤6.5和≥6 mg/L。[14]系統測量數據及誤差結果如表2所列。

表2 系統測量實驗數據及誤差結果
從表2中可以看出溫度、pH值和溶解氧分別從數據庫中抽取三次的數據結果,溫度的時間間隔是15 min、pH值是2 min、溶解氧是5 min,對上述三種控制參數進行實際相對誤差計算,從計算結果可看出水質測量相對誤差并不是很大。控制參數獲取三次臨界數據可以很清晰看出電熱棒、石灰粉投粉機、增氧機以及報警裝置運行正常。通過表可以看出檢測傳感器測量的準確性,無線傳輸的實時性以及設備控制的可靠性,基本符合設計要求。
本文設計的基于STM32單片機智能水產養殖檢測系統具有眾多優點。系統維護方便:智能監控中心可以設置在各個地方,在遠程控制端用戶可以通過電腦、手機、平板等電子設備瀏覽設備運行情況和水質數據信息;智能化集成高:通過STM32單片機對系統進行水質監測、短信報警、自動調節水質,使整個系統更加智能化、科技化;降低成本:整個系統基于自動化,自動啟動增氧機、熱電棒等設備,極大避免水質不合格造成經濟損失,提高水產養殖的產量和質量,減少對水產養殖過程中的人力和物力消耗,具有良好的經濟效益。