王 明,陈 明,冯国富
(上海海洋大学 信息学院,上海201306)
基于嵌入式技术的货架期指示器主要由温度传感器模块和微处理器组成,预测模型将温度值作为输入参数计算得到货架期。文献[1,2]中设计的货架期指示器采用串口与上位机进行通信,在产品运输流通过程中,由于受到串口数据线的制约,存在数据传输不便的缺点,另外,基于私有通信协议射频通信的货架期指示器存在与其他应用集成难度高、数据格式不统一、设备升级困难等缺点。目前,在无线传感器中采用Web服务交换数据已有研究和应用。文献[3]描述了在智能集装箱物流运输系统中,利用嵌入式Web服务技术获取集装箱中传感器的数值。文献[4]研究了基于IP的无线传感器网络利用Web service技术与现有IT系统进行集成。
本文针对水产品货架期监测,提出以嵌入式Web服务技术构建水产品剩余货架期监测系统,开发了智能水产器货架期指示器及其读写装置。货架期指示器底层通信协议采用TCP/IP,所有联网设备皆可对其进行直接访问。货架期指示器通过Web服务向客户提供当前剩余货架期等信息,所有实现Http协议的客户即可获取,例如:Web浏览器。采用Web服务中间件的水产品货架期监测系统能够轻松与第三方应用程序集成,开发出更多结构复杂、功能强大的系统。
应用于冷链物流的水产品货架期监测系统由前端货架期指示器与后端读写器两部份组成。在水产品的冷链运输过程中,同一批次的相同种类的水产品与一个指示器绑定,从开始运输阶段到被消费者购买阶段都配有指示器对其监控。水产品货架期监测系统负责监测“从池塘到饭桌”整个过程的水产品质量安全,主要包括货物运输、货物储藏、市场销售3个主要流程的监控,要求在货物运输交接过程中信息能够一直保存,消费者购买时可对其信息查询、追溯。
指示器主要有3个功能:1)预测剩余货架期:水产品货架期受环境影响较大,为了能够准确地预测其剩余货架期,需要指示器实时检测周围环境,并结合精确的预测模型计算出剩余货架期;2)实时预警:指示器系统初始化时,设置温度阈值,当环境温度超过阈值时,指示器发出警报;3)历史记录:指示器外部存储Flash记录异常数据,并将其传输至远程服务器进行备份。当产品出现质量问题时,可对其进行信息追溯,找出事故发生源头。后端读写器通过无线射频与前端指示器进行通信。指示器与读写器的通信协议采用uIPv6,客户端程序以Web Service的方式向指示器发出请求,读取剩余货架期、历史信息等数据,最终通过读写器直接与指示器进行通信。客户端程序请求指示器获取数据必须知道其IP地址。指示器的Ipv6地址有2种方法获取:1)指示器初始化时设定;2)动态获取。当读写器同时读取多个指示器信息时,首先启动DHCP伺服器功能,读写器为通信范围内的所有指示器(<255)分配唯一的IPv6地址,通过遍历DHCP的IP地址池完成对所有指示器的访问。动态分配IP技术适合多批货物同时需要读取的情况。系统总体构成如图1所示。
图1 水产品货架期监测系统框图Fig 1 Block diagram of shelf life monitoring system
水产品货架期指示器由MSP430F1611微处理器、CC2420无线射频、存储模块、温度采集、时钟、LCD、电源等部分组成。其中,MSP430F1611微处理器具有48 kB FLash,10 kB SRAM,功耗极低。CC2420工作频带为2.4 GHz,符合IEEE 802.15.4标准,性能稳定,功耗极低。外部存储采用MMC Card,用于存储历史警报数据等。温度传感器采用DB18B20。为了方便用户直接查看货架期信息,添加了LCD模块。由于指示通常在低温环境下工作,要求所有元器件在-15℃时能够正常工作。ISPD的硬件框图如图2所示。
图2 货架期指示器硬件设计框图Fig 2 Hardware design block diagram of shelf life indicator
读写器的设计在指示器的基础上,去掉日历时钟、温度传感器、按键模块、Flash存储、LCD、电源等,保留核心模块USB和CC2420。读写器主要功能是通过USB模块将读写器配置为PC机的网络适配器,采用串行线路网际协议,实现读写器与PC机基于TCP/IP的通信。
货架期是指食品能够满足消费者需求品质的保持时间。本系统采用基于3T(time-temperature-tolerance)理论[5]的货架期预测算法,该算法的具体实现在文献[2]中有详细的讨论。现简述如下:通过生化实验统计TVBN数量、时间和温度三者之间的变化关系,利用TVBN作为评估剩余货架期的关键因素,最后拟合实验数据,得到计算货架期伪代码如下:
运行于指示器和读写器中的TCP/IP协议栈采用开放源代码的uIPv6[6],它被广泛应用于嵌入式系统中,支持8/16位微处理器。uIPv6协议栈为了简化传统TCP/IP协议栈,使之更加适合于资源受限的嵌入式系统中,仅保留了网络通信的核心协议,如,MAC,IP,TCP,ICMP,UDP,ARP 等协议。水产品货架期监测系统采用uIPv6协议栈主要有2个因素:1)能够让远程接入互联网的设备透明访问指示器。为了达到这一目的,传统方法采用网关的形式实现。远程设备通过互联网与网关设备直接通信,网关解析远程设备请求,通过系统内部的私有协议获取数据后再响应远程设备。在这种实现方式中,网关设备运算负载高。2)指示器以Web服务的形式向客户提供剩余货架期、历史警报等信息。本文采用的Web服务架构是一种基于RESTful风格的嵌入式Web服务。
CoAP(constrained application protocol)是一种RESTfu架构的Web Service解决方案,适合于资源受限的嵌入式应用,相比SOAP架构的Web service,CoAP具有实现简单、代码占用小、响应快速等优点。本文实现的CoAP工作在HTTP协议基础之上,后者是TCP/IP协议栈上层应用层协议。CoAP将服务抽象为资源,资源与HTTP地址相对应,根据HTTP请求方法的不同,可分别对CoAP资源进行查询、修改操作,分别对应HTTP的GET和POST两种方法。CoAP工作步骤:HTTP服务器接收到来自客户的http请求地址;CoAP根据地址确定客户请求的资源并计算得到数据data;数据data再传递至CoAP引擎;CoAP对data按照数据格式封装后,交由HTTP服务器,并最终通过TCP/IP协议发送至客户。其工作流程图如图3所示。
图3 CoAP工作简要流程Fig 3 Brief process of CoAP
根据上述指示器的3个主要功能,表1列举了指示器发布的所有资源。
表1 水产品货架期指示器发布的所有资源Tab 1 All the resources released by ISPD
本设计采用JSON(JavaScript Object Notation)数据格式作为指示器响应CoAP请求的返回结果。通用的格式如下:{“type”:resource,“value”:value}。例如:读写器请求指示器剩余货架期得到的返回数据为{“type”:“sl”,“value”:5},表示该指示器所预测的水产品剩余货架期为5d。
通过将操作系统Contiki移植到指示器完成对嵌入式Web服务的支持。Contiki原生支持TCP/IP与多任务环境,运行操作系统只需要几千字位闪存和几百字节内存。在最新版本contiki 2.5中加入了对CoAP编程的支持,使得发布CoAP资源非常简单,指示器发布的/echo资源的C语言代码如下:
将读写器配置为PC机的网络适配器后,使用Web浏览器可以直接访问指示器。图4为Firefox浏览器访问IP地址为fe80::0212:7400:1467:8d0d指示器的剩余货架期资源返回的结果。
图4 Firefox浏览器访问指示器的/sl资源返回结果Fig 4 Result of using Firefox request/sl resource
实验中,使用Firefox 11浏览器测试了访问不同数量指示器所需的时间,结果如表2所示。
表2 ISPD指示器响应不同资源所需时间Tab 2 Time spent of ISPD response to different resources
货架期指示器采用2000 mAh的锂电池进行供电,在关闭LCD屏幕的状态下,实验估测了访问/sl资源与电源剩余工作时间的关系,其结果如图5所示。
图5 2000 mAh锂电池能够响应Web服务请求次数的估计时间Fig 5 Estimated lifetime of 2000 mAh battery over the number of Web service calls
实际应用时,指示器平均每小时响应6次Web请求,因此,2000 mAH容量的锂电池可持续使用约100 d左右。
系统利用嵌入式Web服务技术实现水产品货架期监测系统。系统中所有设备通信协议基于TCP/IP,使得接入Internet的远程设备可直接访问指示器设备。指示器具有预测剩余货架期、实时警报、历史记录等功能。基于Web服务中间件技术的货架期监测系统传输数据稳定、高效,方便与第三方应用程序的集成、扩展。
[1]谷雪莲,肖洪海,苏树强,等.食品冷藏链中时间—温度指示器的意义及现状[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.