于 蒙,周 密,李文鋒,宋金龍
(武漢理工大學 物流工程學院,武漢430063)
食品保鮮作為食品安全中的一個重要組成部分,已經受到各行業的高度關注,在這樣的情況下,冷鏈物流的監控尤為重要,目前冷鏈監控以視頻監控和路徑導航居多[1-2],監控系統的功能比較單一,不少冷鏈監測系統主要是通過RFID 和WSN技術的結合設計出冷鏈監測平臺,但這種監測系統無法實時監控物品信息[3-4]。 本設計融合了傳感器技術、無線通訊技術、GPS 定位技術,結合安卓開發技術開發冷鏈物流監控系統, 對系統進行一系列的測試,驗證了系統可運行性,通過安卓手機作為定位、溫濕度查詢終端,實時靈活地監測冷藏車的行駛路徑和溫濕度變化,從而有效提高產品質量的安全。
冷鏈物流監控系統需要進行相關環境參數的監測,還需要對車輛的實時位置進行監測,針對冷鏈車載運輸環節進行設計,系統框架如圖1 所示。

圖1 冷鏈運輸監測環節架構Fig.1 Cold chain transportation monitoring link structure
對冷鏈物流運輸環節的監控分為車載終端和監控中心兩個模塊。 車載終端模塊就是監控系統的硬件模塊,溫度傳感器DS18B20、濕度傳感器DHT11、CO2傳 感 器MG811 和HM06 藍 牙 集 成 于ATMEGA328P 單片機上,組成環境參數監測傳輸裝置,通過溫、濕度傳感器、CO2濃度傳感器定時采集(約10 s 一次)冷藏廂內的環境參數,主控芯片對傳感器采集的數據進行解析、打包并發送給藍牙完成數據處理。 監控中心硬件僅為一部裝載有冷鏈物流監控APP 的智能手機構成,監控中心模塊就是監控系統的軟件模塊,硬件裝置與手機APP 通過藍牙通信完成數據傳輸, 蜂鳴器連接主控芯片的串口,當手機接收到數據時會對數據綜合判斷,當數據超過參數范圍時便會進行預警,同時將接收到的數據通過4G 網絡上傳云端服務器進行保存, 便于日后的管理。
環境信息監測模塊的設計主要是對相關傳感器的電路進行設計,在硬件選型時選擇濕度傳感器型號為DHT11, 它具有極高的可靠性和長期穩定性,DHT11 有4 個管腳,傳感器的Pin2 端口為數據發送串口, 傳感器的Pin1 接通5 V 電源,Pin4 端口連接GND,Pin3 端口懸浮放置, 電路中放置一個二極管用于指示傳感器是否正常通電工作。 選用溫度傳感器為DS18B20, 其測量范圍為-55 ℃~+125 ℃,能夠很好地滿足冷鏈車載監控系統的監控需求,同時可在1 s 內就把溫度數據變換成數字信息, 能很好地滿足實時性及精度要求。 該傳感器有3 個引腳,引腳1 接電源,引腳2 為數據輸出接口,引腳3接GND。 選用MG811 型CO2傳感器, 其測量精度高、功耗小、體積小、測量范圍廣,對二氧化碳具有很高的檢測靈敏度。 電路設計時,其引腳1 接電源,引腳2 為GND 接地,3、4 引腳為傳感器的數據發送串口。
無線通信模塊主要負責將傳感器獲取的環境信息轉發到手機移動終端,作為對系統進行監控的基礎數據。 本系統設計采用HM-06 藍牙模塊,它共有16 個引腳, 工作時有5 個引腳被接通,2、4 引腳分別為TX、RX 串口,與處理器進行通信,引腳9 連接穩壓電路提供3.3 V 工作電壓, 引腳12 為GND接地,15 引腳接通LED 用于指示藍牙是否正常工作。 圖2 為HM-06 的電路圖。

圖2 HM-06 藍牙原理圖Fig.2 HM-06 bluetooth schematic
處理器是系統硬件電路的基礎,直接影響系統精度和處理性能, 本文采用ATMEGA328 為主控芯片,該型單片機具備高速、節能等特點,同時滿足系統在功能、尺寸及成本方面的要求。 藍牙模塊通過ATMEGA328 單片機的輸入輸出口連接主控芯片,完成數據的傳輸,CO2傳感器和溫濕度傳感器通過RX、TX 串口與單片機之間進行串口數據通信,將監測到的數據轉發給藍牙, 蜂鳴器接主控芯片的D5串口,當環境數據超標時,發出警報。 硬件模塊實物連接圖如圖3 所示。

圖3 硬件模塊實物連接圖Fig.3 Hardware physical connection diagram
系統啟動后,硬件設備開始監測環境數據,并通過藍牙串口發送給手機端,系統啟用AmarinoService藍牙監聽服務,開啟新線程,建立socket 連接,通過getInputStream()接收冷鏈環境數據輸入流。 調用forwardDataToOtherAPPs(String msg)函數將接收到的msg 環境信息以廣播的形式發布出去,數據接收Activity 根據注冊的廣播接收者ArduinoReceiver 對消息進行過濾,重寫接收者的onReceive 函數,提取參數類型關鍵字,判斷接收的數據屬于溫濕度、CO2濃度中的哪一種。調用receive.substring(1,3)獲取數據類型關鍵字,調用receive.substring(12,17)獲取環境參數數值。 接收完數據之后對數據進行計算處理, 當監測的數據超過閾值時做出提醒和報警響應;分別計算出10 次環境參數的均值,最大值及實時值,并將所求結果利用textView.setText()直觀顯示在視圖區域,直觀了解相關參數值。 調用insert-Data()函數將數據保存入數據庫。調用addDataPoint()方法將實時獲取的數據在畫布上進行描點,調用drawLine 將所有點進行連線繪制數據變化趨勢圖,直觀看出變化趨勢,不斷調用invalidate 進行視圖更新,實現數據圖形的動態顯示,圖4 是系統數據監控模塊的流程。

圖4 冷鏈數據監控模塊的流程圖Fig.4 Flow chart of cold chain data monitoring
用戶進入系統后開啟新線程,根據isEnabled()判斷是否開啟藍牙服務,若isEnabled()==false 則調用enable()打開藍牙設備。 若isEnabled()==true 則證明已開啟本地藍牙設備,單擊藍牙連接模塊添加設備按鈕進入AmarinoActivity 藍牙查詢搜索類,在該類中進行的操作有藍牙設備搜索、 設備名稱與MAC 地址的獲取與保存, 將搜索到的BTDevice 添加進設備DB, 查詢數據庫并將結果作為ListView適配器的數據源,單擊ListView 的item,將設備添加至藍牙Activity 的UI 界面中,選擇相應藍牙設備完成連接。 開啟ReceiveThread 線程進行socket 通訊,調用socket 的getInputStream()函數獲取硬件設備傳輸的環境參數數據,每接收一個數據都通過send-Broadcast 廣播出去, 其他Activity 通過廣播接收者接收數據并進行相應的響應處理。 藍牙無線通訊模塊工作流程如圖5 所示。

圖5 藍牙無線通訊模塊工作流程Fig.5 Bluetooth wireless communication module work flow chart
車輛定位功能由手機應用程序實現,調用手機自帶的GPS 功能,通過手機GPS 獲取運輸車輛的經緯度信息,再調用高德地圖接口,在地圖上顯示車輛的實時位置。 當運輸車輛位置發生改變,onLocationChanged 方法被觸發,通過location.getLatitude()和location.getLongitude()方法可以獲取當前所處位置的經緯度數據,調用APP.setmLatitude、APP.setm-Longitude 方法將經緯度信息放入全局變量APP.mLatitude 和APP.mLongitude,上述獲取的是車輛的經緯度信息, 通過調用locBundle.getString("desc")可以獲取車輛的具體地理位置,接著將位置信息存入數據庫。 車輛定位模塊運行效果如圖6 所示。

圖6 車輛定位模塊運行效果Fig.6 Vehicle positioning module operation effect
反饋報警模塊主要實現對環境數據的處理,打開APP 與硬件設備建立連接之后,即開始數據傳輸,藍牙數據接收過程在藍牙服務AmarinoService 類中進行,ReceiveThread 線程接收數據并對數據進行判斷,當Integer.valueOf(msg).intValue()超過閾值時會觸發報警服務startService,開啟線程進行報警。
在完成系統的軟硬件模塊設計之后,還需要對硬件裝置測試和軟件APP 測試。硬件設備測試主要測試其數據采集與傳輸功能,APP 測試主要是測試其數據接收、顯示功能、及預警功能。
系統啟動后,環境感知裝置每隔一段時間會讀取一次溫度、濕度、CO2濃度數據,傳感器只需單向通訊。 經過A/D 轉換,將傳感器輸出的模擬值轉換為單片機可以識別處理的數字值。 單片機處理之后,定義數據傳輸格式,通過UART 異步通訊串口將數據轉發給藍牙模塊,接收數據后藍牙模塊通過藍牙通訊協議與冷鏈監控系統APP 通訊,進行數據傳輸。 監控過程如圖7 所示。

圖7 硬件數據采集流程Fig.7 Hardware data collection flow chart
系統數據接收與顯示功能是在系統手機軟件端實現的,打開手機APP 系統進行工作,首先進行藍牙搜索查詢,找出硬件藍牙設備進行配對,配對完成后,AmarinoService 藍牙服務即在后臺開啟服務接收數據并將數據以廣播形式發送出去,不同的activity 根據數據類型做出相應的動作響應,完成數據的顯示,如圖8 所示。

圖8 數據圖形化顯示Fig.8 Graphical display of data
選取溫度、濕度、CO2濃度等環境參數作為預警模型判定指標,對系統參數進行監控,當超過預警值時,APP 發出報警。 每種環境參數超出范圍時都會觸發警報服務, 具體預警值處理是AmarinoService 服務接收數據后在手機程序中進行。 為了方便試驗,我們先用傳感器測定實驗室環境參數,選定的預警值接近真實環境,取值如表1 所示,同時表中列出了系統的預警結果。

表1 環境參數預警值Tab.1 Environmental parameter warning value
通過實驗室環境下的測試,系統報警服務能正常工作,判斷效果如圖9 所示。
本文將物聯網技術與主流的Android 系統相結合, 設計一種基于Android 平臺的冷鏈物流車載監控系統,完成了軟硬件模塊的設計,車載終端與監控中心的結合, 最終實現了Android 手機端對冷鏈車輛環境信息的采集監控,以及冷藏車輛運輸位置的實時跟蹤定位, 實時監控冷鏈運輸過程中的環境,確保每時每刻冷鏈環境參數都在產品要求范圍內,當參數超過閡值時,可發出警報,從而有效的對冷鏈環境加以調節,保證產品的質量。 基于安卓平臺的開發更具有移動性,監督更方便。

圖9 系統報警功能Fig.9 System alarm function