李慧等
摘要:提出了一種在Android手機上實現(xiàn)的基于物聯(lián)網(wǎng)的智能水質(zhì)環(huán)境監(jiān)測系統(tǒng),通信參數(shù)以及報警閾值參數(shù)保存都采用文本方式,能夠?qū)Χ嗨蛳碌亩嗨|(zhì)參數(shù)(水位、鹽度、pH、流速、溫度、溶氧度)進行在線監(jiān)測并自動報警,采用了基于消息通知機制的Socket網(wǎng)絡通信方式,具有較強的實時性,實時采集的數(shù)據(jù)采用數(shù)據(jù)庫方式進行存儲。系統(tǒng)設計對網(wǎng)絡要求低,具有較高的性價比。在江蘇省溧陽市長蕩湖試驗基地進行多次反復試驗調(diào)試,系統(tǒng)各項指標反應良好,使用方便,為指導漁業(yè)生產(chǎn)增加漁民收入提供了保證。
關鍵詞:物聯(lián)網(wǎng);水質(zhì)參數(shù);閾值;數(shù)據(jù)庫;性價比
中圖分類號:DF413.4;TP277 文獻標識碼:A 文章編號:0439-8114(2014)02-0437-04
The Monitoring and Alarming System of Fishery Water Quality Parameter
in Many Water Areas Based on IOT
LI Hui1,2,LIU Xing-qiao1,LI Jing2,NI Wei2
(1.School of Electrical and Information Engineering, Jiangsu University, Zhenjiang 212013, Jiangsu, China;
2.Faculty of Electronic and Electrical Engineering, Huaiyin Institute of Technology, Huaian 223001, Jiangsu, China)
Abstract: Monitoring and alarming the fishery water quality parameter accurately and quickly plays an important role in the fishery production. A design of intelligent water environment monitoring system based on IOT operating on the Android mobile phone was put forward. Communication parameters and alarm threshold parameters are saved in text format. Using the system, many of water quality parameters (water level, salinity, pH, flow rate, temperature, oxygen content) in many water areas can be monitored and automatically alarmed online. The mode of socket network communication based on message notification mechanism was used in the design. The design has strong real-time characteristic, and storages real-time data using the database. The design has low requirement on the network and a high cost effectiveness. After experimenting and debugging in Liyang Changdang lake experiment base of Jiangsu province, the indicators of the system response are good. The syetem is easy for use and can provide guidance for fishery production and increase the income of fishermen.
Key words: internet of things; water quality; threshold; data base; cost effectiveness
漁業(yè)的發(fā)展離不開優(yōu)質(zhì)的水域環(huán)境,隨著科學技術的快速發(fā)展,物聯(lián)網(wǎng)技術的應用越來越廣泛?;谖锫?lián)網(wǎng)的漁業(yè)水質(zhì)參數(shù)多點在線監(jiān)測并自動報警為漁業(yè)的大力發(fā)展提供了保障。目前國內(nèi)的物聯(lián)網(wǎng)技術起步較晚,水質(zhì)參數(shù)監(jiān)測多為人工方式,實時性較差,操作不方便[1-4]。國外物聯(lián)網(wǎng)技術發(fā)展較快,例如在美國、荷蘭等地,水質(zhì)環(huán)境監(jiān)測精度較高,但成本偏高,不能滿足中國目前中小規(guī)模漁業(yè)發(fā)展的需要[5-10]。
基于物聯(lián)網(wǎng)的漁業(yè)水質(zhì)參數(shù)多點監(jiān)測報警的研究,目前尚未見報道,本監(jiān)測報警系統(tǒng)采用物聯(lián)網(wǎng)技術,在Android手機上對漁業(yè)多水域水質(zhì)參數(shù)進行在線監(jiān)測,如有參數(shù)超限,本監(jiān)測報警系統(tǒng)會自動給出報警提示,提示漁民關注漁情。系統(tǒng)操作簡單,反應靈敏,實時性好,為漁民實時了解多水域漁情提供了參考。
1 系統(tǒng)總體結(jié)構
系統(tǒng)由8個無線傳感網(wǎng)絡單元、本地服務器、遠程客戶機以及遠程手機用戶客戶機等幾大模塊組成。系統(tǒng)結(jié)構如圖1所示。
2 無線傳感網(wǎng)絡單元
1個無線傳感網(wǎng)絡單元主要負責采集1個水域的4個點的水質(zhì)參數(shù),每個點包含6個參數(shù)(水位、鹽度、pH、流速、溫度、溶氧度),經(jīng)過8051CPU綜合平均處理后通過串行口RS232發(fā)送給現(xiàn)場監(jiān)控計算機,上傳到Internet。每個無線傳感網(wǎng)絡單元由4個傳感器節(jié)點以及一個中心協(xié)調(diào)節(jié)點構成[11,12],具體結(jié)構如圖2所示。中心協(xié)調(diào)節(jié)點和覆蓋范圍內(nèi)的傳感器節(jié)點采用能耗最低的星形網(wǎng)絡拓撲結(jié)構,處理器采用SOC系統(tǒng)芯片CC2430,系統(tǒng)采用ZigBee協(xié)議。
傳感器節(jié)點由兩部分組成:無線收發(fā)模塊和傳感器模塊[13]。傳感器模塊將采集到的水質(zhì)參數(shù)模擬信號通過信號處理后進行A/D轉(zhuǎn)換,通過無線模塊發(fā)送給中心協(xié)調(diào)節(jié)點的無線接收模塊。
中心協(xié)調(diào)節(jié)點相比傳感器節(jié)點少了傳感器模塊[14,15],主要由8051單片機和ZigBee無線收發(fā)模塊組成。中心協(xié)調(diào)節(jié)點首先組建星形拓撲結(jié)構的網(wǎng)絡,為每個無線傳感器分配地址,然后向每個無線傳感器發(fā)送請求數(shù)據(jù)命令,等待接收各個無線傳感器發(fā)送的參數(shù)信息,平均化處理后通過RS232串行口發(fā)送給計算機。
同時對8個水域進行在線監(jiān)測,對現(xiàn)場計算機要求能夠同時擴展8個串行口。
3 Android手機客戶機部分
Android是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,它主要由操作系統(tǒng)、中間件、用戶界面和應用軟件等幾部分組成。本設計基于Android系統(tǒng),系統(tǒng)測試采用聯(lián)想A288t手機,Android2.3.5版本,內(nèi)核2.6.35.7。開發(fā)環(huán)境為AndroidSDK+JAVA JDK6+Eclipse3.5。采用客戶機/服務器模式,客戶機部分采用Android JAVA開發(fā),利用數(shù)據(jù)庫SQLite實現(xiàn)數(shù)據(jù)存儲,調(diào)用Socket控件完成網(wǎng)絡通信,服務器部分采用Delphi結(jié)合SQL以及調(diào)用Socket編程實現(xiàn)。Android客戶機程序在Eclipse編譯環(huán)境中最終編譯之后打包生成APK文件,設置Android手機開發(fā)權限后在Android手機上可以直接安裝[16]。
3.1 系統(tǒng)界面設計
系統(tǒng)界面設計采用XML腳本語言來完成[17],主要由登錄界面、主監(jiān)測報警界面以及若干水域監(jiān)測界面組成。登錄界面負責用戶的登錄,采用數(shù)據(jù)庫管理用戶密碼;主監(jiān)測報警界面是本系統(tǒng)的主界面,如圖3所示,主要負責所有水域水質(zhì)環(huán)境的監(jiān)測和報警,在該界面上有8組狀態(tài),每組狀態(tài)用1個燈泡配合1只標簽來表示,如果某個水域的水質(zhì)超限,燈泡點亮同時標簽提示“報警”,同時在每組狀態(tài)下面設置了“查看”按鈕,點擊后可以自動跳轉(zhuǎn)到具體的某個水域水質(zhì)監(jiān)測界面;若干水域監(jiān)測界面如圖4所示,主要包含6組水質(zhì)參數(shù)以及4個控制按鈕。
3.2 系統(tǒng)主工作流程介紹
系統(tǒng)主工作流程如圖5所示。首先初始化系統(tǒng),讀取初始化文件中的通信參數(shù)信息以及各個水域報警閾值信息,然后連接服務器啟動接收1組數(shù)據(jù),分配給各個水域供調(diào)用顯示,查詢比較各個水域的讀取數(shù)據(jù)與閾值進行比較,給出報警提示。
3.3 報警及通信參數(shù)輸入模塊設計
報警及通信參數(shù)輸入模塊設計方法較多,可以采用數(shù)據(jù)庫的方法,也可以采用文件的方法。此處本著設計簡單方便考慮,選用第二種文件設計方案。將通信參數(shù)和各個水域的水質(zhì)參數(shù)的報警閾值以固定的格式存放到初始化文件中,存入SD卡中,格式為TXT文本。用戶在首次執(zhí)行本應用程序之前,要在根目錄下打開初始化文件Ini.txt,按照預定格式修改通信參數(shù)(IP和端口號)以及8個水域的水質(zhì)參數(shù)(溫度、pH、水位、溶氧度、鹽度、流速)的報警上下限。Ini.txt文件的數(shù)據(jù)存放格式如下:
IP:XXXX;端口:XXXX;
1#溫度上限:XXXX;1#溫度下限:XXXX;
1# pH上限:XXXX;1# pH下限:XXXX;
1#水位上限:XXXX;1#水位下限:XXXX;
1#溶氧度上限:XXXX;1#溶氧度下限:XXXX;
1#鹽度上限:XXXX;1#鹽度下限:XXXX;
1#流速上限:XXXX;1#流速下限:XXXX;
…
8#溫度上限:XXXX;8#溫度下限:XXXX;
8# pH上限:XXXX;8# pH下限:XXXX;
8#水位上限:XXXX;8#水位下限:XXXX;
8#溶氧度上限:XXXX;8#溶氧度下限:XXXX;
8#鹽度上限:XXXX;8#鹽度下限:XXXX;
8#流速上限:XXXX;8#流速下限:XXXX;
Android系統(tǒng)首先以數(shù)據(jù)流的方式讀取初始化文件中的內(nèi)容,然后進行解析,取出有用的數(shù)據(jù)傳給Android的全局變量。具體主要實現(xiàn)方法如下:
String fileName = “/sdcard/ini.txt”;
//文件路徑
String res =“” ;
Try {
FileInputStream fin = new FileInputStream(fileName);
Int length = Fin.available();
Byte[] buffer = New byte[length];
Fin.read(buffer);
Res = EncodingUtils.getString(buffer,
"GB2312");
//以數(shù)據(jù)流的方式讀取文本數(shù)據(jù)到res中,采用GB2312編碼方式
然后采用分離函數(shù)split以“:”和“;”為分離點對讀到的數(shù)據(jù)流進行分離處理,實現(xiàn)如下:
String spStr[] = Res.split(“:|;”);
String ip=SpStr[1];
//從數(shù)據(jù)流中分離出ip,端口port,
//1#溫度上限Wd_up1,下限Wd_down1 …
String port=SpStr[3];
String wd_up1=SpStr[5];
String wd_down1=SpStr[7];
…
最后在讀寫SD卡文件時要在配置文件Manifest.xml中申明權限,否則無法使用。
3.4 數(shù)據(jù)庫模塊設計
系統(tǒng)采用Android自帶的SQLite數(shù)據(jù)庫,SQLite數(shù)據(jù)庫具有系統(tǒng)開銷小,檢索效率高的特性,系統(tǒng)中兩處使用到數(shù)據(jù)庫,一處是用戶登錄時,用來保存用戶名稱和密碼;另外一處是在系統(tǒng)運行時,用來保存8個水域的各個水質(zhì)參數(shù)信息。Android不自動提供數(shù)據(jù)庫。在Android應用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表、索引,填充數(shù)據(jù)。因此要創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建兩個表,如表1和表2所示。在Android中主要有兩種方法來實現(xiàn)對數(shù)據(jù)庫的訪問,一種是Adb shell方式,另一種是通過相關的Android的Java類來間接地對數(shù)據(jù)庫進行操作。本設計主要采用后一種方式,采用抽象類SQLiteOpenHelper來創(chuàng)建數(shù)據(jù)庫。SQLiteOpenHelper類根據(jù)開發(fā)應用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫使用的邏輯。SQLiteOpenHelper的子類,實現(xiàn)需要以下方法:
OnCreate()方法;
//創(chuàng)建數(shù)據(jù)庫后,對數(shù)據(jù)庫的操作
通過SQLiteDatabase類來實現(xiàn)數(shù)據(jù)庫的插入數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù)、修改數(shù)據(jù)等操作。當完成了對數(shù)據(jù)庫的操作后,調(diào)用SQLiteDatabase的Close( )方法來釋放掉數(shù)據(jù)庫連接。
3.5 網(wǎng)絡通信模塊設計
系統(tǒng)通信模塊主要采用Socket網(wǎng)絡通信方式。套接字(Socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡通信的基本操作單元。創(chuàng)建Socket連接時,可以指定使用的傳輸層協(xié)議,Socket支持兩種不同的傳輸層協(xié)議:TCP和UDP協(xié)議。TCP協(xié)議:首先連接接收方,然后發(fā)送數(shù)據(jù),保證成功率,速度慢;UDP協(xié)議:把數(shù)據(jù)打包成數(shù)據(jù)包,然后直接發(fā)送到對應的IP地址,速度快,但是成功率得不到保證,并且數(shù)據(jù)大小有限??紤]到數(shù)據(jù)安全,本系統(tǒng)設計采用TCP協(xié)議,為了提高系統(tǒng)的通信效率,Socket接收采用消息機制接收,保證了響應的快速性。
手機客戶機首先讀取初始化文件(Ini.txt)中的數(shù)據(jù)流并成功分離出IP地址和通信端口號后,創(chuàng)建套接字Socket向服務器發(fā)出連接申請,然后一直等待接收服務器的信息。服務器接收到客戶機的連接請求后,獲取該客戶機的IP地址和端口號,然后定時向客戶機發(fā)送8個水域的水質(zhì)參數(shù)信息。接收數(shù)據(jù)以握手字符AA開始,BB結(jié)束。
具體格式為:AA:1#水域溫度,1#水域pH,1#水域水位,1#水域溶氧度,1#水域鹽度,1#水域流速,…,8#水域溫度,8#水域pH,8#水域水位,8#水域溶氧度,8#水域鹽度,8#水域流速,BB。每個數(shù)據(jù)占4個字節(jié),發(fā)送和接收數(shù)據(jù)都以數(shù)據(jù)流的方式進行,對待發(fā)送或者已接收的數(shù)據(jù)采用GB2312編碼方式進行編碼轉(zhuǎn)換。在執(zhí)行通信程序時在配置文件Manifest.xml中要申明權限。
4 系統(tǒng)試驗結(jié)果
利用本系統(tǒng)在江蘇省溧陽市長蕩湖河蟹試驗基地30 m×30 m魚塘進行試驗,實時獲取溫度、pH、水位、溶氧度、鹽度、流速信息,保存入數(shù)據(jù)庫,以文本方式進行數(shù)據(jù)導出并進行數(shù)據(jù)分析比對。通過數(shù)據(jù)比對可以看出,在24 h內(nèi),通過本水質(zhì)參數(shù)多點監(jiān)測報警系統(tǒng),可以實時在線獲取多個水域的溫度、pH、水位、溶氧度、鹽度、流速信息,在參數(shù)指標超限的情況下能準時報警提示,達到了系統(tǒng)設計要求。
5 結(jié)論
通過本監(jiān)測報警系統(tǒng)長時間的使用測試表明,系統(tǒng)運行穩(wěn)定,不死機,操作界面靈活,控制方便,擺脫了時間、地域環(huán)境等因素的影響,只要有GPRS網(wǎng)絡信號就能同時對多個水域進行在線監(jiān)測并自動報警,對網(wǎng)絡信號要求低,具有很高的性價比,在江蘇省高校優(yōu)勢學科建設工程資助項目以及江蘇省經(jīng)濟和信息化委員會智能農(nóng)業(yè)物聯(lián)網(wǎng)應用示范等項目中都得到了廣泛的應用,具有很強的推廣和實用價值。
參考文獻:
[1] 劉東紅,周建偉,莫凌飛.物聯(lián)網(wǎng)技術在食品及農(nóng)產(chǎn)品中應用的研究進展[J].農(nóng)業(yè)機械學報,2012,43(1):146-152.
[2] 賈保先,謝圣獻.物聯(lián)網(wǎng)發(fā)展關鍵技術研究[J].自動化儀表,2012,33(3):35-37.
[3] 冷淑君,徐衛(wèi)紅.基于物聯(lián)網(wǎng)技術水資源環(huán)境監(jiān)測仿真研究[J].計算機仿真,2012,29(2):131-134,228.
[4] 柳平增,孟祥偉,田 盼,等.基于物聯(lián)網(wǎng)的精準農(nóng)業(yè)信息感知系統(tǒng)設計[J].計算機工程與科學,2012,34(3):137-141.
[5] 李 華,李文秀.無線傳感器網(wǎng)絡技術在養(yǎng)殖業(yè)污染監(jiān)測上的應用[J].漁業(yè)現(xiàn)代化,2008,35(2):28-31.
[6] 楊林楠,郜魯濤,林爾升,等.基于Android系統(tǒng)手機的甜玉米病蟲害智能診斷系統(tǒng)[J].農(nóng)業(yè)工程學報,2012,28(18):163-168.
[7] GUO B, ZHANG D Q, YU Z W, et al. From the internet of things to embedded intelligence[J]. World Wide Web,2013, 16(4):399-420.
[8] 江燕良.基于Android智能終端的遠程控制系統(tǒng)[J].電子技術應用,2012,38(8):129-132.
[9] 韓 迪,潘志宏.基于Android移動設備傳感器的體感應用[J]. 華南理工大學學報(自然科學版),2012,40(9):75-80.
[10] 詹成國,朱 偉,徐 敏.基于Android的測控裝置人機界面的設計與開發(fā)[J].電力自動化設備,2012,32(1):119-122.
[11] 史 兵,趙德安,劉星橋,等.工廠化水產(chǎn)養(yǎng)殖智能監(jiān)控系統(tǒng)設計[J].農(nóng)業(yè)機械學報,2011,42(9):191-196.
[12] 宋 文.無線傳感器網(wǎng)絡技術與應用[M].北京:電子工業(yè)出版社,2007.
[13] 孫玉文,沈明霞,張祥甫,等.基于嵌入式ZigBee技術的農(nóng)田信息服務系統(tǒng)設計[J].農(nóng)業(yè)機械學報,2010,41(5):148-151.
[14] 史 兵,趙德安,劉星橋,等.基于無線傳感網(wǎng)絡的規(guī)?;a(chǎn)養(yǎng)殖智能監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,27(9):136-140.
[15] 宦 娟,劉星橋,程立強,等.基于ZigBee的水產(chǎn)養(yǎng)殖水環(huán)境無線監(jiān)控系統(tǒng)設計[J].漁業(yè)現(xiàn)代化,2012,39(1):34-39.
[16] 韓 超,梁 泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[17] 尚明華,秦磊磊,王風云,等.基于Android智能手機的小麥生產(chǎn)風險信息采集系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,27(5):178-182.
String wd_down1=SpStr[7];
…
最后在讀寫SD卡文件時要在配置文件Manifest.xml中申明權限,否則無法使用。
3.4 數(shù)據(jù)庫模塊設計
系統(tǒng)采用Android自帶的SQLite數(shù)據(jù)庫,SQLite數(shù)據(jù)庫具有系統(tǒng)開銷小,檢索效率高的特性,系統(tǒng)中兩處使用到數(shù)據(jù)庫,一處是用戶登錄時,用來保存用戶名稱和密碼;另外一處是在系統(tǒng)運行時,用來保存8個水域的各個水質(zhì)參數(shù)信息。Android不自動提供數(shù)據(jù)庫。在Android應用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表、索引,填充數(shù)據(jù)。因此要創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建兩個表,如表1和表2所示。在Android中主要有兩種方法來實現(xiàn)對數(shù)據(jù)庫的訪問,一種是Adb shell方式,另一種是通過相關的Android的Java類來間接地對數(shù)據(jù)庫進行操作。本設計主要采用后一種方式,采用抽象類SQLiteOpenHelper來創(chuàng)建數(shù)據(jù)庫。SQLiteOpenHelper類根據(jù)開發(fā)應用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫使用的邏輯。SQLiteOpenHelper的子類,實現(xiàn)需要以下方法:
OnCreate()方法;
//創(chuàng)建數(shù)據(jù)庫后,對數(shù)據(jù)庫的操作
通過SQLiteDatabase類來實現(xiàn)數(shù)據(jù)庫的插入數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù)、修改數(shù)據(jù)等操作。當完成了對數(shù)據(jù)庫的操作后,調(diào)用SQLiteDatabase的Close( )方法來釋放掉數(shù)據(jù)庫連接。
3.5 網(wǎng)絡通信模塊設計
系統(tǒng)通信模塊主要采用Socket網(wǎng)絡通信方式。套接字(Socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡通信的基本操作單元。創(chuàng)建Socket連接時,可以指定使用的傳輸層協(xié)議,Socket支持兩種不同的傳輸層協(xié)議:TCP和UDP協(xié)議。TCP協(xié)議:首先連接接收方,然后發(fā)送數(shù)據(jù),保證成功率,速度慢;UDP協(xié)議:把數(shù)據(jù)打包成數(shù)據(jù)包,然后直接發(fā)送到對應的IP地址,速度快,但是成功率得不到保證,并且數(shù)據(jù)大小有限。考慮到數(shù)據(jù)安全,本系統(tǒng)設計采用TCP協(xié)議,為了提高系統(tǒng)的通信效率,Socket接收采用消息機制接收,保證了響應的快速性。
手機客戶機首先讀取初始化文件(Ini.txt)中的數(shù)據(jù)流并成功分離出IP地址和通信端口號后,創(chuàng)建套接字Socket向服務器發(fā)出連接申請,然后一直等待接收服務器的信息。服務器接收到客戶機的連接請求后,獲取該客戶機的IP地址和端口號,然后定時向客戶機發(fā)送8個水域的水質(zhì)參數(shù)信息。接收數(shù)據(jù)以握手字符AA開始,BB結(jié)束。
具體格式為:AA:1#水域溫度,1#水域pH,1#水域水位,1#水域溶氧度,1#水域鹽度,1#水域流速,…,8#水域溫度,8#水域pH,8#水域水位,8#水域溶氧度,8#水域鹽度,8#水域流速,BB。每個數(shù)據(jù)占4個字節(jié),發(fā)送和接收數(shù)據(jù)都以數(shù)據(jù)流的方式進行,對待發(fā)送或者已接收的數(shù)據(jù)采用GB2312編碼方式進行編碼轉(zhuǎn)換。在執(zhí)行通信程序時在配置文件Manifest.xml中要申明權限。
4 系統(tǒng)試驗結(jié)果
利用本系統(tǒng)在江蘇省溧陽市長蕩湖河蟹試驗基地30 m×30 m魚塘進行試驗,實時獲取溫度、pH、水位、溶氧度、鹽度、流速信息,保存入數(shù)據(jù)庫,以文本方式進行數(shù)據(jù)導出并進行數(shù)據(jù)分析比對。通過數(shù)據(jù)比對可以看出,在24 h內(nèi),通過本水質(zhì)參數(shù)多點監(jiān)測報警系統(tǒng),可以實時在線獲取多個水域的溫度、pH、水位、溶氧度、鹽度、流速信息,在參數(shù)指標超限的情況下能準時報警提示,達到了系統(tǒng)設計要求。
5 結(jié)論
通過本監(jiān)測報警系統(tǒng)長時間的使用測試表明,系統(tǒng)運行穩(wěn)定,不死機,操作界面靈活,控制方便,擺脫了時間、地域環(huán)境等因素的影響,只要有GPRS網(wǎng)絡信號就能同時對多個水域進行在線監(jiān)測并自動報警,對網(wǎng)絡信號要求低,具有很高的性價比,在江蘇省高校優(yōu)勢學科建設工程資助項目以及江蘇省經(jīng)濟和信息化委員會智能農(nóng)業(yè)物聯(lián)網(wǎng)應用示范等項目中都得到了廣泛的應用,具有很強的推廣和實用價值。
參考文獻:
[1] 劉東紅,周建偉,莫凌飛.物聯(lián)網(wǎng)技術在食品及農(nóng)產(chǎn)品中應用的研究進展[J].農(nóng)業(yè)機械學報,2012,43(1):146-152.
[2] 賈保先,謝圣獻.物聯(lián)網(wǎng)發(fā)展關鍵技術研究[J].自動化儀表,2012,33(3):35-37.
[3] 冷淑君,徐衛(wèi)紅.基于物聯(lián)網(wǎng)技術水資源環(huán)境監(jiān)測仿真研究[J].計算機仿真,2012,29(2):131-134,228.
[4] 柳平增,孟祥偉,田 盼,等.基于物聯(lián)網(wǎng)的精準農(nóng)業(yè)信息感知系統(tǒng)設計[J].計算機工程與科學,2012,34(3):137-141.
[5] 李 華,李文秀.無線傳感器網(wǎng)絡技術在養(yǎng)殖業(yè)污染監(jiān)測上的應用[J].漁業(yè)現(xiàn)代化,2008,35(2):28-31.
[6] 楊林楠,郜魯濤,林爾升,等.基于Android系統(tǒng)手機的甜玉米病蟲害智能診斷系統(tǒng)[J].農(nóng)業(yè)工程學報,2012,28(18):163-168.
[7] GUO B, ZHANG D Q, YU Z W, et al. From the internet of things to embedded intelligence[J]. World Wide Web,2013, 16(4):399-420.
[8] 江燕良.基于Android智能終端的遠程控制系統(tǒng)[J].電子技術應用,2012,38(8):129-132.
[9] 韓 迪,潘志宏.基于Android移動設備傳感器的體感應用[J]. 華南理工大學學報(自然科學版),2012,40(9):75-80.
[10] 詹成國,朱 偉,徐 敏.基于Android的測控裝置人機界面的設計與開發(fā)[J].電力自動化設備,2012,32(1):119-122.
[11] 史 兵,趙德安,劉星橋,等.工廠化水產(chǎn)養(yǎng)殖智能監(jiān)控系統(tǒng)設計[J].農(nóng)業(yè)機械學報,2011,42(9):191-196.
[12] 宋 文.無線傳感器網(wǎng)絡技術與應用[M].北京:電子工業(yè)出版社,2007.
[13] 孫玉文,沈明霞,張祥甫,等.基于嵌入式ZigBee技術的農(nóng)田信息服務系統(tǒng)設計[J].農(nóng)業(yè)機械學報,2010,41(5):148-151.
[14] 史 兵,趙德安,劉星橋,等.基于無線傳感網(wǎng)絡的規(guī)模化水產(chǎn)養(yǎng)殖智能監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,27(9):136-140.
[15] 宦 娟,劉星橋,程立強,等.基于ZigBee的水產(chǎn)養(yǎng)殖水環(huán)境無線監(jiān)控系統(tǒng)設計[J].漁業(yè)現(xiàn)代化,2012,39(1):34-39.
[16] 韓 超,梁 泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[17] 尚明華,秦磊磊,王風云,等.基于Android智能手機的小麥生產(chǎn)風險信息采集系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,27(5):178-182.
String wd_down1=SpStr[7];
…
最后在讀寫SD卡文件時要在配置文件Manifest.xml中申明權限,否則無法使用。
3.4 數(shù)據(jù)庫模塊設計
系統(tǒng)采用Android自帶的SQLite數(shù)據(jù)庫,SQLite數(shù)據(jù)庫具有系統(tǒng)開銷小,檢索效率高的特性,系統(tǒng)中兩處使用到數(shù)據(jù)庫,一處是用戶登錄時,用來保存用戶名稱和密碼;另外一處是在系統(tǒng)運行時,用來保存8個水域的各個水質(zhì)參數(shù)信息。Android不自動提供數(shù)據(jù)庫。在Android應用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表、索引,填充數(shù)據(jù)。因此要創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建兩個表,如表1和表2所示。在Android中主要有兩種方法來實現(xiàn)對數(shù)據(jù)庫的訪問,一種是Adb shell方式,另一種是通過相關的Android的Java類來間接地對數(shù)據(jù)庫進行操作。本設計主要采用后一種方式,采用抽象類SQLiteOpenHelper來創(chuàng)建數(shù)據(jù)庫。SQLiteOpenHelper類根據(jù)開發(fā)應用程序的需要,封裝了創(chuàng)建和更新數(shù)據(jù)庫使用的邏輯。SQLiteOpenHelper的子類,實現(xiàn)需要以下方法:
OnCreate()方法;
//創(chuàng)建數(shù)據(jù)庫后,對數(shù)據(jù)庫的操作
通過SQLiteDatabase類來實現(xiàn)數(shù)據(jù)庫的插入數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù)、修改數(shù)據(jù)等操作。當完成了對數(shù)據(jù)庫的操作后,調(diào)用SQLiteDatabase的Close( )方法來釋放掉數(shù)據(jù)庫連接。
3.5 網(wǎng)絡通信模塊設計
系統(tǒng)通信模塊主要采用Socket網(wǎng)絡通信方式。套接字(Socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡通信的基本操作單元。創(chuàng)建Socket連接時,可以指定使用的傳輸層協(xié)議,Socket支持兩種不同的傳輸層協(xié)議:TCP和UDP協(xié)議。TCP協(xié)議:首先連接接收方,然后發(fā)送數(shù)據(jù),保證成功率,速度慢;UDP協(xié)議:把數(shù)據(jù)打包成數(shù)據(jù)包,然后直接發(fā)送到對應的IP地址,速度快,但是成功率得不到保證,并且數(shù)據(jù)大小有限??紤]到數(shù)據(jù)安全,本系統(tǒng)設計采用TCP協(xié)議,為了提高系統(tǒng)的通信效率,Socket接收采用消息機制接收,保證了響應的快速性。
手機客戶機首先讀取初始化文件(Ini.txt)中的數(shù)據(jù)流并成功分離出IP地址和通信端口號后,創(chuàng)建套接字Socket向服務器發(fā)出連接申請,然后一直等待接收服務器的信息。服務器接收到客戶機的連接請求后,獲取該客戶機的IP地址和端口號,然后定時向客戶機發(fā)送8個水域的水質(zhì)參數(shù)信息。接收數(shù)據(jù)以握手字符AA開始,BB結(jié)束。
具體格式為:AA:1#水域溫度,1#水域pH,1#水域水位,1#水域溶氧度,1#水域鹽度,1#水域流速,…,8#水域溫度,8#水域pH,8#水域水位,8#水域溶氧度,8#水域鹽度,8#水域流速,BB。每個數(shù)據(jù)占4個字節(jié),發(fā)送和接收數(shù)據(jù)都以數(shù)據(jù)流的方式進行,對待發(fā)送或者已接收的數(shù)據(jù)采用GB2312編碼方式進行編碼轉(zhuǎn)換。在執(zhí)行通信程序時在配置文件Manifest.xml中要申明權限。
4 系統(tǒng)試驗結(jié)果
利用本系統(tǒng)在江蘇省溧陽市長蕩湖河蟹試驗基地30 m×30 m魚塘進行試驗,實時獲取溫度、pH、水位、溶氧度、鹽度、流速信息,保存入數(shù)據(jù)庫,以文本方式進行數(shù)據(jù)導出并進行數(shù)據(jù)分析比對。通過數(shù)據(jù)比對可以看出,在24 h內(nèi),通過本水質(zhì)參數(shù)多點監(jiān)測報警系統(tǒng),可以實時在線獲取多個水域的溫度、pH、水位、溶氧度、鹽度、流速信息,在參數(shù)指標超限的情況下能準時報警提示,達到了系統(tǒng)設計要求。
5 結(jié)論
通過本監(jiān)測報警系統(tǒng)長時間的使用測試表明,系統(tǒng)運行穩(wěn)定,不死機,操作界面靈活,控制方便,擺脫了時間、地域環(huán)境等因素的影響,只要有GPRS網(wǎng)絡信號就能同時對多個水域進行在線監(jiān)測并自動報警,對網(wǎng)絡信號要求低,具有很高的性價比,在江蘇省高校優(yōu)勢學科建設工程資助項目以及江蘇省經(jīng)濟和信息化委員會智能農(nóng)業(yè)物聯(lián)網(wǎng)應用示范等項目中都得到了廣泛的應用,具有很強的推廣和實用價值。
參考文獻:
[1] 劉東紅,周建偉,莫凌飛.物聯(lián)網(wǎng)技術在食品及農(nóng)產(chǎn)品中應用的研究進展[J].農(nóng)業(yè)機械學報,2012,43(1):146-152.
[2] 賈保先,謝圣獻.物聯(lián)網(wǎng)發(fā)展關鍵技術研究[J].自動化儀表,2012,33(3):35-37.
[3] 冷淑君,徐衛(wèi)紅.基于物聯(lián)網(wǎng)技術水資源環(huán)境監(jiān)測仿真研究[J].計算機仿真,2012,29(2):131-134,228.
[4] 柳平增,孟祥偉,田 盼,等.基于物聯(lián)網(wǎng)的精準農(nóng)業(yè)信息感知系統(tǒng)設計[J].計算機工程與科學,2012,34(3):137-141.
[5] 李 華,李文秀.無線傳感器網(wǎng)絡技術在養(yǎng)殖業(yè)污染監(jiān)測上的應用[J].漁業(yè)現(xiàn)代化,2008,35(2):28-31.
[6] 楊林楠,郜魯濤,林爾升,等.基于Android系統(tǒng)手機的甜玉米病蟲害智能診斷系統(tǒng)[J].農(nóng)業(yè)工程學報,2012,28(18):163-168.
[7] GUO B, ZHANG D Q, YU Z W, et al. From the internet of things to embedded intelligence[J]. World Wide Web,2013, 16(4):399-420.
[8] 江燕良.基于Android智能終端的遠程控制系統(tǒng)[J].電子技術應用,2012,38(8):129-132.
[9] 韓 迪,潘志宏.基于Android移動設備傳感器的體感應用[J]. 華南理工大學學報(自然科學版),2012,40(9):75-80.
[10] 詹成國,朱 偉,徐 敏.基于Android的測控裝置人機界面的設計與開發(fā)[J].電力自動化設備,2012,32(1):119-122.
[11] 史 兵,趙德安,劉星橋,等.工廠化水產(chǎn)養(yǎng)殖智能監(jiān)控系統(tǒng)設計[J].農(nóng)業(yè)機械學報,2011,42(9):191-196.
[12] 宋 文.無線傳感器網(wǎng)絡技術與應用[M].北京:電子工業(yè)出版社,2007.
[13] 孫玉文,沈明霞,張祥甫,等.基于嵌入式ZigBee技術的農(nóng)田信息服務系統(tǒng)設計[J].農(nóng)業(yè)機械學報,2010,41(5):148-151.
[14] 史 兵,趙德安,劉星橋,等.基于無線傳感網(wǎng)絡的規(guī)?;a(chǎn)養(yǎng)殖智能監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,27(9):136-140.
[15] 宦 娟,劉星橋,程立強,等.基于ZigBee的水產(chǎn)養(yǎng)殖水環(huán)境無線監(jiān)控系統(tǒng)設計[J].漁業(yè)現(xiàn)代化,2012,39(1):34-39.
[16] 韓 超,梁 泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[17] 尚明華,秦磊磊,王風云,等.基于Android智能手機的小麥生產(chǎn)風險信息采集系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,27(5):178-182.