游兆彤 孔亞廣 陳天鈞 胡曉飛
(1浙江省農(nóng)科院病毒學與生物技術研究所,杭州310021;2杭州電子科技大學信息與控制研究所,310018)
當前,我國蜂產(chǎn)業(yè)仍延續(xù)采用傳統(tǒng)的生產(chǎn)方式,導致整個生產(chǎn)過程沒有標準和規(guī)范,蜂農(nóng)操作的隨意性、蜂企加工的自動化程度低等,使得實現(xiàn)蜂產(chǎn)品質(zhì)量的全程追溯變得毫無基礎[1]。針對蜂農(nóng)的生產(chǎn)而言,存在如下幾個問題:(1)沒有飼養(yǎng)管理記錄或檔案,有些即便有檔案也很不規(guī)范、缺乏定量化描述,無法達到追溯分析和產(chǎn)品質(zhì)量管理的標準;(2)缺乏對蜂農(nóng)飼養(yǎng)全流程、蜜源地環(huán)境、物流及收購等信息的采集,沒有充分挖掘數(shù)據(jù)間的關聯(lián)信息,從而使得數(shù)據(jù)的有效性和可利用性大為降低。
本文針對蜂產(chǎn)品養(yǎng)殖過程的全流程基礎信息的采集及傳輸,提出并設計開發(fā)了基于Android智能手機的蜂產(chǎn)品基礎信息采集系統(tǒng)(BIAS)。該系統(tǒng)充分利用了當前物聯(lián)網(wǎng)領域的關鍵技術,實現(xiàn)了蜂農(nóng)養(yǎng)殖環(huán)境的實施采集、存儲及傳輸,為后續(xù)進行蜂產(chǎn)品全程質(zhì)量追溯系統(tǒng)建立了數(shù)據(jù)基礎,具有十分重要的意義。
本系統(tǒng)采用客戶端/服務器的架構??蛻舳藶榛贏ndroid系統(tǒng)的智能手機,負責數(shù)據(jù)信息采集、存儲及傳輸。服務器端基于Asp.Net平臺用C#語言建立了蜂產(chǎn)品質(zhì)量追溯平臺[2]。本文重點描述客戶端軟件的設計及實現(xiàn)。
客戶端軟件的開發(fā)需要建立Android SDK+Java JDK 6+Eclipse 3.5的開發(fā)環(huán)境??蛻舳藴y試樣機采用中興N880S智能手機。系統(tǒng)運行基本流程如下:(1)通過智能手機蜂農(nóng)記錄每天的養(yǎng)蜂信息,并經(jīng)由CDMA/GSM網(wǎng)絡,上傳給服務器存入相應數(shù)據(jù)庫;(2)合作社負責人使用智能手機掃描蜂產(chǎn)品的條形碼、登記蜂產(chǎn)品的相關收購信息并經(jīng)過CDMA/GSM網(wǎng)絡將相關信息上傳給服務器;(3)蜂產(chǎn)品加工單位采用本項目所提供的自動化監(jiān)控產(chǎn)品進行加工全流程的操作及監(jiān)控,將加工過程全信息通過Modbus TCP/IP上傳給服務器;(4)通過蜂產(chǎn)品全程質(zhì)量追溯平臺,企業(yè)管理人員可以實時查看和追溯產(chǎn)品全流程信息,同時顧客既可通過瀏覽器在PC端也可在手機端通過掃描條形碼實時查看蜂產(chǎn)品從原料——半成品——成品的全程質(zhì)量信息。系統(tǒng)總體設計如圖 1[3,4]。
圖1 蜂產(chǎn)品基礎信息采集系統(tǒng)總體框架
在智能手機,本項目開發(fā)了面向蜂農(nóng)、合作社和顧客的三類軟件,本文重點介紹蜂農(nóng)養(yǎng)蜂日志軟件。蜂農(nóng)養(yǎng)蜂日志軟件可分為一般信息采集、環(huán)境信息采集、圖像信息采集三大組成成分。蜂農(nóng)養(yǎng)蜂日志信息采集處理采用多線程模式,一方面將采集的數(shù)據(jù)實時傳輸并存儲于服務器,另一方面在智能手機本地數(shù)據(jù)庫中預存了近三個月的數(shù)據(jù)。該方法既可使蜂農(nóng)方便查詢自身發(fā)送記錄,也可采集地點無3G信號或3G通道中斷的情況下,可以在3G信號恢復后將存儲在手機中被標記為未上傳成功的數(shù)據(jù)再次上傳到服務器端[5,6,7]。圖3詳細描述了養(yǎng)蜂日志客戶端軟件的操作流程。
圖2 客戶端功能框架示意
本系統(tǒng)中我們將其內(nèi)容根據(jù)需求進行了規(guī)范化的處理,把養(yǎng)蜂日志分為蜂群管理、蜂病防治、蜂產(chǎn)品生產(chǎn)和蜂機具消毒四大塊[8,9]。同時,將蜂群管理細分成春夏秋冬四個季節(jié),蜂病防治、蜂產(chǎn)品生產(chǎn),蜂機具消毒模塊也是進行了類似的設計。為方便蜂農(nóng)操作,軟件界面進行了人性化設計,以按鈕、選擇框等操作形式為主。圖4展示了一般信息采集的基本界面。
圖3 客戶端操作流程示意
由于蜜源地環(huán)境是密切影響蜂產(chǎn)品原料的質(zhì)量因素。為此利用Android手機的GPS功能,自動獲取蜂農(nóng)所處的空間信息,然后獲得對應點的氣象信息,與其他信息一起發(fā)送到服務器端。本文通過Android手機LocationManager[10,11]系統(tǒng)服務自動獲得地理信息。LocationManager是獲得位置服務的核心組件,它提供了完整的一連串方法來處理與位置相關的問題,包括查詢上一個已知位置、注冊和注銷來自某個Location-Provider的周期性的位置更新、注冊和注銷接近某個坐標時,對一個已定義的Intent觸發(fā)等。(1)LocationManager常用的獲取位置信息的方式(Provieder)有GPS和NETWORK。本文采用GPS技術來獲取地理信息。因為這樣更加精確,又考慮到項目中并不要求實時要求去啟動服務,而耗電方面也可以通過程序進行必要的開關延時等處理達到省電的要求;(2)位置監(jiān)聽器的接口LocationListener中定義了常見的Provider狀態(tài)變化和位置變化的方法,程序中需要實現(xiàn)此接口才能實現(xiàn)設計的處理邏輯,然后讓LocationManager來注冊這個監(jiān)聽器,這樣就可以對每一種位置狀態(tài)進行監(jiān)聽了。通過采用此方法,論文實現(xiàn)了地理位置數(shù)據(jù)的自動獲取,然后根據(jù)獲得的地理信息查詢相應氣象服務器以得到蜜源地環(huán)境的實時氣象數(shù)據(jù)。
圖4 一般信息采集
圖5 條形碼
如圖5所示,為了實現(xiàn)蜂農(nóng)養(yǎng)殖過程的準確監(jiān)控以及指導蜂農(nóng)養(yǎng)殖,需要利用智能手機的拍照功能來實現(xiàn)對蜂病實圖、蜜源植物等信息的獲取。養(yǎng)蜂日志客戶端軟件利用系統(tǒng)自帶的拍照功能,把采集的圖像信息存儲到手機SD存儲卡并與所有采集到的信息一起上傳到服務器端。整個過程實現(xiàn)如下:創(chuàng)建一個Activity類,同時實現(xiàn)該類的SurfaceHolder.Callback接口,該接口的作用是監(jiān)控攝像頭界面變化并獲得相應事件該類實現(xiàn)了三個方法:1)SurfaceChanged,用來監(jiān)聽界面的格式和大小的改變;2)SurfaceCreated,該方法監(jiān)聽第一次實例化即界面創(chuàng)建事件;3)SurfaceDestroyed,該方法在界面被銷毀的時候被調(diào)用。為了能夠正確獲得圖像數(shù)據(jù),客戶端使用了OnClickListener按鍵監(jiān)聽機制,當蜂農(nóng)按下“拍照”按鈕時,會通過PictureCall-Back方法來保存所拍攝圖像的字節(jié)數(shù)組,然后使用Android提供的文件I/O功能,將其從字節(jié)數(shù)組轉換成本文定義的格式,從而實現(xiàn)圖像信息的存儲和上傳。
在蜂產(chǎn)品基礎信息采集系統(tǒng)中還設計了對蜂農(nóng)的條碼用來記錄每個蜂農(nóng)生產(chǎn)蜂蜜、蜂王漿等原料產(chǎn)品的過程,條碼在整個系統(tǒng)中扮演了非常重要的角色,它是實現(xiàn)蜂產(chǎn)品質(zhì)量責任到蜂農(nóng)的關鍵。為方便計,條碼設計為一維碼,如圖5所示。其中65602代表蜂農(nóng)編號,12代表2012年,01為產(chǎn)品名稱類別,0代表包裝規(guī)格,最后002是產(chǎn)品序列號。在本系統(tǒng)中,條碼的數(shù)據(jù)讀取上傳時通過利用Android手機照相機強大的自動對焦去點功能,利用代碼實現(xiàn)將條形碼數(shù)據(jù)讀取和存儲并發(fā)送的。
采集數(shù)據(jù)的上傳使用Android智能手機的3G網(wǎng)絡。整個傳輸方式基于“Request-Response”的機制。第一,通過HttpClient類編程取得Android的Http的客戶端;第二,利用HttpPost類獲得HttpPost的一個實例對象;第三,使用既定的通信協(xié)議將需要上傳的數(shù)據(jù)由HttpClient客戶端的execute()方法來實現(xiàn)HttpPost Request;第四,在完成數(shù)據(jù)實時上傳后,客戶端取得服務器端發(fā)來的Response[12]。與此同時,客戶端軟件會自動將采集的數(shù)據(jù)存儲在手機內(nèi)建的數(shù)據(jù)庫中。
針對蜂產(chǎn)品全程質(zhì)量追溯的要求,本文提出并實現(xiàn)了基于Android智能手機的蜂產(chǎn)品基礎信息采集系統(tǒng),該系統(tǒng)具備對養(yǎng)蜂日志數(shù)據(jù)的完整采集和實時上傳等功能。系統(tǒng)對蜂產(chǎn)品生產(chǎn)的一般信息、環(huán)境信息和圖像信息以及條碼信息采集等進行了數(shù)據(jù)分類和優(yōu)化。在由于基于Android平臺開發(fā),在系統(tǒng)兼容性、用戶界面交互等方面表現(xiàn)良好。在長期的測試過程中系統(tǒng)運行穩(wěn)定、實時性好,得到了蜂農(nóng)、收購商及蜂企的好評,本文的工作為后續(xù)蜂產(chǎn)品質(zhì)量追溯平臺的全面實現(xiàn)打下了良好的基礎。
[1]宋心仿.解讀《中華人民共和國畜牧法》之四:蜂產(chǎn)品質(zhì)量安全引起高度重視[J].中國蜂業(yè),2006,57(10):37~38.
[2]Andrew Troelsen.C#與ASP.NET 4高級程序設計[M].北京:人民郵電出版社,2011.
[3]尚明華等.基于Android智能手機的小麥生產(chǎn)風險信息采集系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,5(5):178~182.
[4]胡順安,王書茂.智能化農(nóng)業(yè)信息遠程數(shù)據(jù)采集系統(tǒng)[J].機械,200 5 ,32(6):25~26.
[5]張淑娟,劉映剛,王鳳花,等.基于GPS的農(nóng)田信息采集與處理系統(tǒng)的設計與實現(xiàn)[J].山西農(nóng)業(yè)大學學報,2007,27(2):196~199.(2):196~199.
[6]張石銳等.基于GSM的農(nóng)產(chǎn)品價格采集系統(tǒng)的設計與實現(xiàn)[J].農(nóng)機化研究,2011,(9):193~196.
[7]王鳳花,張淑娟.精細農(nóng)業(yè)田間信息采集關鍵技術的研究進展[J].農(nóng)業(yè)機械學報,2008,39(5):112~121.
[8]陳廷珠,李樹軍.關于蜂產(chǎn)品安全生產(chǎn)可追溯體系建設的幾點建議[J].中國蜂業(yè),2008,59(3):42~43.
[9]Christophe C,Egizio V.Coordination for traceability in the food chain.A critical appraisal of European regulation[J].European Journal of Law and Economics,2008,25(1):1~15.
[10]楊文志.Google Android程序設計指南[M].北京:電子工業(yè)出版社,2010.
[11]良葛格.JAVA學習筆記[M].北京:清華大學出版社,2006.
[12]陳雷,劉嘉勇.基于HTTP協(xié)議的POST數(shù)據(jù)分析與還原[J].通信技術,2011,44(4):132~134.