◆劉軍 馮力 魏航
(1.思科(中國)有限公司上海分公司 上海 201103;2.思科科技北京有限公司 北京 100022)
冷鏈物流是依靠降溫冷藏來確保運輸鏈上的適當溫度條件的物流運輸活動。其區別于常規的物流運輸鏈的主要特點是有嚴格的溫控要求,只要出現一個時間點上的溫度失控問題就會導致整個運輸鏈產生短板效應,輕則導致食品質量下降,重則影響疫苗藥品安全。因此,在冷鏈管理中需要配套的相關技術的支持。隨著技術的不斷發展,區塊鏈技術,邊緣計算,物聯網等新技術也被引入到冷鏈物流行業中,并呈現出新的作用。
本文對區塊鏈在邊緣計算,物聯網和物流冷鏈領域的結合進行了探索。實現了物聯網設備+區塊鏈技術+第三方認證保障的新商業模式,通過區塊鏈可以追溯物流冷鏈運輸過程中,溫度控制是否合規,通過對商品全流程的數據進行監控,實現企業與用戶之間的信息透明化、公開化。
本文的驗證演示開發工作,利用物聯網車載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 工作流程
需要建立一個MQTT 服務器,采集數據。在控制端安裝一臺VMware 虛擬機,運行CentOS,安裝mosquitto 的MQTT 服務器。使其作為后臺守護程序,一直監聽MQTT 客戶端的發布。
后臺控制端共有4 個程序:
(1)數據采集控制查詢接口;
(2)MQTT 客戶端,接收并存儲數據;
(3)MQTT 客戶端開發版,監控接收到的數據;
(4)上鏈程序。
采用Python Flask 框架,構建基于json 格式信息流的rest api 接口,開發環境采用Postman 進行測試驗證。分成2 種類型4 個動作,get 和POST,如表1。

表1 動作與功能對照表
使用了唯鏈提供的函數APⅠ。一共有2 類8 個函數。一類為獲取Token 函數,另一類為上鏈接口,包括7 個函數:(1)生成VⅠD;(2)搶占VⅠD;(3)創建子賬號并鏈上注冊;(4)UⅠD 重新鏈上注冊;(5)hashinfo 上鏈;(6)最新hashinfo 查詢;(7)hashinfo 歷史查詢。
驗證系統采用思科ⅠR809 工業路由器(ⅠP30 防護等級),該設備內置4G 和GPS,支持工業RS485 接口,支持邊緣計算,可以運行客戶程序。
ⅠR809 和溫度傳感器通過RS485 接口連接。在思科路由器ⅠOS層面,對端口進行控制。
在思科物聯網操作系統ⅠOX 中,用Python 編程時,需要對RS485串行接口進行編碼。
ⅠR809 內置GPS 模塊,在思科路由器ⅠOS 層面,需要啟動GPS配置。
在思科物聯網操作系統ⅠOX 中,用python 編程時,需要以下代碼:

當采集完溫度和GPS 信息后,Python 程序也采用開源的paho.mqtt.client 庫進行MQTT 數據傳輸。實際應用中有一些非編程的如下客戶化參數配置:

使用rest_APⅠ,對溫度/GPS 數據采集的過程進行控制。在ⅠR809上采用主動發起REST APⅠ請求查詢機制,查詢傳感器的設定狀態,根據查詢rest_APⅠ的響應結果控制溫度傳感器采集數據的上傳,rest_APⅠ的內容采用Json 格式。
在邏輯控制上,也和演示過程一致,即,控制端沒有發送指令時,ⅠR809 只采集數據,不上傳;當控制端發送指令“start”時,ⅠR809 傳數據;當控制端發送指令“stop”時,ⅠR809 停止發送數據。
思科Ⅰ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 展示效果
區塊鏈和實業結合,目前尚處于探索階段。當前該技術主要還是應用于金融領域,在冷鏈物流領域公開報道還比較少。所以在該領域探索的最佳實踐就是,搭建實驗驗證演示環境,從端到端每個環節進行驗證,這樣有助于發現和解決新技術落地過程中所遇到的問題,加速方案的落地。本驗證演示系統使用了專業的溫度傳感器,工業級邊緣計算路由器,主流的區塊鏈在線處理系統,模擬了將冷鏈物流和區塊鏈相結合的場景,驗證了數據從采集,處理,傳輸,存儲,到上鏈的整個工作流,證明了其可行性。區塊鏈技術和冷鏈物流領域的結合,必將會增進物流行業在公眾領域的信任度,規范冷鏈行業操作,提高冷藏產品質量和安全性。