劉偉+張永輝+牛祺君+楊文迪
摘要:設計并實現了一種基于近場通信(near field communication,NFC)技術的熱帶農產品可追溯系統。該系統融合智能移動終端NFC技術和移動通信技術,結合MySQL數據庫,使用Google Android和Windows跨平臺開發。分析了系統架構和功能模塊具體設計,闡述了系統基于新型NFC技術的實現方法,通過試驗測試驗證了系統的可行性。
關鍵詞:近場通信;可追溯;熱帶農產品;Android;MySQL數據庫
中圖分類號: S126;TP391文獻標志碼: A文章編號:1002-1302(2017)23-0225-06
海南省作為國內熱帶農作物的核心產區,一直以盛產各類風味獨特、品質優良的熱帶農產品而聞名全國。但近年來由于各類食品安全問題的頻繁發生,導致廣大消費者對其信任度不斷降低,嚴重地削弱了用戶的購買意愿,阻礙了海南熱帶農產品產業的蓬勃發展。隨著物聯網技術的不斷革新與應用,急需通過先進的物聯網技術來建立一套安全可靠、使用便利的熱帶農產品可追溯系統,以提高熱帶農產品來源信息的可信度和透明度,為海南熱帶農產品的產銷和推廣提供堅實的技術保障。
本研究開發一種基于NFC技術的熱帶農產品可追溯系統,與傳統的條形碼或者二維碼可追溯系統不同,該系統不需要配備專用的讀寫設備就能完成對產品溯源信息的在線查詢[1-6]。消費者只需有1部內置NFC功能的智能手機,就能夠通過手機直接查詢產品信息,極大地方便了用戶的使用,從而使得該系統能真正被廣大用戶所接受。通過對可追溯信息的第三方保存以及訪問權限設置,保證可追溯信息的可靠性、真實性和公正性,為熱帶農產品的質量和安全問題提供一種高效便捷的解決方案[7]。
1系統概述
NFC熱帶農產品可追溯系統綜合了數據采集、數據分析、在線查詢、實時上傳、倉儲管理等多種功能。使用跨平臺技術開發,其中手機終端APP采用Google Android平臺開發,PC端應用基于Windows系統開發。融合GPRS、CDMA、3G和4G等移動通信技術,使用MySQL進行后臺數據庫管理[8]。其中,NFC手機終端APP所針對的群體是廣大消費者和農產品經銷商,主要用來讀取NFC電子標簽中所記錄的產品信息,實現信息的非接觸式移動采集功能。PC端應用軟件所針對的群體是農場主,主要用來將農產品的標識信息寫入NFC電子標簽中,同時將其余的產品信息通過網絡通信技術實時上傳到后端數據庫中,再由后臺管理系統對收集到的產品信息進行實時的管理。
1.1技術原理
NFC是一種標準的短距離無線連接技術,它基于RFID技術,利用磁場感應實現近距離電子設備之間的通信[9]。它的通信距離一般在10 cm左右,工作頻段為13.56 MHz。目前支持3種不同的數據傳輸速率,分別為106、212、424 kbit/s,能夠為用于安全數據傳輸驗證的識別協議提供一種無縫媒體[10]。因此用戶只需通過觸摸,或將裝置靠近,就能實現直觀、安全、非接觸式的交易,訪問數字內容,連接電子裝置[11]。對于使用NFC進行通信的2個裝置來說,必須有1個具備NFC讀寫器,另1個具備NFC標簽。標簽從根本上來說是一個集成電路,它載有數據,連接天線,通過讀寫器進行讀寫[12]。此外,NFC協議還提供了主動和被動2種通信模式。 在主動模式中, 2個裝置產生各自的無線電場進行數據傳輸。在被動模式中,只有1個裝置產生無線電場,而另1個使用加載調制進行數據傳輸。NFC協議規定,在后一種情況下,必須由啟動裝置產生無線電場[13]。NFC2種通信模式的原理圖分別如圖1和圖2所示。
1.2系統組成
整個系統由NFC智能移動終端APP、NFC電子標簽、Windows桌面客戶終端及后臺管理系統4個部分組成。其中,智能移動終端APP包括消費者端APP和經銷商端APP,消費者端APP主要用來實現對標簽信息的直接讀取,而經銷商端APP則在此基礎上增加了倉儲管理的功能。Windows桌面客戶終端主要用來實現在初始標簽中寫入產品信息,同時完成對寫入信息的實時上傳(圖3)。
1.3技術優勢
使用NFC電子標簽技術與傳統的條形碼技術相比,具有諸多優勢。主要體現在以下幾點:(1)讀取速度快。當使用的是條形碼時,掃描器需要對條碼逐一掃描,掃描速度慢,大批量處理時會很耗時;而NFC讀寫器讀寫速度快,可以一次性讀取數10個標簽中的產品信息。2種技術的處理速度如表1所示。(2)安全性有保障。NFC電子標簽是由天線和芯片組成的,數據采用電子方式進行存儲,支持多種電子加密方式。而傳統的條形碼基本是明碼標識,一般沒有加密過程,安全性較差。(3)信號穿透性強,能實現無屏障讀取。由于NFC技術是通過電磁感應的方式來實現和電子標簽之間的數據通信和信息交互,因此只要讀寫設備和電子標簽在一定的距離范圍內,設備就能夠快速地讀取標簽中的信息。
2系統設計
2.1系統框架
首先,考慮到熱帶農產品的生產者(農場主)需要完成大批量的標簽信息寫入操作,使用手機APP會帶來諸多不便。因此,需要為農業生產者編寫PC端應用程序,使用PC端應用軟件和讀卡器將產品的標識信息寫入標簽中,同時將寫入的信息上傳至后臺管理系統。由農場主記錄的產品信息隨著供應鏈條傳送給下游的經銷商,經銷商則在此基礎上使用手機端APP來完成所需的倉儲管理功能。對于供應鏈條的末端群體(消費者)來說,他們只需要使用手機直接掃描NFC標簽,通過移動通信技術將掃描到的標識信息與后端MySQL中存儲的標識信息進行比對,待比對通過,就能在手機屏幕上看到該產品的溯源信息(圖4)。
2.2NFC電子標簽的選擇
NFC電子標簽用于NFC通信中小數據的交互,其中,可以存儲如URL、手機號碼或其他文本信息,NFC定義了4種不同的Tag類型,分別為Type1、Type2、Type3、Type4,表2為NFC論壇定義的4種Tag類型的比較情況。endprint
從性價比的角度考慮,系統選用的電子標簽是Type1類型的,它是基于ISO-14443A標準。該類型的電子標簽是可讀可寫標簽,也可以配置成只讀模式,具有96 byte內存,可擴展到2 kB,傳輸速率可達106 kbit/s,支持數字簽名,大大提高了數據存取的安全性。鑒于標簽存儲容量有限, 系統在標簽中僅僅寫入產品編碼、數字簽名這樣的標識信息和防偽驗證信息,將農產品的其余信息全部存儲于后端MySQL數據庫
2.3系統功能模塊設計
2.3.1農場主信息寫入模塊該模塊的設計服務對象是農場主,農場主利用PC端應用軟件和讀卡器完成對產品信息的寫入操作。由于NFC電子標簽的內存較小,故只將產品的標識信息寫入標簽中保存。標識信息是每件農產品唯一的標識符:產品編碼。同時,將農產品的其他相關信息上傳至后端數據庫中保存,例如產地、生產日期、保質期、施藥記錄、產品質量等信息。這樣就能保證每個標簽中記錄的唯一產品標識都在后端數據庫中有唯一的1條記錄與之對應,通過匹配產品標識,便能查詢與之對應的產品信息。本系統采用的產品編碼是EPC-96編碼,各字段的含義如表3所示。
其中,版本號即標志EPC的版本和結構;域名管理碼描述與此EPC相關的農產品生產廠商的信息,也叫廠商識別碼,用來區分農場品的生產商(農場主),例如“海南春光果蔬有限公司”,針對每個農場主,域名管理碼是唯一的[14]。對象分類碼可區別農產品的種類,用來區分同一農場下的不同農產品種類,例如“有機蔬菜-小青菜100 g”,它也是唯一的。序列號用來區分具體的農產品批次,是唯一標識農產品貨運批次。
2.3.2消費者信息查詢模塊該模塊的設計服務對象是廣大消費者,消費者利用手機端APP來實現對標簽信息的查詢操作。此模塊的實現分為2個過程,首先要檢測手機內置的NFC功能是否成功開啟,然后再對農產品信息進行可追溯查詢。具體來說,當熱帶農產品可追溯應用APP啟動后,首先要檢測手機內置的NFC功能是否已經開啟,如果沒有開啟就提醒消費者開啟同時跳轉到設置NFC功能的管理界面。然后,手機掃描帶有產品標識信息的NFC電子標簽,通過移動通信技術將解析后的標簽信息送至后端數據庫中進行比對,待比對通過后,再將該標簽標識信息所對應的產品信息顯示于手機終端屏幕上。此模塊對應的時序圖如圖5所示。
2.3.3經銷商信息錄入模塊該模塊的設計服務對象是農產品經銷商,經銷商使用手機端APP來實現對標簽信息的讀取以及倉儲管理信息的錄入。經銷商讀取標簽信息的過程與消費者信息查詢模塊的流程基本相同。此外,經銷商還要使用手機端APP掃描產品標簽,將一些倉儲管理信息通過移動通信技術送至后端數據庫中保存,包括倉庫名稱、倉庫編號、溫濕度、庫存量等信息。
3系統實現方法
3.1讀寫標簽數據的實現
Android NFC支持前臺調度系統和標簽調度系統。其中,標簽調度系統是一種通過預先定義好的Tag或NDEF消息來啟動應用程序的機制,當掃描一個NFC Tag時,如果Intent中注冊了對應的應用程序,那么在處理該Tag消息時就會啟動該應用。當存在多個可以處理該Tag信息的應用時,系統會彈出一個Activity Choose,供用戶選擇開啟哪個應用(圖6)。
當NFC應用程序發現一個NFC Tag時,它就會啟動AndroidManifest.xml中定義好的對應的Activity,用戶可以在Activity中執行需要的操作。如圖6中所示,用戶可以定義ACTION_NDEF_DISCOVERED、ACTION_TAG_DISCOVERED和ACTION_TECH_DISCOVERED 3種不同的Intent調度類型。以ACTION_NDEF_DISCOVERED為例對讀操作進行說明。一般的讀操作主要包含3大部分,步驟及代碼框架如下:
if ( NfcAdapter.ACTION_NDEF_DISCOVERED.equals( getIntent( ).getAction( ) ) )
{
// 1定義Tag對象
Tag detectedTag=getIntent( ).getParcelableExtra(NfcAdapter.EXTRA_TAG);
// 2獲取NDEF消息
// your code in here...
// 3NDEF消息解析
// your code in here...
// 4最終真實數據展示和進一步操作
// your code in here...
}
以ACTION_NDEF_DISCOVERED為例對寫操作如下:
if( NfcAdapter.ACTION_NDEF_DISCOVERED.equals( getIntent( ).getAction( ) ) )
{
//Log Print
// 1定義Tag對象
Tag detectedTag=getIntent( ).getParcelableExtra(NfcAdapter.EXTRA_TAG);
// 2準備NDEF數據(注意將數據轉換為NDEF標注格式)
// your code in here...
// 3將NDEF數據寫入Tag
// your code in here...
} else
if(NfcAdapter.ACTION_TECH_DISCOVERED.equals( getIntent( ).getAction( ) ) )endprint
{
//Log Print
}else
if ( NfcAdapter.ACTION_Tag_DISCOVERED.equals( getIntent( ).getAction( ) ) )
{
//Log Print
}
3.2數據遠程訪問的實現
在Android應用開發中,使用C/S軟件系統體系結構,通過手機客戶端APP訪問服務器數據庫是很常見一種方法。為了實現手機客戶端APP與后端MySQl數據庫的遠程連接和通信,這里通過JDBC(Java DataBase Connectivity)技術在手機客戶端和服務器數據庫之間建立起良好的交互平臺。同時選擇JSON(JavaScript Object Notation)作為數據交互的方法。JSON是一種輕量級的數據交換格式[15],它是基于ECMAScript的一個子集。Android端訪問遠程服務器前端的JavaScript,JavaScript執行相應的數據庫操作,操作完成后再把結果經過JSON編碼返回給Android端,最后由Android端解析出結果[8]。
3.3數據庫的設計與實現
數據庫是整個系統設計中的關鍵部分,是熱帶農產品可追溯系統能否順利完成的關鍵所在。數據庫功能的實現情況,將會直接影響到系統功能的實現程度以及系統在運行時的效率。由于該系統的服務對象是廣大消費者、經銷商和農場主,且各類農產品的種類繁多,出產量大,產銷流程較為復雜,因此系統需要建立關系型數據庫來減少冗余,提高系統運行時的效率。根據需求分析,結合各功能模塊的具體設計,構造出該系統的基本E-R圖(圖7)。因篇幅有限,此E-R圖中各實體的屬性沒有全部標出,在后續的關系模型中會給出
具體的描述。
在此E-R圖的基礎上,轉換為相應的關系模型,主要有農場主(ID、用戶名、登陸密碼、手機號、郵箱、單位名稱、單位介紹)、農場(ID、農場主ID、農場名稱、農場編號、農場面積)、生產(農場ID、農產品ID、產量)、經銷商(ID、賬號、密碼、手機號、郵箱、企業名稱、企業介紹)、倉庫(ID、經銷商ID、倉庫名稱、倉庫編號、溫濕度)、庫存(倉庫ID、農產品ID、庫存量)、農產品(ID、農場ID、倉庫ID、名稱、產地、生產日期、保質期、施藥記錄、存儲條件、產品質量)。因此,每個表都有自己的主鍵,各個表通過外鍵進行聯系,進而建立查詢視圖[16],使得管理員查詢數據庫視圖便可追溯到相應的產品信息。按照確定出的關系模型,系統主要的數據表對應的數據字典如表4至表7所示。
消費者只要有1臺內置NFC功能的智能手機,通過手機端APP掃描NFC標簽,就能獲取該標簽所對應的產品信息,整個信息交互的過程對于消費者是全程透明的,操作簡單,成本低廉(圖9)。
經銷商作為產品產銷過程中的中間商,經銷商查詢產品信息的操作流程和消費者一樣,不僅要能夠查詢產品信息,還要將自身的倉儲管理信息錄入到后端數據庫中存儲(圖10)。
5結語
本研究分析了新型NFC技術的原理及其在可追溯系統中的重要應用,以海南熱帶農產品為服務對象,設計出了一套基于NFC技術的熱帶農產品可追溯系統,闡述了系統基于跨平臺技術的實現方法,實現了消費者在手機終端對農產品信息的實時追溯,操作簡單、成本低廉。該系統不僅為廣大消費者帶來了全新的信息化體驗,同時也提升了農產品供應鏈上的監督力度,簡化了產品經銷商的管理流程,為改善地區食品安全問題提供了一種高效便捷的新方法。雖然系統已經基本上實現了對農產品信息的有效追溯,但仍有很多地方需要繼續加以完善和改進。后續的研究將致力于將傳統的條形碼技術與新型的NFC技術相結合,使2種技術共同運用于可追溯
系統的研究設計中,提升系統的兼容性和穩定性,面向更加廣闊的市場。
參考文獻:
[1]白紅武,孫傳恒,丁維榮,等. 農產品溯源系統研究進展[J]. 江蘇農業科學,2013,41(4):1-4.
[2]劉曉珂,黃紅星,鄭業魯,等. 農產品追溯標識技術研究進展[J]. 江西農業學報,2014,26(10):89-93.
[3]陳瑤,陳光彩,李映志,等. 基于條形碼的可追溯植物組培苗生產管理系統開發[J]. 東南園藝,2015,3(1):42-47.
[4]李業博,湯池,羅二平,等. 基于條形碼技術構建高值耗材管理追溯系統[J]. 醫療衛生裝備,2015,36(4):141-143.
[5]藍龍輝,邱榮祖. 二維碼技術在農產品物流追溯系統中的應用[J]. 物流工程與管理,2013,35(9):86-89.
[6]劉佳. 基于二維碼的農產品質量安全可追溯系統構建[J]. 山東農業大學學報(自然科學版),2014,45(5):724-729.
[7]張友橋,呂昂,邵鵬飛. 一種基于NFC的農產品溯源系統[J]. 中國農機化學報,2015,36(2):145-149.
[8]蘇婕,王忠. 基于NFC技術的巡更巡檢管理系統的設計與實現[J]. 計算機工程與設計,2015,36(4):1068-1072.
[9]封紅旗,王娟琳,李俊華,等. 射頻識別技術手機智能卡的校園一卡通模式研究[J]. 現代教育技術,2011,21(1):122-124.
[10]李慶艷,張文安,謝云. NFC技術標準體系解密[J]. 電視技術,2013(6):62-68.
[11]Innovision. NFC forum:nfc_in_the_real_world_I[EB/OL].[2016-07-09]. http://www.nfc-forum.org/resourses/white_papers.
[12]蘇曉燕. 基于NFC技術的Android移動支付終端的設計與實現[D]. 成都:西南交通大學,2013.
[13]孫定. 近場通信呼之欲出[N]. 計算機世界,2011-05-30.
[14]黃葉玨. 基于NFC的茶葉防偽驗證可追溯系統的設計與研究[J]. 農村經濟與科技,2013,24(3):151-152,99.
[15]陳慶奎,周利珍. 基于HBase的大規模無線傳感網絡數據存儲系統[J]. 計算機應用,1977,32(7):1920-1923.
[16]李源,薛佳妮,李翠麗. 基于NFC標簽的水產養殖質量追溯系統設計[J]. 安徽農業科學,2014,42(30):10794-10797.江蘇農業科學2017年第45卷第23期趙麗,張信民,張寶芳,等. 基于微信平臺的智能溫室監控系統[J]. 江蘇農業科學,2017,45(23):231-235.endprint