武悅俊 劉日威 張冠文 倪樹標


0 引言
近年來,農(nóng)藥殘留量檢測技術(shù)發(fā)展至今已取得很大進展,但在傳統(tǒng)農(nóng)殘檢測設(shè)備的開發(fā)和維護中,往往是通過串口、以太網(wǎng)等有線的方式對儀器進行參數(shù)設(shè)置,獲取儀器的檢測數(shù)據(jù)。這就需要有線傳輸所依靠的各種線材,又需要安裝有專用軟件的個人電腦,否則終端用戶就只能手動錄入儀器的檢測數(shù)據(jù),不但效率低,而且很容易出錯。
本文針對中廣測NC系列農(nóng)藥殘留快速檢測儀,采用市場占有率最高的Android終端替代PC作為上位機來構(gòu)建數(shù)據(jù)的采集與維護系統(tǒng),可以很好地解決傳統(tǒng)的“有線+個人電腦”數(shù)據(jù)采集的弊端,使儀器更適應(yīng)外場工作,提高信息化水平。
1 系統(tǒng)架構(gòu)設(shè)計
本系統(tǒng)總體架構(gòu)的設(shè)計上采用面向移動終端的C/S模式,Android客戶端的設(shè)計上采用MVC模式,并應(yīng)用Web Service技術(shù)實現(xiàn)了客戶端與服務(wù)器端的數(shù)據(jù)交互。系統(tǒng)框架如圖1所示:
整個系統(tǒng)是由具有藍牙通信功能的農(nóng)藥殘留快速檢測儀、運行在Android上的移動客戶端和通過移動互聯(lián)網(wǎng)進行連接的中心服務(wù)器組成。Android起到了數(shù)據(jù)中轉(zhuǎn)的作用,是整個系統(tǒng)的核心。
檢測人員在現(xiàn)場按照農(nóng)殘檢測流程對農(nóng)產(chǎn)品樣品進行檢測,檢測數(shù)據(jù)通過儀器藍牙模塊發(fā)送到Android手機,手機將接收到的數(shù)據(jù)暫時存儲在系統(tǒng)自帶的SQLite數(shù)據(jù)庫里,可以對這些數(shù)據(jù)的附加信息進行編輯修改,并將這些暫存的數(shù)據(jù)通過4G或WLAN網(wǎng)絡(luò)上傳到中心服務(wù)器,最后將數(shù)據(jù)存儲在系統(tǒng)運營商的數(shù)據(jù)庫里,主管部門可以通過查看后臺數(shù)據(jù)庫對大量檢測點進行實時動態(tài)監(jiān)控。
2 移動客戶端設(shè)計
移動客戶端采用支持藍牙功能的Android平板電腦或手機,程序開發(fā)基于Android5.0系統(tǒng),開發(fā)平臺為PC,所用開發(fā)工具為Android Studio集成開發(fā)環(huán)境,移動客戶端整體功能設(shè)計如圖2所示:
(1)藍牙操作
藍牙操作模塊通過使用Android提供的藍牙API,實現(xiàn)查找并連接檢測儀器,讀取檢測數(shù)據(jù),設(shè)置儀器參數(shù)等功能。
(2)本地數(shù)據(jù)管理
本地數(shù)據(jù)管理模塊具有查詢、分類、匯總、統(tǒng)計和報表生成功能,包括將檢測數(shù)據(jù)存儲到手機,導出為Excel文件以及生成QR二維碼等。具有多種方式數(shù)據(jù)統(tǒng)計匯總功能,例如可以對某一時間段的檢測信息進行統(tǒng)計匯總,也可以對某一類農(nóng)產(chǎn)品的檢測信息進行統(tǒng)計匯總,還可以對某一檢測點的檢測信息進行統(tǒng)計匯總。
(3)用戶登錄
用戶登錄模塊主要用于用戶登錄服務(wù)器,只有用戶名和密碼驗證通過的用戶才可以更新或者下載數(shù)據(jù)。
(4)上傳下載
上傳模塊和下載模塊通過調(diào)用服務(wù)器端提供的Web Service接口API,進行檢測數(shù)據(jù)的網(wǎng)絡(luò)共享。
2.1基于藍牙的數(shù)據(jù)傳輸
Android應(yīng)用框架層提供了實現(xiàn)藍牙功能的API,通過它們可以實現(xiàn)與其他藍牙設(shè)備的無線通信,建立點到點的連接。農(nóng)藥殘留檢測儀的藍牙模塊選用的是HC-06,它與Android的通信方式使用SPP協(xié)議。
在Android應(yīng)用程序開發(fā)中,藍牙設(shè)備之間要建立連接,必須實現(xiàn)客戶端和服務(wù)器端代碼,分別用來開啟連接監(jiān)聽服務(wù)和發(fā)送連接請求。服務(wù)器端采用accept()方法接受連接,客戶端則采用connect()方法請求連接,由于這兩個方法都是阻塞調(diào)用,所以需要單獨的線程來管理連接。SPP協(xié)議的UUID為00001101-0000-1000-8000-00805F9B34FB,使用此UUID創(chuàng)建套接字并連接,直到當它們都擁有一個藍牙套接字在同一RFCOMM信道上時,說明它們之間連接成功,然后就可以實現(xiàn)設(shè)備之間數(shù)據(jù)的共享,同樣,數(shù)據(jù)的讀取和寫入操作也是阻塞調(diào)用,需要建立一個獨立的線程來進行操作。
2.2數(shù)據(jù)庫存儲
數(shù)據(jù)庫管理模塊提供數(shù)據(jù)庫創(chuàng)建、更新、查詢和刪除功能,用來暫存從檢測儀器接收來的數(shù)據(jù),以便后續(xù)通過網(wǎng)絡(luò)共享。在Android智能手機上,使用開源的、與操作系統(tǒng)無關(guān)的嵌入式SQL數(shù)據(jù)庫SQLite3來存儲檢測數(shù)據(jù)。
根據(jù)需求,客戶端數(shù)據(jù)庫的設(shè)計包含6張表:t_checkresult,t_checktype,t_goods, t_overflows,t_source,t_vendor,分別用來存儲檢測數(shù)據(jù)、檢測類型、樣品名稱、超標限值、被檢測單位信息、檢測單位信息。t_checkresult表的結(jié)構(gòu)說明如表1所示。
3 服務(wù)器端設(shè)計
移動客戶端不直接訪問中心數(shù)據(jù)庫,而是引入了Web Service接口作為業(yè)務(wù)邏輯層,客戶端將本地暫存的檢測數(shù)據(jù)先通過報文的形式發(fā)送給Web Service,Web Service接收處理后更新數(shù)據(jù)庫,從而實現(xiàn)了數(shù)據(jù)的分布式處理。
Web Service即Web服務(wù),是用標準的規(guī)范的基于XML的WDSL語言描述的,它向外界暴露出一個能夠通過Web進行調(diào)用的API,使得程序員能夠通過標準化的消息傳遞機制來訪問這個的API。通過Web Service系統(tǒng)可以非常靈活的部署和升級維護。
本文在.NET框架的支持下,采用ASP.NET和C#語言,開發(fā)了數(shù)據(jù)交換接口,通過IIS部署Web Service,中心數(shù)據(jù)庫系統(tǒng)選用SQL Server 2008。
提供管理員和普通用戶兩種賬戶類型,管理員賬戶具有最高權(quán)限,不僅具有普通用戶基本的數(shù)據(jù)上傳下載功能,也可以對其他用戶賬戶進行操作,如對其轄區(qū)內(nèi)用戶的檢測信息進行統(tǒng)計匯總,添加用戶、修改用戶、刪除用戶和更改用戶權(quán)限等。
系統(tǒng)對外接口訪問地址:http://ip:port/services/ptcck.asmx。其中ip表示W(wǎng)eb服務(wù)器的網(wǎng)絡(luò)地址,port表示提供Web服務(wù)的端口號。系統(tǒng)對外接口包括查詢接口和寫入接口,例如:
獲取某用戶一段時間內(nèi)的檢測信息
public string[] selectUserDayCheckResult(string vendorid, string startday, string endday)
4 結(jié)語
本文結(jié)合智能手機廣泛應(yīng)用的優(yōu)勢,設(shè)計開發(fā)了基于Android終端的采集和報送系統(tǒng),實現(xiàn)了智能的農(nóng)產(chǎn)品安全監(jiān)控網(wǎng)絡(luò)。使用藍牙技術(shù)采集農(nóng)藥殘留檢測數(shù)據(jù),然后通過移動通信技術(shù)傳輸,解決了傳統(tǒng)有線采集傳輸模式的弊端,使儀器在現(xiàn)場的使用更加方便快捷,提高了工作效率。本系統(tǒng)有較強的實用性,對今后設(shè)計集成化更高的智能儀器也有一定的參考意義。