王宏坡等
摘 要:為了進一步推進水產(chǎn)養(yǎng)殖監(jiān)控手段,以已有的水產(chǎn)養(yǎng)殖系統(tǒng)平臺為基礎(chǔ),并充分利用養(yǎng)殖戶已有的智能Android設(shè)備基礎(chǔ)上,將移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)信息技術(shù)應(yīng)用于水產(chǎn)養(yǎng)殖中,設(shè)計了能運行在Android平臺上的水產(chǎn)參數(shù)遠程監(jiān)控系統(tǒng),并介紹了水產(chǎn)養(yǎng)殖客戶端在線監(jiān)測和遠程控制功能的實現(xiàn)方法和步驟,完成客戶端軟件的設(shè)計與開發(fā)。它不僅大大便利了水產(chǎn)養(yǎng)殖人員的工作強度,而且還可以對水產(chǎn)養(yǎng)殖異常情況進行預(yù)警,從而為養(yǎng)殖漁業(yè)的健康生產(chǎn)保駕護航。
關(guān)鍵詞:Android 水產(chǎn)養(yǎng)殖 無線監(jiān)測 控制
中圖分類號:TP273 文獻標識碼:A 文章編號:1674-098X(2015)04(c)-0032-01
Android是一個開源的操作系統(tǒng),目前廣泛應(yīng)用于各種移動設(shè)備,如智能手機和平板電腦等,它是一個基于Linux的由Google公司開發(fā)系統(tǒng)[1]。Android的系統(tǒng)架構(gòu)主要分為應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運行庫層和Linux 內(nèi)核層[2]。
隨著物聯(lián)網(wǎng)的逐漸推進,在水產(chǎn)養(yǎng)殖方面得到不斷推廣[3],該文則在已有物聯(lián)網(wǎng)水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng)的基礎(chǔ)上,增加Android移動監(jiān)控平臺。
1 系統(tǒng)設(shè)計
根據(jù)用戶需求, 系統(tǒng)能夠完成參數(shù)設(shè)置、在線監(jiān)測、遠程控制功能。系統(tǒng)功能結(jié)構(gòu)如圖1所示。
(1)參數(shù)設(shè)置:參數(shù)設(shè)置主要完成各個監(jiān)測點設(shè)置及各個監(jiān)控參數(shù)限制的設(shè)置。
(2)在線監(jiān)測:在線監(jiān)測主要完成系統(tǒng)中所有管理區(qū)監(jiān)測設(shè)備(傳感器)的管理操作,包括設(shè)備開啟或關(guān)閉、查看設(shè)備運行狀態(tài)、監(jiān)測指標及監(jiān)測值等。
(3)遠程控制:遠程控制主要完成系統(tǒng)中所有管理區(qū)控制設(shè)備(控制器)的管理操作,包括設(shè)備的開啟或關(guān)閉、查看設(shè)備運行狀態(tài)、設(shè)定控制設(shè)備的工作方式(控制模式)等。
2 系統(tǒng)實現(xiàn)
2.1 手機端與服務(wù)器端的交互
水產(chǎn)養(yǎng)殖的各個監(jiān)控參數(shù)都由服務(wù)器存儲到數(shù)據(jù)庫中,Android客戶端要獲取相應(yīng)參數(shù)或設(shè)置參數(shù)等,就需要與服務(wù)器進行交互。在該文中手機端與服務(wù)器端的交互是通過Web Service進行。由于在Android4.0之后不可以在主線程中進行網(wǎng)絡(luò)操作,故要調(diào)用webservice需要新開線程。
public void onClick(View v){
new Thread(new Runnable(){
public void run(){
}
}).start();
}
2.2 獲取監(jiān)測設(shè)備
準確獲取設(shè)備是進行設(shè)備遠程控制的重要前提。本程序定義設(shè)備變量StateOfDev。賦值代碼為:
StateOfDev=(ImageButton)findViewById(R.id.stateofdev)
int devId =getInt(dev[1],0);
StateOfDev.getDev(devId);
2.3 獲取監(jiān)測數(shù)據(jù)
傳感設(shè)備監(jiān)測到的環(huán)境數(shù)據(jù)會通過數(shù)傳設(shè)備實時傳輸并儲存在服務(wù)器端。在使用手機客戶端進行在線監(jiān)測時,需要使用monitorDataHandler( )方法對服務(wù)器端的數(shù)據(jù)進行實時獲取。
2.4 遠程控制
遠程設(shè)備控制分為人工控制和自動控制。人工控制則由用戶根據(jù)自己的經(jīng)驗去控制設(shè)備,而自動控制則由系統(tǒng)根據(jù)設(shè)定值自動調(diào)節(jié)。其主要代碼如下所示:
switch(v.getId()){
case R.id.ManualControl:
startControl.
setManual(Constants);
break;
case R.id.AutoControl:
startControl.setAuto(Constants);
break;
}
2.5 相關(guān)界面
相關(guān)界面如圖2所示。
3 聲明
本論文由國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201410061038)和(201410061037)及院精品課程“應(yīng)用軟件開發(fā)基礎(chǔ)”資助。
參考文獻
[1] 蔣樹,劉霞.魚塘溶解氧無線監(jiān)測與控制系統(tǒng)研究[J].漁業(yè)現(xiàn)代化,2012,25(2):25-28.
[2] 王宏坡,馬文芝,周紅.基于Android的電子書閱讀器的設(shè)計與實現(xiàn)[J].天津農(nóng)學(xué)院學(xué)報,2014,21(2):39-41.
[3] 閆宗魁,姜印平,李艷文,等.基GSM短消息的無線智能溶解氧監(jiān)控系統(tǒng)[J].天津理工大學(xué)學(xué)報,2006,22(1):69-71.endprint