王 明,陳 明,馮國富
(上海海洋大學 信息學院,上海201306)
基于嵌入式技術(shù)的貨架期指示器主要由溫度傳感器模塊和微處理器組成,預測模型將溫度值作為輸入?yún)?shù)計算得到貨架期。文獻[1,2]中設計的貨架期指示器采用串口與上位機進行通信,在產(chǎn)品運輸流通過程中,由于受到串口數(shù)據(jù)線的制約,存在數(shù)據(jù)傳輸不便的缺點,另外,基于私有通信協(xié)議射頻通信的貨架期指示器存在與其他應用集成難度高、數(shù)據(jù)格式不統(tǒng)一、設備升級困難等缺點。目前,在無線傳感器中采用Web服務交換數(shù)據(jù)已有研究和應用。文獻[3]描述了在智能集裝箱物流運輸系統(tǒng)中,利用嵌入式Web服務技術(shù)獲取集裝箱中傳感器的數(shù)值。文獻[4]研究了基于IP的無線傳感器網(wǎng)絡利用Web service技術(shù)與現(xiàn)有IT系統(tǒng)進行集成。
本文針對水產(chǎn)品貨架期監(jiān)測,提出以嵌入式Web服務技術(shù)構(gòu)建水產(chǎn)品剩余貨架期監(jiān)測系統(tǒng),開發(fā)了智能水產(chǎn)器貨架期指示器及其讀寫裝置。貨架期指示器底層通信協(xié)議采用TCP/IP,所有聯(lián)網(wǎng)設備皆可對其進行直接訪問。貨架期指示器通過Web服務向客戶提供當前剩余貨架期等信息,所有實現(xiàn)Http協(xié)議的客戶即可獲取,例如:Web瀏覽器。采用Web服務中間件的水產(chǎn)品貨架期監(jiān)測系統(tǒng)能夠輕松與第三方應用程序集成,開發(fā)出更多結(jié)構(gòu)復雜、功能強大的系統(tǒng)。
應用于冷鏈物流的水產(chǎn)品貨架期監(jiān)測系統(tǒng)由前端貨架期指示器與后端讀寫器兩部份組成。在水產(chǎn)品的冷鏈運輸過程中,同一批次的相同種類的水產(chǎn)品與一個指示器綁定,從開始運輸階段到被消費者購買階段都配有指示器對其監(jiān)控。水產(chǎn)品貨架期監(jiān)測系統(tǒng)負責監(jiān)測“從池塘到飯桌”整個過程的水產(chǎn)品質(zhì)量安全,主要包括貨物運輸、貨物儲藏、市場銷售3個主要流程的監(jiān)控,要求在貨物運輸交接過程中信息能夠一直保存,消費者購買時可對其信息查詢、追溯。
指示器主要有3個功能:1)預測剩余貨架期:水產(chǎn)品貨架期受環(huán)境影響較大,為了能夠準確地預測其剩余貨架期,需要指示器實時檢測周圍環(huán)境,并結(jié)合精確的預測模型計算出剩余貨架期;2)實時預警:指示器系統(tǒng)初始化時,設置溫度閾值,當環(huán)境溫度超過閾值時,指示器發(fā)出警報;3)歷史記錄:指示器外部存儲Flash記錄異常數(shù)據(jù),并將其傳輸至遠程服務器進行備份。當產(chǎn)品出現(xiàn)質(zhì)量問題時,可對其進行信息追溯,找出事故發(fā)生源頭。后端讀寫器通過無線射頻與前端指示器進行通信。指示器與讀寫器的通信協(xié)議采用uIPv6,客戶端程序以Web Service的方式向指示器發(fā)出請求,讀取剩余貨架期、歷史信息等數(shù)據(jù),最終通過讀寫器直接與指示器進行通信??蛻舳顺绦蛘埱笾甘酒鳙@取數(shù)據(jù)必須知道其IP地址。指示器的Ipv6地址有2種方法獲取:1)指示器初始化時設定;2)動態(tài)獲取。當讀寫器同時讀取多個指示器信息時,首先啟動DHCP伺服器功能,讀寫器為通信范圍內(nèi)的所有指示器(<255)分配唯一的IPv6地址,通過遍歷DHCP的IP地址池完成對所有指示器的訪問。動態(tài)分配IP技術(shù)適合多批貨物同時需要讀取的情況。系統(tǒng)總體構(gòu)成如圖1所示。
圖1 水產(chǎn)品貨架期監(jiān)測系統(tǒng)框圖Fig 1 Block diagram of shelf life monitoring system
水產(chǎn)品貨架期指示器由MSP430F1611微處理器、CC2420無線射頻、存儲模塊、溫度采集、時鐘、LCD、電源等部分組成。其中,MSP430F1611微處理器具有48 kB FLash,10 kB SRAM,功耗極低。CC2420工作頻帶為2.4 GHz,符合IEEE 802.15.4標準,性能穩(wěn)定,功耗極低。外部存儲采用MMC Card,用于存儲歷史警報數(shù)據(jù)等。溫度傳感器采用DB18B20。為了方便用戶直接查看貨架期信息,添加了LCD模塊。由于指示通常在低溫環(huán)境下工作,要求所有元器件在-15℃時能夠正常工作。ISPD的硬件框圖如圖2所示。
圖2 貨架期指示器硬件設計框圖Fig 2 Hardware design block diagram of shelf life indicator
讀寫器的設計在指示器的基礎上,去掉日歷時鐘、溫度傳感器、按鍵模塊、Flash存儲、LCD、電源等,保留核心模塊USB和CC2420。讀寫器主要功能是通過USB模塊將讀寫器配置為PC機的網(wǎng)絡適配器,采用串行線路網(wǎng)際協(xié)議,實現(xiàn)讀寫器與PC機基于TCP/IP的通信。
貨架期是指食品能夠滿足消費者需求品質(zhì)的保持時間。本系統(tǒng)采用基于3T(time-temperature-tolerance)理論[5]的貨架期預測算法,該算法的具體實現(xiàn)在文獻[2]中有詳細的討論?,F(xiàn)簡述如下:通過生化實驗統(tǒng)計TVBN數(shù)量、時間和溫度三者之間的變化關(guān)系,利用TVBN作為評估剩余貨架期的關(guān)鍵因素,最后擬合實驗數(shù)據(jù),得到計算貨架期偽代碼如下:
運行于指示器和讀寫器中的TCP/IP協(xié)議棧采用開放源代碼的uIPv6[6],它被廣泛應用于嵌入式系統(tǒng)中,支持8/16位微處理器。uIPv6協(xié)議棧為了簡化傳統(tǒng)TCP/IP協(xié)議棧,使之更加適合于資源受限的嵌入式系統(tǒng)中,僅保留了網(wǎng)絡通信的核心協(xié)議,如,MAC,IP,TCP,ICMP,UDP,ARP 等協(xié)議。水產(chǎn)品貨架期監(jiān)測系統(tǒng)采用uIPv6協(xié)議棧主要有2個因素:1)能夠讓遠程接入互聯(lián)網(wǎng)的設備透明訪問指示器。為了達到這一目的,傳統(tǒng)方法采用網(wǎng)關(guān)的形式實現(xiàn)。遠程設備通過互聯(lián)網(wǎng)與網(wǎng)關(guān)設備直接通信,網(wǎng)關(guān)解析遠程設備請求,通過系統(tǒng)內(nèi)部的私有協(xié)議獲取數(shù)據(jù)后再響應遠程設備。在這種實現(xiàn)方式中,網(wǎng)關(guān)設備運算負載高。2)指示器以Web服務的形式向客戶提供剩余貨架期、歷史警報等信息。本文采用的Web服務架構(gòu)是一種基于RESTful風格的嵌入式Web服務。
CoAP(constrained application protocol)是一種RESTfu架構(gòu)的Web Service解決方案,適合于資源受限的嵌入式應用,相比SOAP架構(gòu)的Web service,CoAP具有實現(xiàn)簡單、代碼占用小、響應快速等優(yōu)點。本文實現(xiàn)的CoAP工作在HTTP協(xié)議基礎之上,后者是TCP/IP協(xié)議棧上層應用層協(xié)議。CoAP將服務抽象為資源,資源與HTTP地址相對應,根據(jù)HTTP請求方法的不同,可分別對CoAP資源進行查詢、修改操作,分別對應HTTP的GET和POST兩種方法。CoAP工作步驟:HTTP服務器接收到來自客戶的http請求地址;CoAP根據(jù)地址確定客戶請求的資源并計算得到數(shù)據(jù)data;數(shù)據(jù)data再傳遞至CoAP引擎;CoAP對data按照數(shù)據(jù)格式封裝后,交由HTTP服務器,并最終通過TCP/IP協(xié)議發(fā)送至客戶。其工作流程圖如圖3所示。
圖3 CoAP工作簡要流程Fig 3 Brief process of CoAP
根據(jù)上述指示器的3個主要功能,表1列舉了指示器發(fā)布的所有資源。
表1 水產(chǎn)品貨架期指示器發(fā)布的所有資源Tab 1 All the resources released by ISPD
本設計采用JSON(JavaScript Object Notation)數(shù)據(jù)格式作為指示器響應CoAP請求的返回結(jié)果。通用的格式如下:{“type”:resource,“value”:value}。例如:讀寫器請求指示器剩余貨架期得到的返回數(shù)據(jù)為{“type”:“sl”,“value”:5},表示該指示器所預測的水產(chǎn)品剩余貨架期為5d。
通過將操作系統(tǒng)Contiki移植到指示器完成對嵌入式Web服務的支持。Contiki原生支持TCP/IP與多任務環(huán)境,運行操作系統(tǒng)只需要幾千字位閃存和幾百字節(jié)內(nèi)存。在最新版本contiki 2.5中加入了對CoAP編程的支持,使得發(fā)布CoAP資源非常簡單,指示器發(fā)布的/echo資源的C語言代碼如下:
將讀寫器配置為PC機的網(wǎng)絡適配器后,使用Web瀏覽器可以直接訪問指示器。圖4為Firefox瀏覽器訪問IP地址為fe80::0212:7400:1467:8d0d指示器的剩余貨架期資源返回的結(jié)果。
圖4 Firefox瀏覽器訪問指示器的/sl資源返回結(jié)果Fig 4 Result of using Firefox request/sl resource
實驗中,使用Firefox 11瀏覽器測試了訪問不同數(shù)量指示器所需的時間,結(jié)果如表2所示。
表2 ISPD指示器響應不同資源所需時間Tab 2 Time spent of ISPD response to different resources
貨架期指示器采用2000 mAh的鋰電池進行供電,在關(guān)閉LCD屏幕的狀態(tài)下,實驗估測了訪問/sl資源與電源剩余工作時間的關(guān)系,其結(jié)果如圖5所示。
圖5 2000 mAh鋰電池能夠響應Web服務請求次數(shù)的估計時間Fig 5 Estimated lifetime of 2000 mAh battery over the number of Web service calls
實際應用時,指示器平均每小時響應6次Web請求,因此,2000 mAH容量的鋰電池可持續(xù)使用約100 d左右。
系統(tǒng)利用嵌入式Web服務技術(shù)實現(xiàn)水產(chǎn)品貨架期監(jiān)測系統(tǒng)。系統(tǒng)中所有設備通信協(xié)議基于TCP/IP,使得接入Internet的遠程設備可直接訪問指示器設備。指示器具有預測剩余貨架期、實時警報、歷史記錄等功能。基于Web服務中間件技術(shù)的貨架期監(jiān)測系統(tǒng)傳輸數(shù)據(jù)穩(wěn)定、高效,方便與第三方應用程序的集成、擴展。
[1]谷雪蓮,肖洪海,蘇樹強,等.食品冷藏鏈中時間—溫度指示器的意義及現(xiàn)狀[J].食品科技,2002(12):43-45.
[2]劉慧芳,陳 明,謝 晶.南美白對蝦貨架期智能預測裝置[J].計算機工程學報,2010,36(15):277-279.
[3]Kuladinithi K,Bergmann O,Potsch T,et al.Implementation of CoAP and its application in transport logistics[C]∥Proc of IP+SN,Chicago,IL,USA,2011:123-130.
[4]Yazar D,Dunkels A.Efficient application integration in IP-based sensor networks[C]∥Proceedings of ACM BuildSys 2009,the First ACM Workshop on Embedded Sensing Systems for Energy-Efficiency in Buildings,Berkeley,CA,USA,2009:702-707.
[5]Taoukis P S,Labuza T P.Applicability of time-temperature indicators as shelf life monitors of food products[J].Journal of Food Science,1989,54(4):783-788.
[6]Dunkels A.Full TCP/IP for 8 bit architectures[C]∥Proceedings of the First ACM/Usenix International Conference on Mobile Systems,Applications and Services(MobiSys2003),San Francisco,2003:85-98.