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