蔡騫+紀(jì)然然+彭晶晶+呂進(jìn)龍
摘 要:設(shè)計一個基于物聯(lián)網(wǎng)技術(shù)的魚類養(yǎng)殖環(huán)境監(jiān)控系統(tǒng),該系統(tǒng)實(shí)現(xiàn)了對水溫、溶解氧、pH值等參數(shù)的采集、處理和預(yù)警,同時實(shí)現(xiàn)了視頻監(jiān)控、增氧機(jī)自動控制以及魚類的投食功能。該系統(tǒng)適用于目前大多數(shù)情況的水產(chǎn)養(yǎng)殖和水環(huán)境監(jiān)測,并增加了水環(huán)境中重金屬含量監(jiān)測的特色功能。
關(guān)鍵詞:監(jiān)控系統(tǒng);魚類養(yǎng)殖;物聯(lián)網(wǎng);ZigBee
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2015)03-00-04
0 引 言
長期以來,我國水產(chǎn)養(yǎng)殖環(huán)保意識淡薄、養(yǎng)殖密度過高等問題,導(dǎo)致養(yǎng)殖病害呈逐年加重之勢,以至于水域環(huán)境遭到不同程度的破壞,水產(chǎn)品質(zhì)量安全得不到有效保障,解決水產(chǎn)養(yǎng)殖環(huán)境狀況已經(jīng)成為水產(chǎn)養(yǎng)殖業(yè)持續(xù)健康發(fā)展的重要課題。
影響水產(chǎn)養(yǎng)殖環(huán)境的關(guān)鍵參數(shù)是水溫、溶氧、氨氮、重金屬、pH值等。目前國內(nèi)的水產(chǎn)養(yǎng)殖業(yè)其水質(zhì)監(jiān)測基本上仍處于人工取樣、化學(xué)分析的人工監(jiān)測階段,其耗時費(fèi)力、精確度不高,并且需要有專業(yè)人員進(jìn)行操作。該魚類養(yǎng)殖系統(tǒng)結(jié)構(gòu)清晰,配置簡單,功能易擴(kuò)展等,實(shí)現(xiàn)了對水溫、溶解氧、pH值以及重金屬含量等多參數(shù)的采集、處理和預(yù)警。同時,還可以自動控制增氧機(jī)、投食機(jī)等設(shè)備,實(shí)現(xiàn)自動喂食和增氧。
1 總體設(shè)計
本系統(tǒng)主要由感知系統(tǒng)、網(wǎng)絡(luò)層傳輸系統(tǒng)、應(yīng)用層系統(tǒng)(包括手動采集導(dǎo)入系統(tǒng)、數(shù)據(jù)處理展示系統(tǒng)和控制系統(tǒng)等)三大部分組成。感知層解決的是人類世界和物理世界的數(shù)據(jù)獲取問題。它首先通過傳感器、攝像機(jī)等設(shè)備,采集外部物理世界的數(shù)據(jù),然后通過RFID、條形碼、藍(lán)牙、紅外等短距離傳輸技術(shù)傳遞數(shù)據(jù)。感知層所需要的關(guān)鍵技術(shù)包括檢測技術(shù)、短距離無線通信技術(shù)等。本系統(tǒng)的感知系統(tǒng)主要是指感知層設(shè)備所組成的硬件系統(tǒng),包括了傳感器、攝像機(jī)、控制設(shè)備等,負(fù)責(zé)獲取各類數(shù)據(jù)、視頻,并傳輸給后臺處理;同時根據(jù)預(yù)警情況,對設(shè)備進(jìn)行控制。
網(wǎng)絡(luò)層傳輸系統(tǒng)主要包括ZigBee和無線通信、以太網(wǎng)兩大部分。ZigBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低速率、低成本的雙向無線通訊技術(shù),主要用于距離短、功耗低且傳輸速率不高的各種電子設(shè)備之間進(jìn)行數(shù)據(jù)傳輸以及典型的有周期性數(shù)據(jù)、間歇性數(shù)據(jù)和低反應(yīng)時間數(shù)據(jù)之間的傳輸應(yīng)用。本系統(tǒng)中ZigBee通信主要用于傳感器和采集模塊之間的數(shù)據(jù)通信,解決了傳統(tǒng)環(huán)境監(jiān)測方案中遇到的布線困難、成本高等問題。無線通信、以太網(wǎng)部分主要用于采集控制設(shè)備和后臺管理中心之間數(shù)據(jù)交互、視頻傳輸?shù)裙δ?。如果現(xiàn)場適合布線,可以采取以太網(wǎng)通信方式,但大多數(shù)都是采用無線通信的方式,使用3G或者4G的技術(shù),具有無需布線,方便快捷等優(yōu)點(diǎn)。
應(yīng)用層系統(tǒng)包括手動采集導(dǎo)入系統(tǒng)、數(shù)據(jù)處理展示系統(tǒng)和控制系統(tǒng)三部分。手動采集導(dǎo)入系統(tǒng)是用于手持設(shè)備對水樣進(jìn)行重金屬檢測后,把測試結(jié)果導(dǎo)入系統(tǒng),系統(tǒng)根據(jù)導(dǎo)入的數(shù)據(jù)進(jìn)行分析處理,然后進(jìn)行預(yù)警等;數(shù)據(jù)處理展示系統(tǒng)是對數(shù)據(jù)中心處理后的數(shù)據(jù)、視頻等進(jìn)行匯總,把相關(guān)的圖表、報表等展現(xiàn)給用戶;控制系統(tǒng)是根據(jù)預(yù)警信息或提示,可以自動或者人工對增氧機(jī)、投食機(jī)等設(shè)備進(jìn)行控制,實(shí)現(xiàn)自動喂食和增加氧氣。系統(tǒng)結(jié)構(gòu)圖如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)圖
1.1 硬件設(shè)計
本系統(tǒng)所用主要硬件設(shè)備包括水溫傳感器、pH傳感器、溶解氧傳感器、重金屬檢測設(shè)備、視頻采集設(shè)備、網(wǎng)關(guān)設(shè)備、控制設(shè)備、視頻服務(wù)器等。
水溫傳感器從結(jié)構(gòu)上講與傳統(tǒng)的傳感器沒有什么變化,但它的作用是向發(fā)動機(jī)控制單元提供一個溫度變化的模擬量信號。它的供電電壓是由控制單元提供的5 V電源,返回控制單元的信號為1.3~3.8 V的線性變化信號。
pH傳感器是用來檢測被測物中氫離子濃度并將其轉(zhuǎn)換成相應(yīng)的可用輸出信號的一種傳感設(shè)備,通常由化學(xué)部分和信號傳輸部分構(gòu)成。pH傳感器常用于進(jìn)行對溶液、水等物質(zhì)的工業(yè)測量。
溶解氧傳感器是一種用于測量氧氣在水中的溶解量的傳感設(shè)備,用于水中含氧量的測量,通過調(diào)節(jié),以便維持最佳的生態(tài)和生長環(huán)境。
重金屬,實(shí)際上主要是指汞、鎘、鉛、鉻、砷等金屬或類金屬,也指具有一定毒性的一般重金屬,如銅、鋅、鎳、鈷、錫等。在天然水體中一般重金屬產(chǎn)生毒性的范圍大約在1~10mg/L之間,而汞,鎘等產(chǎn)生毒性的范圍在0.01~0.001mg/L之間。重金屬檢測方面,日本和歐盟國家有的采用電感耦合等離子質(zhì)譜法(ICP-MS)分析,但儀器成本高。也有的采用X熒光光譜(XRF)分析,優(yōu)點(diǎn)是無損檢測,可直接分析成品,但檢測精度和重復(fù)性不如光譜法。目前最新流行的檢測方法是陽極溶出法,檢測速度快,數(shù)值準(zhǔn)確,可用于現(xiàn)場等環(huán)境應(yīng)急檢測。
而視頻方面,根據(jù)不同的監(jiān)視對象和要求,攝像機(jī)應(yīng)做不同的配置,對大范圍的室外空間監(jiān)視,并要求看清整體目標(biāo)的場景,配置球形云臺防護(hù)罩,帶動攝像機(jī)做上下左右掃描,攝像機(jī)配置22倍鏡頭以短焦距(廣角)作整體監(jiān)視,以長焦距(拉近)分辨具體細(xì)節(jié)(全遙控方式);對小范圍空間或單個目標(biāo)監(jiān)視,可用固定攝像機(jī)配置定焦鏡頭監(jiān)視。
在主要硬件設(shè)備中,水溫傳感器、pH傳感器、溶解氧傳感器、重金屬檢測設(shè)備等,主要負(fù)責(zé)環(huán)境數(shù)據(jù)的采集,并把采集的數(shù)據(jù)通過ZigBee協(xié)議傳送給網(wǎng)關(guān)設(shè)備或者導(dǎo)入系統(tǒng)數(shù)據(jù)中心;網(wǎng)關(guān)設(shè)備通過以太網(wǎng)或者無線網(wǎng)絡(luò)方式,負(fù)責(zé)把數(shù)據(jù)傳送給數(shù)據(jù)中心服務(wù)器;而視頻采集設(shè)備、視頻服務(wù)器,負(fù)責(zé)采集存儲視頻和圖像;控制設(shè)備主要功能是接收軟件平臺系統(tǒng)的指令,對增氧機(jī)、投食機(jī)等設(shè)備進(jìn)行控制(如進(jìn)行啟動、停止等操作),并把設(shè)備的運(yùn)行狀態(tài)返回給軟件平臺系統(tǒng)。
該系統(tǒng)硬件部分主要部署圖如圖2所示:
圖2 硬件部署圖
1.2 軟件設(shè)計
該系統(tǒng)軟件主要功能包括水溫、水深、pH值、含氧量等數(shù)據(jù)的采集、處理、保存;重金屬含量測試數(shù)據(jù)的導(dǎo)入;視頻信息實(shí)時顯示以及歷史查詢;對自動控制增氧機(jī)、投食機(jī)等設(shè)備進(jìn)行控制指令的下發(fā)以及設(shè)備狀態(tài)的查詢;以及在采集到的魚池參數(shù)超出標(biāo)準(zhǔn)時可進(jìn)行報警等功能。
根據(jù)系統(tǒng)軟件的主要功能,本軟件系統(tǒng)模塊劃分主要包括:數(shù)據(jù)采集與處理模塊,負(fù)責(zé)傳感信息和視頻信息的采集、處理與保存;數(shù)據(jù)導(dǎo)入模塊,主要是把離線設(shè)備檢測的重金屬數(shù)據(jù)導(dǎo)入本系統(tǒng)中,供用戶查詢使用;設(shè)備控制模塊,主要是根據(jù)用戶指令或者自動控制的參數(shù)設(shè)置,下發(fā)控制設(shè)備信息,并返回設(shè)備控制以后的狀態(tài);數(shù)據(jù)查詢模塊,主要是供用戶查詢實(shí)時的數(shù)據(jù)和歷史數(shù)據(jù),并把查詢的結(jié)果比如數(shù)據(jù)曲線或者報表,展示給用戶;自動報警模塊,對采集的數(shù)據(jù)信息超過警戒后,自動給用戶提示的功能,以方便用戶及時地進(jìn)行處理。系統(tǒng)流程圖如圖3所示:
圖3 系統(tǒng)流程圖
本系統(tǒng)啟動開始,軟件平臺系統(tǒng)自動根據(jù)設(shè)置,進(jìn)行采集數(shù)據(jù),然后進(jìn)行數(shù)據(jù)處理。當(dāng)數(shù)據(jù)達(dá)到報警設(shè)置的條件,對用戶進(jìn)行報警,如果數(shù)據(jù)正常,則進(jìn)行數(shù)據(jù)保存,如果產(chǎn)生報警,再根據(jù)系統(tǒng)設(shè)備檢查是否需要下發(fā)設(shè)備控制指令,該指令也可以由操作人員進(jìn)行手動點(diǎn)擊下發(fā),再把操作結(jié)果返回給用戶。系統(tǒng)對導(dǎo)入和采集的數(shù)據(jù),進(jìn)行處理后,保存到存儲服務(wù)器,供用戶進(jìn)行提取和查詢。
系統(tǒng)根據(jù)設(shè)置,自動進(jìn)行采集數(shù)據(jù)。其中,采集數(shù)據(jù)的主要代碼如下:
int RevData(char * strbuff)
{
int retVal;
WSADATA wsaData;
DWORD dwIP = 0;
//域名解析
HOSTENT* pHS = gethostbyname(strdomain);
if( pHS != NULL)
{
in_addr addr;
CopyMemory(&addr.S_un.S_addr, pHS->h_addr_list[0], pHS->h_length);
dwIP = addr.S_un.S_addr;
}
else
{
return 0;
}
SOCKET sckTongJi = socket(AF_INET, SOCK_STREAM, 0);
//定義地址結(jié)構(gòu)體 并初始化
SOCKADDR_IN addrSvr;
addrSvr.sin_family = AF_INET;
addrSvr.sin_addr.S_un.S_addr = dwIP;
addrSvr.sin_port = htons(80); //使用網(wǎng)絡(luò)字序
retVal = connect(sckTongJi, (SOCKADDR*)&addrSvr, sizeof(SOCKADDR_IN));
if (retVal)
{
//AfxMessageBox("connect error!");
WSACleanup();
return 0;
}
memset(strbuff, 0, sizeof(strbuff));
recv(sckTongJi, strbuff, 4096, 0);
closesocket(sckTongJi);
WSACleanup();
}
用戶進(jìn)行查詢數(shù)據(jù)后,軟件系統(tǒng)根據(jù)查詢得到的數(shù)據(jù)繪制出數(shù)據(jù)曲線圖。其中,繪制溶解氧曲線的主要代碼如下:
void CDrawCoorView::OnDraw(CDC* pDC)
{
CDrawCoorDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
const int num=6;
float initX[num]={1,2,3,4,5,6};
float initY[num]={0,2,4,6,8,10};
//分別取得X和Y最大值,最小值
float maxX=initX[0];
float minX=initX[0];
float maxY=initY[0];
float minY=initY[0];
for(int i=0;i { if(initX>maxX) maxX=initX; if(initX minX=initX; if(initY>maxY) maxY=initY; if(initY minY=initY; } //確定圖象顯示大小 int width=500; int height=300; const int mytop=20; const int mybottom=40; const int myleft=50; const int myright=40; //確定X,Y軸每單位顯示寬度 float intervalX=(width-myleft-myright)/(maxX-minX); float intervalY=(height-mybottom-mytop)/(maxY-minY); //繪制曲線 pDC->MoveTo(int(myleft+(initX[0]-minX)*intervalX),
int(height-(mybottom+(initY[0]-minY)*intervalY)));
for(i=0;i { pDC->LineTo(int(myleft+(initX-minX)*intervalX), int(height-(mybottom+(initY-minY)*intervalY))); } } 2 系統(tǒng)調(diào)試 2.1 傳感器的調(diào)試 傳感器上電后,通過ZigBee協(xié)議自動與網(wǎng)關(guān)設(shè)備進(jìn)行組網(wǎng),然后可以通過軟件采集傳感器的數(shù)據(jù)。如果采集上來的數(shù)據(jù)不準(zhǔn)確,通常是由下面三個方面問題引起的:傳感器輸出電流不對(常用傳感器輸出為電流型)、傳感器量程配置不對、數(shù)據(jù)計算錯誤。傳感器輸出電流不對是傳感器設(shè)備問題,可以更換新的傳感器;傳感器量程配置不對可以通過配置說明書進(jìn)行糾正;而數(shù)據(jù)計算錯誤是軟件方面的Bug引起的,需調(diào)試并修改軟件。 2.2 視頻圖像的調(diào)試 在視頻的調(diào)試過程中,常常發(fā)現(xiàn)有視頻畫面抖動或者不清晰的問題。視頻畫面抖動,通常是由視頻信號線問題或者電磁干擾引起的,更換新的視頻信號線或者查找周圍干擾源并消除干擾,抖動現(xiàn)象就會消失。而視頻不清晰,如果經(jīng)過調(diào)節(jié)焦距等操作,仍然達(dá)不到預(yù)期的效果,則說明是攝像機(jī)的選擇不適合。攝像機(jī)種類很多,不同的環(huán)境需要采用不同的攝像機(jī),以達(dá)到預(yù)期的效果。比如:室外定點(diǎn)監(jiān)視目前最常用的是紅外一體化攝像機(jī),有特殊要求可選擇陣列紅外攝像機(jī),雙CCD陣列攝像機(jī)等;而室外動點(diǎn)監(jiān)視常用的是智能球機(jī),可以分高速球、中速球、低速球,根據(jù)需要來選擇,也可以選擇普通攝像機(jī);室內(nèi)一般也可以選用紅外一體化攝像機(jī),但用的更多的是半球吸頂式攝像機(jī),可以選擇是否帶紅外,鏡頭大小等。還有,局部光線強(qiáng)的環(huán)境,選擇背光或抑光補(bǔ)償能力強(qiáng)的攝像機(jī)或直接選用寬動態(tài)攝像機(jī)。 2.3 軟件系統(tǒng)的調(diào)試 如果硬件調(diào)試完畢,通過軟件顯示的數(shù)據(jù)或者曲線不準(zhǔn)確,則是由軟件系統(tǒng)引起的,通過排查并修復(fù)軟件系統(tǒng)的Bug,可以展示正確的結(jié)果。本軟件系統(tǒng)經(jīng)過調(diào)試后,可以正確的顯示水溫、溶解氧、pH值等數(shù)據(jù)曲線,其中溶解氧傳感器的數(shù)據(jù)曲線如圖4所示: 圖4 溶解氧數(shù)據(jù)曲線 3 結(jié) 語 本系統(tǒng)已經(jīng)成功應(yīng)用在多個水產(chǎn)養(yǎng)殖實(shí)驗(yàn)基地,大大提高了工作效率和人工成本,獲得了用戶的好評。本系統(tǒng)和傳統(tǒng)的水產(chǎn)監(jiān)控系統(tǒng)相比,具有下列一些特色和創(chuàng)新: 針對水中含有重金屬常常離線檢測,本系統(tǒng)開發(fā)了重金屬數(shù)據(jù)導(dǎo)入系統(tǒng),使整個水域的環(huán)境參數(shù)更加真實(shí)和完整。 本系統(tǒng)可以根據(jù)報警信息設(shè)置,自動對溶解氧等設(shè)備進(jìn)行控制,也可以通過人工的方式去控制增氧機(jī)、投食機(jī)等設(shè)備。 本系統(tǒng)可以通過調(diào)節(jié)視頻設(shè)備,通過視頻直接觀察水域的情況和被控制設(shè)備的狀態(tài),大大提高了操作的安全性。 本系統(tǒng)可以對水產(chǎn)類特別是魚類養(yǎng)殖環(huán)境中水的溫度、水位,氧含量等情況進(jìn)行7*24小時的連續(xù)監(jiān)測。由于系統(tǒng)可實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,即使沒有人員在監(jiān)測現(xiàn)場,也可以全面了解水域的環(huán)境情況,在水產(chǎn)養(yǎng)殖應(yīng)用中具有很強(qiáng)的實(shí)際意義。另外,本系統(tǒng)不僅包含電腦客戶端軟件,也含有移動終端操作使用的APP,大大提高了系統(tǒng)使用的便捷性。同時,系統(tǒng)設(shè)計時,兼顧了穩(wěn)定性、可靠性、可擴(kuò)展性等特點(diǎn)。 參考文獻(xiàn) [1] 朱文錦, 冉綱軍. 水產(chǎn)養(yǎng)殖環(huán)境參數(shù)自動監(jiān)控系統(tǒng)研究[J]. 淡水漁業(yè),2001(1):60-61. [2] 龍慶華. 智能溫室計算機(jī)自動監(jiān)控系統(tǒng) [J]. 華南師范大學(xué)學(xué)報(自然科學(xué)版),2001(1):5-8. [3] 程月華,毛罕平,左志宇. 基于單片機(jī)的設(shè)施農(nóng)業(yè)營養(yǎng)液供給控制系統(tǒng)[J]計算機(jī)測量與控制,2002,10(3):172-174. [4] 王欽,陳忠輝,陳新. 基于ZigBee的倉庫溫濕度采集系統(tǒng)的設(shè)計[J]. 計算機(jī)與數(shù)字工程. 2009,37(9):207-211. [5] 趙馨惠,俞秀生. 極譜式在線溶解氧分析儀有關(guān)問題探討[J]. 化工自動化及儀表.2007, 34(1):94-96. [6] 姚玉霞,劉鶴,傘曉輝,等;蔬菜生產(chǎn)智能化專家系統(tǒng)在蔬菜栽培中的應(yīng)用[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2004(9):13-15. [7]李中華,王國占,齊飛.我國設(shè)施農(nóng)業(yè)發(fā)展現(xiàn)狀及發(fā)展思路[J].中國農(nóng)機(jī)化,2012(1):7-9. [8]葛志軍,傅理.國內(nèi)外溫室產(chǎn)業(yè)發(fā)展現(xiàn)狀與研究進(jìn)展[J].安徽農(nóng)業(yè)科學(xué),2008,36 (35):1575-1576 [9]劉篤仁,韓保君.傳感器原理及應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003. [10]黃賢斌,鄭筱霞.傳感器原理與應(yīng)用[M].北京:高等教育出版社. 2004. [11] Encyclopedia of Internet Technologies and Applications Knowledge management technologies and applications[R].literature review from 1995 to 2002.