《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Android的水產物聯服務系統設計與開發
基于Android的水產物聯服務系統設計與開發
來源:電子技術應用2014年第1期
馬曉飛1, 袁永明1,2, 張紅燕2, 陳浩成1, 劉彥娜1
1. 南京農業大學 漁業學院,江蘇 無錫 214081;2. 中國水產科學研究院淡水漁業中心 國家羅非魚產業技術研發中心農業部淡水漁業和種質資源利用重點實驗室,江蘇 無錫 214081
摘要: 設計開發了基于Android平臺的水產物聯服務系統客戶端,通過分析水產物聯服務系統客戶端的需求, 提出系統設計思想及實現方法。介紹了系統客戶端在線監測和遠程控制功能的實現方法和步驟,完成客戶端軟件的設計與開發,實現了水產物聯服務系統客戶端的功能和需求。
中圖分類號: TP311
文獻標識碼: A
文章編號: 0258-7998(2014)01-0137-04
Design and development of aquaculture internet things service system based on Android
Ma Xiaofei1,Yuan Yongming1,2, Zhang Hongyan2, Chen Haocheng1, Liu Yanna1
1. Fisherise College,Nanjing Agricultural University,Wuxi 214081, China;2. Key Laboratory of Freshwater Fisheries and Germplasm Resources Utilization of Ministry of Agriculture, Tilapia industrial Research Center of China Agriculture Research System(CARS49), Freshwater Fisherise Reserch Center of Chinese Academy of Fishery Sciences, Wuxi 214081, China
Abstract: This paper designed and developed the client of Aquaculture internet things service system based on Android, analyzed the demand for the system,proposed the design ideas and implementation of the client. The implementation and measures of main functions for the client,such as online monitoring and remote control, are introduced. Completed the application design and development, achieved the functions and needs of aquaculture internet things service system based on Android.
Key words : aquaculture; internet things service; online monitoring; remote control

    Android是一個開放性的開發平臺,由Google公司和開放手機聯盟開發,基于Linux的自由及開放源代碼的操作系統[1]。主要應用于移動設備,如智能手機和平板電腦。Android的系統架構主要分為應用程序層、應用程序框架層、系統運行庫層和Linux內核層。
   水產物聯服務系統AITSS(Aquaculture Internet Things Service System)是一個面向水產養殖行業,應用現代物聯技術[2]集成行業業務處理應用系統的服務平臺。系統采用自然語言與計算機語言相融合的方法,使用豐富的命令集(管理命令、用戶命令、開發命令和短信命令),實現人-物-物之間的信息交流。系統的語音、視頻、短信、傳感、監控等服務不受硬件、通信協議及方式的限制,集成的行業業務處理應用系統運行穩定、維護簡單、更新方便、擴展靈活。
   本文基于Android平臺,設計并開發了水產物聯服務系統Android手機客戶端(AITSS for Android),將在線監測、遠程控制、設備遠程維護等功能集成于本應用軟件。
1 系統設計
    根據用戶需求,系統能夠完成在線監測、遠程控制、設備管理、參數設置、外觀選擇等功能。系統功能結構如圖1所示。

 (1)在線監測:在線監測主要完成系統中所有管理區監測設備(傳感器)的管理操作,包括設備開啟或關閉、查看設備運行狀態、監測指標及監測值等。
    (2)遠程控制:遠程控制主要完成系統中所有管理區控制設備(控制器)的管理操作,包括設備的開啟或關閉、查看設備運行狀態、設定控制設備的工作方式(控制模式)等。
  (3)設備管理:設備管理主要完成水產物聯服務系統支持的系統成員的管理操作,主要包括系統成員的添加、刪除、查詢、系統作業的配置等。
    (4)參數設置:參數設置主要完成服務器地址、端口號和系統刷新頻率的設置。
    (5)外觀選擇:用于為用戶提供個性化的系統界面配色方案和外觀選擇。
2 開發環境
    水產物聯服務系統的服務器操作系統使用FreeBSD進行系統管理,使用MySQL 5.0數據庫進行數據和配置的存儲。手機客戶端與AITSS交互流程如圖2所示。

    在安裝有Windows操作系統的PC機進行Android開發環境的搭建[1],需要Oracle公司的Java SE JDK和Java運行環境(Java Runtime Environment),Eclipse IDE和Android SDK。
 開發環境如下:
 JAVA SE JDK:Java version 1.7.0_25;Java SE Runtime Envitonment <build 1.7.0_25-b16>。
    Eclipse IDE:Eclipse Java IDE for Web Developers. Indigo Service Release 2。
    Android SDK:Android 2.3.3(API 10)。
3 系統實現
3.1 網絡連接

    使用Android3.0及以上版本訪問WebService會出現android.os.NetworkOnMainThreadException的問題[3],通過在Activity類添加onCreate( )方法中添加Strict代碼解決。核心代碼如下:
        //解決Android3.0以上版本的Socket連接問題
        StrictMode.setThreadPolicy(new StrictMode
         .Threadpolicy.builder().detectDiskReads()
        .detectDiskWrites().detectDiskNetwork()
              .penaltyLog().build());
        StrictMode.setVmPolicy(new StrictMode
              .VmPolicy.builder().detectLeakedSqlLite
              Objects().penaltyLog().penaltyDeath()
              .build());
3.2 在線監測
    實現在線監測功能需要解決監測設備獲取、監測數據獲取和繪制監測曲線等系統需求。
3.2.1 獲取監測設備
 本程序在單獨線程中獲取水產物聯服務系統,服務器端已完成配置的監測地點和監測設備詳情。根據Socket的返回值使用Android提供的ListView()組件顯示獲取到的信息。在處理Socket時,使用singleton模式[4](單例模式)獲取SocketHelper,代碼如下:
    syncharonized(synObj){
          if(socketHelper == null) {
             socketHelper = new SocketHelper(context);
         }
    }
    根據Socket返回值顯示加載有監測地點和設備信息的彈出窗口popupwindow時,需要將其setFocusable屬性設置為true,否則無法獲取到彈出窗口里的焦點,由此導致彈出窗口中可能存在輸入框等控件無法輸入。
3.2.2 獲取監測數據
     傳感設備監測到的環境數據會通過數傳設備實時傳輸并儲存在服務器端。在使用手機客戶端進行在線監測時,需要使用monitorDataHandler( )方法對服務器端的數據進行實時獲取,代碼如下:
       //獲取每行監測數據(格式為373737:34.44[時間整數:監測數據值])
     String[] md = infos[i].split(Constants
         .Command.COMMAND_SEPARATOR);
     if (&ldquo;&rdquo;.equals(md[0].trim()))
          continue;
     date = MathHelper.getLong(md[0],0) * 1000;
     value = MathHelper.round(Float.valueOf(md[1]),3);
     series.addData(date,value);
     實時獲取到的監測數據將在監測顯示容器TextView( )組件中進行顯示和實時更新。
3.2.3 監測曲線繪制
    為便于用戶查看一定時間段內的監測指標變化趨勢,設計開發了監測曲線繪制功能。
    監測曲線的橫軸為實時時間參數,表示服務器端獲取到該監測值的時間點,橫軸刻度根據時間變化實時更新,監測曲線的為使用監測值,表示對應時間點的監測指標值;縱軸使用動態坐標,根據當前數據的最大最小值進行自動調節,并在最大最小值相等時根據數據精度進行上下縮放。
    使用Android提供的TextView( )組件作為曲線顯示容器,定義并使用drawLine(Canvas canvas)函數進行曲線繪制,關鍵代碼如下:
    canvas.drawPoint(mChartRect.left,mChart.bottom - y0,this.mSeriesPaint);
    canvas.drawLine(mChartRect.left + x0 *
         mXSrawUnit, mChartRect.bottom - y0,
         mChartRect.left+x1* mXDrawUnit,
         mChartRect.bottom-y1, mSeriesPaint);
3.3 遠程控制
    遠程控制主要對用于水產養殖生產的自動化設備進行遠程控制。設備控制模式根據生產需要分為人工控制、定時控制和自動控制三種。
3.3.1 選擇控制模式
    系統根據用戶的需要,設計開發了三種控制模式:(1)人工模式,滿足用戶隨時隨地控制設備的需求;(2)定時模式,通過設置時間隊列,滿足設備定時控制;(3)自動模式,結合水產養殖專家系統,進行智能化決策及設備控制。在遠程控制界面,選擇不同控制模式,顯示不同視圖View( )。選擇人工模式時,切換控制模式顯示視圖的代碼如下:
     case R.id.chkManualControl:
     startContent.setVisibility(Constants.Visibility.GONE);
     endContent.setVisibility(Constants.Visibility.GONE);
     break;
3.3.2 獲取設備狀態
    準確獲取設備當前狀態是進行設備遠程控制的重要前提。本程序定義設備狀態變量devState為一個可進行滑動操作的SlipButton對象[5]。賦值代碼為:
    devState=(SlipButton)findViewById
                     (R.id.devstate)
    獲取設備狀態代碼如下:
       float open = MathHelper.getFloat(dev[1],0);
       devState.setCheck(open>0);
       paraZone.setVisibility(Constants.Visibility.VISIBLE);
3.3.3 定時控制
    定時本文控制的原理是用戶根據需要自主設定改變控制設備狀態的起止時間點。如當前增氧機狀態為開啟,用戶可以根據需要,設定在某一時間點將增氧機狀態更改為關閉,并在另一時間點再次開啟增氧機。關鍵代碼為:
        String mode= oprMode==0?&rdquo;auto&rdquo;:(devdate
                  .isChecked()?&rdquo;on&rdquo;:&rdquo;off&rdquo;)
        try{
           String b= startTime.getText().toString();
           long beginTime =DateHelper.convert2long(b,
                    &ldquo;yyyy-MM-dd HH:mm&rdquo;);
           begin =(int)(beginTime- currentTime);
        }
4 試驗與結果分析
 使用設計并開發的客戶端程序,進行基于Android平臺的水產物聯服務系統的應用試驗。本實例使用安裝有Android4.0.3版本的手機,在CDMA2000的3G網絡環境進行。
    軟件使用流程為:打開應用程序,輸入用戶名和密碼,以默認服務器地址和端口號登錄;手機根據用戶的手勢指令將信息發送到服務器,并將解析后的信息及時回送到手機端,經應用程序處理后顯示在手機上。用戶可以實時管理監測設備,查看實時監測數據和指標變化曲線;通過遠程控制命令進行設備的人工開啟和關閉、定時開啟和關閉,也可連接到專家系統使用自動智能控制模式[6]。系統應用實例如圖3、圖4所示。

 

 

    程序的開發和應用實驗證明,客戶端軟件能夠完成與服務器端水產物聯服務系統的交互,實現水產養殖環境的在線監測和水產養殖生產設備的遠程控制。由于Android平臺對硬件配置的適應性和平臺的開放性,用戶可以將已有視頻監控設備移植到客戶端中,實現真正的實時在線監控[7]。基于Android平臺的客戶端程序易于獲取,通過網絡即可方便地下載安裝,享受物聯服務。
    本文基于Android平臺,結合水產養殖行業所需的環境監測指標和生產設備,設計開發了一個開放式的智能手機客戶端平臺。該客戶端平臺與物聯服務系統服務器進行交互,起到信息展示和發布的作用,而信息的處理和存儲皆由物聯服務系統完成。還可以根據用戶的不同需求配置不同的傳感監測設備和控制設備,將該客戶端應用于其他行業, 設計出適用于各個領域的物聯服務系統。
 此方案可以有效降低系統開發成本,延長系統存活周期,具有靈活、高效、可擴展的特性,應用前景較好。
參考文獻
[1] JACKSON W. Android apps for absolute beginners[M]. New York City:Apress,2011.
[2] 孫其博,劉杰,黎羴,等. 物聯網:概念、架構與關鍵技術研究綜述[J].北京郵電大學學報,2010,33(3):1-9.
[3] 鄧蕊.基于Android的視頻監控的研究與實現[D].西安:西安電子科技大學,2012.
[4] SHALLOWAY A, TROTT J R.設計模式解析[M].徐言聲譯.北京:人民郵電出版社,2006.
[5] 鄭云卿,黃琦.基于Android平臺的軟件自動化監控工具的設計開發[J].計算機應用與軟件,2013,30(2):235-238.
[6] 江燕良.基于Android智能終端的遠程控制系統[J].電子技術應用,2012,38(8):129-132.
[7] 李昂,宋海聲,蘇小蕓. 基于Android的視頻監控系統設計與實現[J].電子技術應用,2012,38(7):138-143.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品高潮粉嫩av| 亚洲人成网站777色婷婷| 蜜乳av另类精品一区二区| 午夜日韩在线| 亚洲图片欧美一区| 日韩一级在线| 日韩亚洲欧美成人| 99精品国产热久久91蜜凸| 亚洲精品1区2区| 亚洲电影视频在线| 亚洲成人在线网| 亚洲福利国产精品| 亚洲激情电影在线| 亚洲精品五月天| 日韩亚洲成人av在线| 99亚洲精品| 一区二区三区www| 亚洲一级黄色| 亚洲欧美在线看| 性欧美精品高清| 久久av红桃一区二区小说| 久久精品一级爱片| 裸体丰满少妇做受久久99精品 | 欧美激情亚洲视频| 欧美激情一区二区三区不卡| 欧美精品免费观看二区| 欧美三级视频在线播放| 国产精品高潮呻吟| 国产欧美日韩一级| 黄色免费成人| 最新成人av在线| 中文一区二区| 午夜日韩电影| 亚洲二区在线视频| 日韩视频中文字幕| 亚洲图片在线观看| 欧美亚洲在线观看| 老司机精品导航| 欧美日韩国产二区| 国产精品入口麻豆原神| 国产一区二区三区免费在线观看| 伊人成年综合电影网| 91久久在线| 亚洲综合精品四区| 亚洲福利在线观看| 99国内精品久久| 欧美一区国产二区| 欧美大片在线影院| 欧美性大战久久久久| 国产一区二区精品丝袜| 亚洲区国产区| 午夜精品视频在线观看一区二区| 亚洲黄页一区| 亚洲综合丁香| 美女露胸一区二区三区| 国产精品成人av性教育| 精久久久久久久久久久| 亚洲免费观看高清完整版在线观看熊 | 亚洲一区欧美| 亚洲成人资源| 亚洲免费视频在线观看| 久久噜噜亚洲综合| 欧美午夜精品久久久久久孕妇 | 亚洲欧美日本在线| 嫩模写真一区二区三区三州| 欧美日韩在线播放三区四区| 国产亚洲视频在线观看| 亚洲另类视频| 亚洲国产欧美在线人成| 羞羞答答国产精品www一本| 欧美大色视频| 国产一区二区三区奇米久涩| 亚洲精品资源美女情侣酒店| 欧美一级理论片| 一区二区三区视频免费在线观看 | 欧美大片第1页| 国产精品三级视频| 亚洲精品日本| 亚洲高清二区| 亚洲欧美国产制服动漫| 欧美激情一区二区在线 | 欧美一区二区福利在线| 欧美乱妇高清无乱码| 国模吧视频一区| 亚洲视频在线二区| 日韩天堂av| 卡一卡二国产精品| 国产一级一区二区| 亚洲综合色在线| 宅男噜噜噜66一区二区66| 欧美.www| 影音先锋在线一区| 欧美一二三视频| 午夜精品视频一区| 欧美日韩在线视频一区二区| 亚洲国产毛片完整版| 亚洲高清精品中出| 久久青草福利网站| 国产亚洲精品久久久久婷婷瑜伽| 在线亚洲精品福利网址导航| 一区二区三区黄色| 欧美高清视频一二三区| 国内自拍亚洲| 欧美在线www| 欧美一区二区视频97| 国产精品扒开腿做爽爽爽视频| 亚洲三级视频| 亚洲精品乱码久久久久久日本蜜臀| 久久久久久久性| 国产日韩欧美综合一区| 亚洲欧美日韩在线观看a三区| 亚洲伊人网站| 欧美色大人视频| 亚洲精品中文在线| 一本色道久久88综合亚洲精品ⅰ| 欧美 日韩 国产一区二区在线视频 | 午夜亚洲一区| 国产精品福利网| 亚洲性视频网址| 欧美亚洲免费| 国产精品一区视频网站| 亚洲伊人伊色伊影伊综合网 | 国产一区91精品张津瑜| 欧美在线影院在线视频| 久久免费国产| 在线观看成人网| 亚洲欧洲精品一区二区三区波多野1战4 | 国产精品久久久久久久久久尿| 99香蕉国产精品偷在线观看| 99在线精品观看| 欧美日韩一区二区三区高清| 99re6这里只有精品| 亚洲专区一区二区三区| 国产精品日韩欧美| 午夜精品久久久久久99热软件| 久久精品二区三区| 极品日韩久久| 99视频国产精品免费观看| 欧美视频在线观看| 亚洲欧美精品在线| 久久先锋资源| 亚洲国产欧美另类丝袜| 亚洲视频第一页| 国产精品午夜在线| 久久精品99国产精品日本| 欧美大秀在线观看| 日韩午夜一区| 欧美一级网站| 精品51国产黑色丝袜高跟鞋| 亚洲人成在线播放网站岛国| 欧美日韩国产成人在线91| 亚洲一区二区在线看| 久久久一区二区| 91久久香蕉国产日韩欧美9色| 在线亚洲精品| 国产欧美日本一区二区三区| 亚洲成人资源网| 欧美日韩另类国产亚洲欧美一级| 一本色道久久综合亚洲精品高清 | 一区二区三区 在线观看视频| 久久xxxx| 亚洲精品国产精品久久清纯直播| 亚洲欧美区自拍先锋| 极品少妇一区二区三区| 亚洲少妇在线| 国产一区二区三区四区在线观看| 亚洲精品免费在线播放| 国产精品久久久久久久浪潮网站 | 欧美亚一区二区| 久久本道综合色狠狠五月| 欧美日韩成人综合天天影院| 亚洲专区欧美专区| 欧美激情在线观看| 亚洲欧美激情四射在线日| 欧美国产视频在线| 午夜久久久久| 欧美三级视频在线播放| 久久国产日韩欧美| 欧美小视频在线观看| 91久久香蕉国产日韩欧美9色| 欧美体内she精视频在线观看| 久久电影一区| 国产精品久久久久毛片大屁完整版 | 亚洲欧美三级伦理| 亚洲国产成人午夜在线一区| 欧美一二区视频| 亚洲精品影视| 噜噜爱69成人精品| 亚洲欧美成人综合| 欧美日韩免费高清| 亚洲电影免费| 国产欧美日韩综合| 亚洲小说区图片区| 亚洲国产小视频| 久久久夜色精品亚洲| 亚洲在线观看免费| 欧美精品在线一区二区| 久久高清福利视频| 国产欧美精品xxxx另类| 中文国产成人精品|