当前位置:首页 期刊杂志

基于区块链的冷链物流边缘计算验证演示系统

时间:2024-09-03

◆刘军 冯力 魏航

(1.思科(中国)有限公司上海分公司 上海 201103;2.思科科技北京有限公司 北京 100022)

1 引言

冷链物流是依靠降温冷藏来确保运输链上的适当温度条件的物流运输活动。其区别于常规的物流运输链的主要特点是有严格的温控要求,只要出现一个时间点上的温度失控问题就会导致整个运输链产生短板效应,轻则导致食品质量下降,重则影响疫苗药品安全。因此,在冷链管理中需要配套的相关技术的支持。随着技术的不断发展,区块链技术,边缘计算,物联网等新技术也被引入到冷链物流行业中,并呈现出新的作用。

2 演示验证流程

本文对区块链在边缘计算,物联网和物流冷链领域的结合进行了探索。实现了物联网设备+区块链技术+第三方认证保障的新商业模式,通过区块链可以追溯物流冷链运输过程中,温度控制是否合规,通过对商品全流程的数据进行监控,实现企业与用户之间的信息透明化、公开化。

本文的验证演示开发工作,利用物联网车载4G 工业边缘计算路由器,连接工业级温度传感器,进行上链处理。

整个演示验证流程为:

(1)确保本地开发验证环境有Python 集成开发环境:Pycharm,REST APⅠ验证采用Postman;

(2)思科ⅠR809 工业路由器开机,自动启动采集程序;

(3)本地开发环境运行后台程序;

(4)通过Postman 下达命令,上链温度采集开始;

(5)通过Postman 下达命令,上链温度采集结束;

(6)后台程序自动将上链温度保存到文件中;

(7)后台程序自动对温度数据文件生成hash 码,上传到“唯链”进行上链操作,生成区块链唯一标识码,文件的hash码存放在“唯链”;

(8)篡改温度数据文件,导致本地生成的hash 码发生变化,和“唯链”保存的原始文件生成的区块链hash 码进行比对,显示原始数据被篡改;

(9)恢复温度数据文件,本地重新生成hash 码,和“唯链”保存的原始文件生成的区块链hash 码进行比对,结果一致,显示原始数据唯一性,未被篡改。

工作流程如图1。

图1 工作流程

3 各种后台软件

3.1 MQTT 服务器端

需要建立一个MQTT 服务器,采集数据。在控制端安装一台VMware 虚拟机,运行CentOS,安装mosquitto 的MQTT 服务器。使其作为后台守护程序,一直监听MQTT 客户端的发布。

3.2 后台控制端

后台控制端共有4 个程序:

(1)数据采集控制查询接口;

(2)MQTT 客户端,接收并存储数据;

(3)MQTT 客户端开发版,监控接收到的数据;

(4)上链程序。

3.3 数据采集控制查询接口

采用Python Flask 框架,构建基于json 格式信息流的rest api 接口,开发环境采用Postman 进行测试验证。分成2 种类型4 个动作,get 和POST,如表1。

表1 动作与功能对照表

3.4 上链处理程序

使用了唯链提供的函数APⅠ。一共有2 类8 个函数。一类为获取Token 函数,另一类为上链接口,包括7 个函数:(1)生成VⅠD;(2)抢占VⅠD;(3)创建子账号并链上注册;(4)UⅠD 重新链上注册;(5)hashinfo 上链;(6)最新hashinfo 查询;(7)hashinfo 历史查询。

4 基于工业路由器的边缘计算

验证系统采用思科ⅠR809 工业路由器(ⅠP30 防护等级),该设备内置4G 和GPS,支持工业RS485 接口,支持边缘计算,可以运行客户程序。

4.1 ⅠR809 传感器连接

ⅠR809 和温度传感器通过RS485 接口连接。在思科路由器ⅠOS层面,对端口进行控制。

在思科物联网操作系统ⅠOX 中,用Python 编程时,需要对RS485串行接口进行编码。

4.2 ⅠR809 GPS 连接

ⅠR809 内置GPS 模块,在思科路由器ⅠOS 层面,需要启动GPS配置。

在思科物联网操作系统ⅠOX 中,用python 编程时,需要以下代码:

4.3 ⅠR809 MQTT 客户端

当采集完温度和GPS 信息后,Python 程序也采用开源的paho.mqtt.client 库进行MQTT 数据传输。实际应用中有一些非编程的如下客户化参数配置:

4.4 数据采集控制

使用rest_APⅠ,对温度/GPS 数据采集的过程进行控制。在ⅠR809上采用主动发起REST APⅠ请求查询机制,查询传感器的设定状态,根据查询rest_APⅠ的响应结果控制温度传感器采集数据的上传,rest_APⅠ的内容采用Json 格式。

在逻辑控制上,也和演示过程一致,即,控制端没有发送指令时,ⅠR809 只采集数据,不上传;当控制端发送指令“start”时,ⅠR809 传数据;当控制端发送指令“stop”时,ⅠR809 停止发送数据。

4.5 系统仿真

思科ⅠR809 是边缘计算节点,其编程可在电脑中的虚拟机中仿真进行。在虚拟机中完成编程后,通过思科提供的ⅠOXclient 客户端软件写入ⅠR809 的边缘计算guestos 空间运行。为简化过程,目前常见的做法是在开发环境中运行docker,在开发环境中创建基于Yocto 的定制化ⅠOT 应用docker 镜像,(此镜像就是ⅠR809 的ⅠOX Guest OS的docker 运行的镜像),在此镜像中包含python 运行环境,paho-mqtt,pyserial 等相关运行依存资源,并将ⅠOT 应用包含在此镜像中。

其步骤如下:

(1)在电脑的VMware 环境中安装Centos,在centos 中安装docker:

(2)运行docker:

(3)下拉ⅠR809 的ⅠOXpython2.7 的官方docker 镜像

(4)运行ⅠOX docker 镜像

(5)在docker 运行镜像中安装相关python 依存库

(6)生成新的镜像作为基础镜像:

(7)在开发ⅠOT 应用的文件目录中创建Dockerfile,将ⅠOT 应用拷贝到镜像中。

为增加体验,本验证演示系统同时使用了开源的thingsboard 展示采集数据,展示效果如图2。

图2 展示效果

5 结束语

区块链和实业结合,目前尚处于探索阶段。当前该技术主要还是应用于金融领域,在冷链物流领域公开报道还比较少。所以在该领域探索的最佳实践就是,搭建实验验证演示环境,从端到端每个环节进行验证,这样有助于发现和解决新技术落地过程中所遇到的问题,加速方案的落地。本验证演示系统使用了专业的温度传感器,工业级边缘计算路由器,主流的区块链在线处理系统,模拟了将冷链物流和区块链相结合的场景,验证了数据从采集,处理,传输,存储,到上链的整个工作流,证明了其可行性。区块链技术和冷链物流领域的结合,必将会增进物流行业在公众领域的信任度,规范冷链行业操作,提高冷藏产品质量和安全性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!