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