譚洋 郭曉金 程力



摘? 要: 為了解決血液冷鏈運輸的安全問題,設計了一套放置在車廂內的遠程血液冷鏈運輸監測系統。該系統通過ZigBee網絡實時采集車廂內的環境數據并發送到STM32微控制器,然后對采集到的運動狀態數據進行了詳細分析處理。STM32微控制器接入了GPS/BDS雙定位模塊和GPRS無線通信模塊,其中GPS/BDS雙定位模塊可以對當前車輛的地理位置進行定位。車廂內的環境數據、車輛地理位置數據和報警信息通過GPRS模塊傳送到遠程后臺監控中心的上位機存儲并實時顯示。系統功能測試表明該系統具有準確性、高可靠性和高適用性等特點。
關鍵詞: 血液監測系統; 冷鏈運輸; 遠程監測; 系統設計; 數據分析; 功能測試
中圖分類號: TN931+.3?34; TP391.4? ? ? ? ? ? ?文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)04?0011?06
Design of remote blood cold chain transportation monitoring system
TAN Yang, GUO Xiaojin, CHENG Li
(Chongqing Key Laboratory of Optical Communication and Network, Chongqing University of Posts and Telecommunications, Chongqing 400065, China)
Abstract: A remote blood cold chain transportation monitoring system placed in the vehicle carriage is designed to solve the safety problem of blood cold chain transportation. The ZigBee network in the system is applied to collectthe environmental data in the vehicle carriage in real time and send it to the STM32 microcontroller, by which the collected motion state data is analyzed and processed in detail. The STM32 microcontroller is connected to the GPS/BDS dual positioning module and the GPRS wireless communication module. The GPS/BDS dual positioning module can locate the current vehicle′s geographical location. The environmental data in the vehicle carrige, the vehicle′s geographical location data and the alarm information are transmitted to the upper computer of the remote background monitoring center through the GPRS module for the storage and real?time display. The system functional testing results show that the system has the characteristics of high accuracy, high reliability and high applicability.
Keywords: blood monitoring system; cold chain transportation; remote monitoring; system design; data analysis; function test
0? 引? 言
在現代醫療中,血液作為重要的醫藥物品,其安全問題越來越受到重視。最近幾年,我國年均無償獻血人次達1 400萬以上,采血總量達到2 300萬單位。這個數據每年都在不斷地增大,但是每年都會出現供血需求不足的問題,所以對于血液的安全存儲運輸問題就顯得格外重要。
血液的運輸采用冷鏈運輸的方式。血液在急救過程中往往決定了病人的生死,所以對于血液的冷鏈運輸環節就必須采取嚴格的冷鏈運輸措施[1]。當前,國內外已經研究出相關的血液冷鏈運輸監測系統。哈爾濱工業大學劉亮在基于ZigBee和GPRS的冷鏈監測系統的研制[2]文中將GPRS和ZigBee用于血液冷鏈存儲運輸。金秀國等研究人員在物聯網在血液儲運冷鏈監控中的應用[3]一文中制定出一套基于RFID卡技術和相關的物聯網技術的較為全面的血液冷鏈存儲運輸方案。但是,這些研究存在著一些不足之處,比如監測的車廂內的環境數據比較單一,只是對溫度進行了監測。其次,當前的監測系統數據采集部分對數據的處理不夠高效。
本文針對當前現有的血液冷鏈運輸監測系統存在的不足之處,以監測的多方面環境因素和數據的高效接收發送為切入點,研究出一套數據采集全面、實時性強、高準確性的血液冷鏈運輸監測系統。
1? 系統整體框架設計
根據血液冷鏈運輸監測研究現狀以及相關業務的需求,本課題設計的系統整體框架包含以下幾部分:數據采集發送端(部署在車輛車廂內)、數據接收處理遠程發送端(部署在車輛駕駛室內)、遠程監控中心服務器端(上位機實現)。系統整體框架如圖1所示。
數據采集發送端置于車廂內,由多個部署在血液箱中的ZigBee數據采集節點和一個ZigBee協調器組成,它負責以每個血液箱為單位采集車廂內的環境數據并發送給數據接收處理遠程發送端。環境數據包括每個血液箱的溫度、濕度、可燃氣體濃度和運動狀態。數據接收處理遠程發送端置于駕駛室內,由STM32微控制器、GPRS模塊和GPS/BDS雙定位模塊等組成。STM32微控制器通過GPRS模塊將接收到的環境數據和GPS/BDS雙定位模塊采集的地理位置數據傳送到遠程監控中心的服務器端。
遠程監控中心服務器端由數據庫和監測軟件組成,在上位機上實現。數據庫負責對遠端車輛傳送過來的數據進行處理和存儲。用戶操作監測軟件訪問數據庫能夠對車廂內的環境數據,車輛地理位置數據和報警信息進行實時顯示,能夠對數據進行增刪查改,能夠通過調用百度地圖實時查詢車輛的地理位置。
2? 系統硬件設計
系統硬件設計包括數據采集發送端硬件設計和數據接收處理遠程發送端硬件設計以及設備的選型。
2.1? 數據采集發送端硬件設計
數據采集發送端硬件部分包括ZigBee數據采集節點和ZigBee協調器。ZigBee協調器負責建立ZigBee網絡,然后各個部署在血液箱中的ZigBee數據采集節點就可以加入到ZigBee網絡,并將自身采集的環境數據傳送給協調器[4]。ZigBee數據采集節點和協調器都是采用美國TI公司生產的CC2530芯片為核心處理器,并在此基礎上對其進行功能設計與實現。CC2530芯片是基于IEEE 802.15.4協議開發出的一款ZigBee芯片,它擁有強大的RF收發器,內存高達256 KB,還擁有強大的地址識別和數據包處理引擎,能夠穩定、低功耗的實現ZigBee無線通信。
ZigBee數據采集節點硬件設計如圖2所示,以CC2530芯片為核心,利用天線進行ZigBee網絡通信。因為溫濕度對血液質量影響最大,因此溫濕度采集器的選擇尤為重要。本文使用DHT22數字溫濕度傳感器采集溫濕度數據。該傳感器是一款溫濕度復合傳感器,采集濕度分辨率為0.1%RH,常溫下精度為±2%RH,采集溫度范圍為-40~80 ℃,分辨率為0.1 ℃,精度達0.5 ℃,滿足世界衛生組織血液冷鏈運輸要求。CC2530將DHT22接在I/O口上通過軟件模擬DHT22的單總線數據讀取時序便可讀取DHT22內部的溫濕度數據。
MQ9氣體傳感器用于采集車廂內的可燃氣體濃度,主要是針對于車廂內的防火消防情況所配置的。MQ9是一款模擬氣體傳感器,可以監測液化氣、丁烷、丙烷、甲烷和一氧化碳的濃度,它的數據輸出形式為模擬量電壓輸出,通過將MQ9的模擬信號輸出口接到CC2350的I/O口上,將該輸出的電壓信號進行模/數轉換便可將其轉換為可燃氣的濃度。
MPU6050是將三軸加速度計和三軸陀螺儀集成到一起的運動處理組件,其內部嵌入了一個三軸MEMS加速度計和三軸MEMS陀螺儀,通過對二者數據的融合進行姿態解算,達到優勢互補能準確測量出載體的運動姿態[5]。MPU6050的生產公司給出了相關的驅動庫程序,但是將其移植到CC2530芯片上增加了技術難度,即便移植成功也因為CC2530芯片上還執行著其他任務增加了芯片負荷而達不到好的運動姿態測量效果。由于當下已經有成功移植到了STM32芯片上的MPU6050驅動庫程序并得到廣泛使用,所以此處使用STM32F103RCT6芯片來驅動MPU6050,用于測量血液箱的運動姿態。STM32F103RCT6芯片性價比高,滿足驅動MPU6050的要求,可達到很好的監測效果。STM32芯片通過I2C通信讀取MPU6050的測量數據,并將數據通過串口發送給CC2530芯片。
LED屏幕用于顯示采集的數據,LED燈指示CC2530工作狀態,程序下載部分通過串口下載程序,電源模塊使用5 V電池組供電。對于ZigBee協調器,其硬件部分除了不包含傳感器部分其余與ZigBee數據采集節點相同[6]。
2.2? 數據接收處理遠程發送端硬件設計
數據接收處理遠程發送端是整個車載端的核心處理樞紐,將部署在駕駛室。硬件組成有兩部分:STM32芯片和輔助硬件模塊。STM32芯片型號選擇STM32F767,它采用ARM Cortex?M7內核,工作頻率[7]高達216 MHz。圖3為數據接收處理遠程發送端硬件設計。
數據采集發送端的ZigBee協調器連接到STM32芯片上,用于向STM32芯片發送數據;LCD屏用來顯示數據;蜂鳴器用于數據異常時報警;GPS/BDS模塊負責對車輛地理位置進行定位[8];GPRS模塊負責遠程發送數據到遠程監控中心服務器端。
3? 數據分析
3.1? 溫濕度、可燃氣體濃度數據分析
血液冷鏈運輸溫度范圍一般在-5~1 ℃,因此對于采集的溫度數據只要超過這個范圍即可判定為溫度異常[9]。濕度范圍在35%RH~75%RH范圍內不會對血液冷鏈運輸造成不良影響,采集的濕度數據若超過這個范圍便判定為濕度異常。
丁烷、丙烷、甲烷等可燃氣體濃度達到一定范圍時在溫度較低條件下就能發生爆炸, MQ9氣體傳感器在測量可燃氣體濃度方面已經得到廣泛應用,根據其測量原理,當采集的可燃氣體濃度超過50%即為可燃氣體濃度異常[10]。考慮到運輸中噪聲對MQ9傳感器的干擾,當可燃氣體濃度超過45%判定為可燃氣體濃度異常。
3.2? 運動狀態數據分析
姿態傳感器MPU6050直接測量的原始數據有x,y,z三個方向的加速度和角速度。MPU6050內部自帶了一個數字運動處理器DMP,結合MPU6050的DMP和基于STM32的MPU6050驅動庫程序,可以將原始數據直接轉換成四元數輸出,利用四元數算法解姿態原理[11]最后計算出歐拉角,從而獲得其載體的三個姿態角:俯仰角(pitch)、偏航角(yaw)、翻滾角(roll)。下面對四元數算法側姿態原理進行詳述。
圖4中立方體初始狀態時,以其自身為基準所作三維坐標系為R1{x1,y1,z1},當立方體運動姿態發生改變時,其三維坐標系為R2{x2,y2,z2}。
坐標系R1到坐標系R2的變化過程可通過如圖5所示的過程來體現。
首先坐標系R1{X1,Y1,Z1}繞著x軸旋轉α角度(Pitch角),得坐標系Ra{Xa,Ya,Za};坐標系Ra{Xa,Ya,Za}繞著y軸旋轉β角度(roll角),得坐標系Rb{Xb,Yb,Zb};坐標系Rb{Xb,Yb,Zb}繞著z軸旋轉γ角度(yaw角),得坐標系R2{X2,Y2,Z2}。根據歐拉角法[12],兩個坐標系R1和R2的關系可通過矩陣變換形式來表示,如下:
[RX2RY2RZ2=CγCβCβSγ-SβSαSβCγ-SγCαSαSβSγ+CαCγCβSαSγSα+CαCγSβCαSβSγ-SαCγCαCβRX1RY1RZ1]? ? ? ? ? ? ? ? ? ? ? ? (1)
式中:S代表Sin函數;C代表Cos函數。
從坐標系1到坐標系2的旋轉矩陣如式(2)所示:
[R21=CγCβCβSγ-SβSαSβCγ-SγCαSαSβSγ+CαCγCβSαSγSα+CαCγSβCαSβSγ-SαCγCαCβ]? ?(2)
通過套用歐拉角微分方程就能算出α,β,γ三個角度。但是由于其涉及太多的三角函數運算,這給實時計算帶來了一些麻煩,所以在此需要引入四元數法解算姿態。四元數定義為四元數是由四個元素構成的數,如下所示:
[Q(q0,q1,q2,q3)=q0+q1i+q2j+q3k]? ?(3)
式中:[q0]是實數;i,j,k既是互相正交的單位向量,又是虛單位[-1] 。四元數有四個分量,其中只有一個是普通數值。因此可以將四元數看成兩部分:數量部分和向量部分。四元數有其相關的數學運算,在此不詳細介紹,讀者請參考相關文獻。四元數法來表示坐標系變換,那么可以得到坐標系R1到坐標系R2的變換過程如式(4)所示:
[R2=Q21?R1?(Q21)-1]? (4)
式中:[Q21{q0,q1,q2,q3}]表示[R1{RX1,RY1,RZ1}]到[R2{RX2,RY2,RZ2}]的旋轉變換,根據四元數運算法則,最終可以得到[R1]到[R2]旋轉過程,如下:
從而得到從R1到R2的旋轉矩陣如下:
[R21=q10+q21-q22-q232(q1q2-q0q3)2(q0q2+q1q3)2(q0q3+q1q2)q20-q21+q22-q232(q2q3-q0q1)2(q1q3-q0q2)2(q0q1+q2q3)q20-q21-q22+q23]? ? ? ? ? ? ? ? (6)
又由式(1)可得:
[CγCβ=q20+q21-q22-q23CβSγ=2(q0q3+q1q2)-Sβ=2(q1q3-q0q2)CβSα=2(q0q1+q2q3)CαCβ=q20-q21-q22+q23] (7)
解得姿態角如下:
[α=-arcsin(2(q1q3-q0q2))β=arctan2(q0q1+q2q3)q20-q21-q22+q23γ=arctan2(q0q3+q1q2)q20+q21-q22-q23]? ?(8)
arctan和arcsin函數算出的值范圍僅為±90°,在程序上實現時可采用C語言中的atan2函數,此函數類似arctan函數,但所求出的值范圍為±180°。所以一般pitch角范圍是±90°,roll和yaw角范圍是±180°。
姿態傳感器MPU6050用于監測血液箱的運動狀態是否處于嚴重傾斜或者側翻,此處忽略所測得的yaw角數據。經過實驗測試,當MPU6050所測得的姿態角中roll角或者pitch角的值大于60°且小于90°血液箱發生嚴重傾斜,當roll角或者pitch角的值大于90°血液箱發生側翻。只要roll角或者pitch角的值超過60°則判定為運動狀態異常。
4? 系統軟件設計
該系統軟件設計包括:數據采集發送端軟件設計,數據接收處理遠程發送端軟件設計和遠程監控中心服務器端軟件設計。
4.1? 數據采集發送端軟件設計
數據采集發送端軟件設計包括ZigBee數據采集節點和ZigBee協調器軟件設計。兩者都是在基于Z?Stack2007協議棧[13]開發的。
ZigBee數據采集節點在Z?Stack協議棧的應用層定義環境采集任務,在系統初始化時加入ZigBee網絡,當發生環境數據采集事件時進行數據采集并對采集的數據進行判斷是否異常,如果異常則在數據中加入報警信息,最后將數據發送給協調器。
ZigBee協調器在系統初始化時建立網絡,當有節點接入并發送數據過來時執行接收數據事件相應函數,然后將數據通過串口傳送給數據接收處理遠程發送端。ZigBee數據采集節點的軟件設計如圖6所示,ZigBee協調器與之類似。
4.2? 數據接收處理遠程發送端軟件設計
數據接收處理遠程發送端的主要任務有兩個:
1) 接收環境數據、報警信息和地理位置數據,并對其進行存儲及處理。
2) 將所有數據遠程發送給監控中心服務器端。
圖7所示為軟件設計流程圖。先進行系統初始化,車廂內環境數據采集周期與地理位置數據采集周期不同,因為車速很快,車輛地理位置變化迅速,地理位置數據采集周期要短一些。因此系統初始化時開一子線程,負責傳送車輛地理位置數據。主線程負責處理協調器發送過來的車廂內的環境數據。
4.3? 遠程監控中心服務器端軟件設計
在遠程監控中心上位機實現服務器端軟件設計,服務器端軟件由數據庫系統和監測軟件組成。數據庫將任何車輛遠程傳送過來的數據進行處理和存儲。監測軟件通過訪問數據庫實時顯示數據,可查看某一輛車的地理位置以及車廂內的每個血液箱的溫度、濕度、可燃氣體濃度和運動狀態以及報警信息。本課題采用Qt界面開發工具實現監測軟件[14],數據庫采用MySQL數據庫管理系統。如圖8所示,為服務器端軟件設計框架。
服務器端軟件設計中,以Qt為開發工具設計出具有良好的人機交互界面的監測軟件供用戶操作。用戶操作有四個模塊:賬戶信息管理、車輛信息管理、環境數據管理和地圖定位。賬戶數據、車輛信息、環境數據和地理位置數據都是保存在數據庫中,用戶通過人機交互界面可以直接操作數據庫中的數據。在地圖定位中,使用了百度地圖,Qt中嵌入百度地圖[15]過程如下:
1) 獲取百度地圖的API Key。
2) 在Qt中加入瀏覽器類QWebEngine,因為Qt中加載百度地圖需要用到網絡瀏覽器。
3) Qt通過QWebchannel類實例化的對象與百度地圖HTML文件中JavaScript程序代碼部分交互以此來實現定位功能。
5? 系統功能測試
將該系統運用在某醫院的血液冷鏈運輸任務中,從而對其進行系統功能測試。在本次測試中部署了6個ZigBee數據采集節點,分別對應6個血液冷藏箱,每個數據采集節點部署到血液冷藏箱中。
每個ZigBee數據采集節點將數據通過ZigBee網絡傳送到ZigBee協調器上,ZigBee協調器通過串口將數據傳送給數據接收處理遠程發送端處理。數據接收處理遠程發送端實物圖如圖9所示。圖10為實時監測時LCD屏幕上對數據的顯示。在測試中,通過人為改變04號血液冷藏箱的溫度和06號血液冷藏箱的運動狀態情況環境來驗證系統實時監測的報警效果,結果表明系統報警功能正常。
遠程后臺監控中心服務器端監測軟件能實時地接收數據,進行數據處理。用戶登錄監測軟件便可以查看數據及進行相關的操作。如圖11所示,監測軟件能實時顯示車輛車廂內的環境數據和相應的報警信息。圖12為在軟件中使用百度地圖對車輛地理位置進行定位,通過遠端傳來的最新的運輸車的經度和緯度信息對車輛進行地圖定位,點擊定位按鈕即可在百度地圖上實現定位,點擊紅色標識能顯示車輛相關信息[16]。
6? 結? 語
本文設計并實現了遠程血液冷鏈運輸監測系統,對運輸車車廂內血液的環境監測時采用ZigBee技術,使用GPS/BDS雙定位模塊對車輛地理位置進行定位,利用GPRS技術傳輸數據到遠程后臺監控中心。經過系統功能測試證明本文設計的系統實現了對血液冷鏈運輸時的實時監測,能夠防止血液運輸過程中出現嚴重的安全問題,降低了血液冷鏈運輸過程中的損失,該系統有著很重要的實用性。
參考文獻
[1] CHEGINI A, TORAB S A, POURFATOLLAH A A. A successful experience of the Iranian blood transfusion organization in improving accessibility and affordability of plasma derived medicine [J]. Transfusion & apheresis science, 2017, 56(1): 12?16.
[2] 劉亮.基于ZigBee和GPRS的冷鏈監測系統的研制[D].哈爾濱:哈爾濱工業大學,2015.
[3] 金秀國,王海紅,李浩孺,等.物聯網在血液儲運冷鏈監控中的應用[J].中國輸血雜志,2016,29(9):1068?1070.
[4] MORIDI M A, KAWAMURA Y, SHARIFZADEH M, et al. Performance analysis of ZigBee network topologies for underground space monitoring and communication systems [J]. Tunnelling & underground space technology, 2018, 71: 201?209.
[5] YANG D, WOO J K, LEE S, et al. A micro oven?control system for inertial sensors [J]. Journal of microelectromechanical
systems, 2017, 99: 1?12.
[6] 荀艷麗,焦庫,張秦菲.基于物聯網的智能家居控制系統設計與實現[J].現代電子技術,2018,41(10):82?84.
[7] 翟少磊,朱全聰,汪應龍,等.基于STM32F205的互感器校驗儀自動檢定裝置研究[J].電子器件,2018,41(3):105?112.
[8] ROBERTS G W, XU T, HE X. Accuracy analysis of GPS/BDS relative positioning using zero?baseline measurements [J]. Journal of global positioning systems, 2018, 16(1): 7?16.
[9] 劉洋,張榮,李哲,等.冷鏈設備溫度無線監控系統對提高血液質量的意義[J].中國藥業,2018(11):84?87.
[10] 邱小川.基于CAN總線的火災報警系統的軟件設計與實現[D].成都:電子科技大學,2018.
[11] 劉善伍,陳宏宇,張學鋼.衛星姿態四元數的連續化方法及姿態控制算法研究[J].航天控制,2017(3):30?33.
[12] 野瑩瑩,張艷珠,鄒心宇,等.歐拉角姿態解算的改進[J].裝備制造技術,2018(3):110?111.
[13] 陸睿.基于ZigBee的智能家居控制系統研究[D].南京:南京郵電大學,2017.
[14] 李帥,范項媛.基于Qt的無人機地面站軟件系統的設計[J].雷達科學與技術,2017,15(4):410?414.
[15] 甄乾鵬.基于基站的用戶定位系統設計與實現[D].成都:電子科技大學,2016.
[16] 田肖,郭曉金,何川,等.基于ZigBee的疫苗冷鏈運輸監測系統設計[J].物流技術,2017,36(9):175?179.