王浩江,豆鑫逸,劉圣典,王鈞喆,羅凌昀
(上海電機(jī)學(xué)院 電氣學(xué)院,上海,201306)
近年來(lái),京東物流打造的 211 限時(shí)達(dá)、極速達(dá)、京尊達(dá)等高端物流產(chǎn)品,在消費(fèi)者心中成為行業(yè)的產(chǎn)品標(biāo)桿。同時(shí),隨著醫(yī)藥冷鏈物流需求增加,醫(yī)藥生產(chǎn)商和醫(yī)藥電商越來(lái)越傾向于將冷鏈運(yùn)輸服務(wù)外包給第三方物流服務(wù)商,以提高專業(yè)化、標(biāo)準(zhǔn)化和一體化水平。這些冷鏈產(chǎn)品主要包括疫苗、血液制品和生物制劑。在行業(yè)發(fā)展 過(guò)程中,會(huì)出現(xiàn)的運(yùn)輸物品損壞事件,但卻因證據(jù)不足而不能有令雙方都滿意的處理結(jié)果[1]。
面對(duì)高端快遞行業(yè)的發(fā)展,可循環(huán)使用的智能快遞盒呼之欲出。文獻(xiàn)[2]使用GSM/GPRS 技術(shù)通訊技術(shù)(即2G 技術(shù)),但此技術(shù)傳輸速率非常慢,且目前已有2G 基站加速退網(wǎng)趨勢(shì),基站保有量大幅減少。文獻(xiàn)[3]采用了NB-IoT 技術(shù),但此技術(shù)需要對(duì)基站進(jìn)行額外改造后才能適配,且延遲較高。現(xiàn)階段4G 技術(shù)發(fā)展較為成熟,傳輸速率高,覆蓋面廣,各運(yùn)營(yíng)商的4G 基站占基站總數(shù)的比例已達(dá)64.7%,優(yōu)勢(shì)明顯[4]。本設(shè)計(jì)突破傳統(tǒng)使用了4G Cat.1 通訊技術(shù),以STM32F7 單片機(jī)為核心,配合各傳感器設(shè)計(jì)了一種4G 通訊的新型智能快遞監(jiān)測(cè)箱,來(lái)達(dá)到減少快遞垃圾、監(jiān)測(cè)快遞貨物狀態(tài)、保護(hù)收發(fā)人兩方權(quán)益的目的。
本設(shè)計(jì)采用STM32F767 高性能單片機(jī)為控制核心,負(fù)責(zé)傳感器數(shù)據(jù)的收集、計(jì)算和發(fā)送;為了實(shí)時(shí)采集智能快遞箱的各種信息,采用串口通信的方式將各傳感器接入到單片機(jī)核心板。在采集到快遞箱的位置信息、溫濕度數(shù)據(jù)、運(yùn)動(dòng)軌跡信息以及光感數(shù)據(jù)后,通過(guò)串口通信發(fā)送到Cat.1 DTU通訊模塊,最后通過(guò)4G 通信上傳到阿里云服務(wù)器,手端可通過(guò)調(diào)取數(shù)據(jù)來(lái)實(shí)現(xiàn)實(shí)時(shí)檢測(cè)快遞盒狀態(tài)的效果。整個(gè)系統(tǒng)的結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)總體設(shè)計(jì)圖
一塊性能可靠和集成程度足夠高的開(kāi)發(fā)板,是整個(gè)系統(tǒng)穩(wěn)定運(yùn)行的核心。出于高性能、低功耗的設(shè)計(jì)考慮,本設(shè)計(jì)采用了正點(diǎn)原子的阿波羅STM32F767 開(kāi)發(fā)板,內(nèi)嵌ARM 核心,它的板載資源非常豐富,集成了多個(gè)傳感器,將STM32F767 的引腳資源得到充分開(kāi)發(fā)利用。開(kāi)發(fā)板的核心CPU 為STM32F767IGT6。
為了實(shí)現(xiàn)快遞運(yùn)輸中途違規(guī)開(kāi)盒探測(cè),需要采集盒內(nèi)光強(qiáng)度的變化情況,因此選擇啟用阿波羅開(kāi)發(fā)板上搭載的AP3216C 光環(huán)境傳感器。它支持多種工作模式,僅需連接三個(gè)引腳,即可實(shí)現(xiàn)驅(qū)動(dòng),具有功耗低、控制簡(jiǎn)單、封裝小的特點(diǎn),封裝體積僅為4.1mm×2.4mm×1.35mm。敦南科技在16 位分辨率的數(shù)字環(huán)境光傳感器(ALS)的基礎(chǔ)上,還集成了接近傳感器、紅外傳感器(均為10 位分辨率)[5]。它使用I2C 接口,內(nèi)部包含多個(gè)寄存器,具有良好的抗干擾性,支持高達(dá)400Hz 的通信速率。內(nèi)部框圖如圖2 所示。
圖2 AP3216C 框圖
在對(duì)一些藥物以及其他商品進(jìn)行運(yùn)輸過(guò)程中,必須進(jìn)行冷鏈運(yùn)輸。為檢測(cè)冷鏈運(yùn)輸中快遞所處環(huán)境是否符合相關(guān)標(biāo)準(zhǔn),在平衡好功率和精準(zhǔn)度之后,選擇采用DHT11 溫濕度傳感器采集相關(guān)數(shù)據(jù)。
DHT11 型數(shù)字傳感器集濕溫度檢測(cè)于一體,內(nèi)有電阻式濕度檢測(cè)元件、NTC 測(cè)溫元件,并內(nèi)部配置一個(gè)獨(dú)立的MCU 單元。在阿波羅STM32 開(kāi)發(fā)板的最下端,已提前預(yù)留好DHT11 的接口位置,其中NC 引腳為空腳,如圖3 所示。
圖3 DHT11 連接圖
GPS 模塊是智能快遞箱系統(tǒng)的重要組成部分,主要實(shí)時(shí)提供快遞箱所處的位置。NEO-6M GPS 模塊需要單片機(jī)2個(gè)串口,串口1 用來(lái)和電腦通訊,串口2 用來(lái)和GPS 模塊通訊,GPS 模塊主要進(jìn)行經(jīng)度和緯度的采集,并通過(guò)串口進(jìn)行數(shù)據(jù)的傳輸和發(fā)送。接收到之后printf 經(jīng)度和緯度即可。在意外斷電的情況下,模塊將啟用后備電源,掉電時(shí)仍可在設(shè)備上儲(chǔ)存收集到的數(shù)據(jù),待電源重連后繼續(xù)發(fā)送。GPS 模塊與開(kāi)發(fā)板的連接使用阿波羅開(kāi)發(fā)板上自帶的ATK MOUDLE 通用模塊接口,連接方式如圖4 所示。
為了記錄在運(yùn)輸過(guò)程中是否有劇烈拋物、大量顛簸的情況,啟用了阿波羅開(kāi)發(fā)板上的九軸傳感器。MPU9250 內(nèi)部共包括3個(gè)傳感器:三軸加速度計(jì)、三軸陀螺儀、三軸磁力計(jì),它不僅體積?。?mm×3mm×1mm)、功耗低,而且解決了陀螺儀與加速器軸間差的問(wèn)題。具有400kHz 每秒的傳輸速度,供電電壓2.4~3.6V。在讀取數(shù)據(jù)后,通過(guò)使用其自帶的DMP 處理器以及InvenSense 公司的運(yùn)動(dòng)處理庫(kù),直接實(shí)現(xiàn)運(yùn)動(dòng)姿態(tài)的解算,以記錄是否有暴力拋物現(xiàn)象在快遞運(yùn)輸過(guò)程中發(fā)生,具有非常好的響應(yīng)特性。解算完畢的數(shù)據(jù)以數(shù)字信號(hào)的形式16 位AD 輸出,實(shí)時(shí)采集的數(shù)據(jù)傳輸給STM32F767 主控芯片[6]。傳感器的引腳示意圖見(jiàn)圖5。
圖5 九軸傳感器電路圖
本設(shè)計(jì)將采用DTU 通訊模塊,實(shí)現(xiàn)快遞盒與阿里云服務(wù)器之間的連接。Cat.1 全稱LTE UE-Category 1,是一個(gè)4G 通信網(wǎng)絡(luò)下用戶終端類別標(biāo)準(zhǔn)。相比于其他通訊技術(shù),4G Cat.1 憑借更好的網(wǎng)絡(luò)覆蓋、更快的速度、更低的延時(shí),具有高額的市場(chǎng)占有率,可以確??爝f盒在運(yùn)輸?shù)耐局写蟛糠謺r(shí)間都可以保持?jǐn)?shù)據(jù)與云服務(wù)器的連接[7]。
設(shè)計(jì)采用了正點(diǎn)原子的ATK-IDM750C 高性能Cat.1 通訊模塊,尺寸僅有30mm×34.5mm;上下行最高速度分別為10Mpbs/5Mps,工作電流為300mA;插入任一大運(yùn)營(yíng)商的4G SIM 卡,模塊可支持HTTP、MQTT、阿里云、百度云、OneNET 等多種數(shù)據(jù)傳輸模式。支持TCP/UDP 協(xié)議和心跳包功能,保障了信號(hào)連接的穩(wěn)定。另外,模塊支持發(fā)送通信、基站定位(經(jīng)緯度)以及掉線后自動(dòng)重連[8]。
為了保證運(yùn)輸過(guò)程的安全,選用優(yōu)質(zhì)的鋰電池供電。同時(shí),使用專用電池管理系統(tǒng)(BMS),能夠?qū)崟r(shí)監(jiān)測(cè)電池的電壓、溫度、電流等參數(shù),并提供過(guò)充、過(guò)放、過(guò)流和高溫保護(hù)。定期檢查和維護(hù):定期檢查電池的外觀和接線是否正常。如果發(fā)現(xiàn)損壞、漏液、鼓包等異常情況,將更換電池并妥善處理廢棄電池。同時(shí),定期檢查BMS 的運(yùn)行狀態(tài)和保護(hù)功能是否正常。在嵌入盒內(nèi)時(shí),將采用阻燃材料對(duì)電池進(jìn)行包裹,進(jìn)一步提高安全性。
若運(yùn)輸過(guò)程中盒內(nèi)溫濕度高于對(duì)運(yùn)輸?shù)奈锲吩斐蓳p壞的安全值,則會(huì)發(fā)送報(bào)警值手機(jī)APP。通過(guò)進(jìn)行工作狀態(tài)檢測(cè),利用DHT11-Check()函數(shù),如果在內(nèi)置單片機(jī)發(fā)送起始信號(hào)后,DHT11 返回低電平后又接著迅速返回高電平,則表明DHT11 傳感器運(yùn)行正常。應(yīng)該注意主機(jī)拉低總線時(shí)間一定要在18 毫秒以上,以確保DHT11 探測(cè)出起始信號(hào)。DHT11 與MCU 一次通訊大約為3 毫秒,主機(jī)的連續(xù)時(shí)間間隔必須大于100 毫秒。內(nèi)置單片機(jī)使用DHT11-Read-Data(u8 *temp,u8 *wenshi)函數(shù)讀取DHT11 上的傳感器收集的數(shù)據(jù),經(jīng)過(guò)進(jìn)一步運(yùn)算后,該函數(shù)會(huì)以單總線輸出溫度和濕度數(shù)據(jù)。傳感器MCU 處理結(jié)果的發(fā)送流程圖如圖6所示。
圖6 DHT11 數(shù)據(jù)發(fā)送流程圖
圖7 阿里云透?jìng)髂J綌?shù)據(jù)傳輸示意圖
圖8 APP 程序流程圖
MPU9250 九軸傳感器內(nèi)置有DMP(數(shù)字運(yùn)動(dòng)處理器),可以對(duì)傳感器的原始數(shù)據(jù)進(jìn)行四元數(shù)轉(zhuǎn)化后輸出。方便了數(shù)據(jù)的處理,首先用u8 mpu_dmp_init(void)函數(shù)來(lái)初始化DMP,用mpu_set_dmp_state(1)函數(shù)來(lái)使能DMP 功能;用u8 mpu_mpl_get_data(float*pitch,float *roll,float *yaw)函數(shù)來(lái)獲取mp1 姿態(tài)解算后的數(shù) 據(jù),用int dmp_read_fifo(short *gyro,short *accel,long*quat)函數(shù)來(lái)讀取數(shù)據(jù),以得到姿態(tài)解算后的歐拉角。
通過(guò)對(duì)運(yùn)動(dòng)姿態(tài)的記錄,在發(fā)生運(yùn)輸物品損壞時(shí)可作為證據(jù)來(lái)進(jìn)行索賠。若發(fā)生激烈動(dòng)作,則會(huì)報(bào)警至APP 端。使用上位機(jī)軟件對(duì)傳感器的波形進(jìn)行顯示,在此過(guò)程中,usartl_nimingreport 函數(shù)會(huì)對(duì)數(shù)據(jù)進(jìn)行封裝,計(jì)算校驗(yàn)并提交到地面站軟件。利用MPU9250_send_data 函數(shù)來(lái)報(bào)告加速度及陀螺儀原始數(shù)據(jù),可用來(lái)對(duì)傳感器數(shù)據(jù)進(jìn)行波形顯示,并以傳感器幀(02H)形式發(fā)送出去。usatl_report_imu 函數(shù)則是用來(lái)報(bào)告飛控顯示幀的函數(shù),它能實(shí)時(shí)顯示MPU9250 姿態(tài)、傳感器數(shù)據(jù)等等,并由狀態(tài)幀(01H)傳送出去。需要注意的是,數(shù)據(jù)處理要進(jìn)行校準(zhǔn)操作,即將快遞盒平放,采集n 組數(shù)據(jù)后取平均值,將隨后采集到的數(shù)據(jù)減去平均值。若加速度或者角速度過(guò)大,則表明快遞盒遭到了暴力拋物運(yùn)輸,手機(jī)端將現(xiàn)實(shí)警告。
為了保證藥效,有些藥品需要避光儲(chǔ)存及運(yùn)輸,若在運(yùn)輸過(guò)程中發(fā)生了違規(guī)開(kāi)盒、強(qiáng)光照射,則會(huì)做出記錄并報(bào)警至APP 端。AP3216C 光環(huán)境傳感器內(nèi)部有許多寄存器,這些寄存器可以控制AP3216C 的工作模式、中斷方式以及采集數(shù)據(jù)模式。數(shù)據(jù)的讀取間隔應(yīng)大于112.5ms。
首先使用AP3216C_Init 函數(shù)將AP3216C 初始化并復(fù)位,將工作模式設(shè)為ALS+PS+IR 模式(三個(gè)傳感器同時(shí)工作)。調(diào)用寄存器的第一步是寫操作,使用AP3216C_WriteOneBite(u8 reg,u8 data) 函數(shù),其中u8 reg 是入口參數(shù)的地址;第二步是讀操作,用AP3216C_ReadOneBite(u8 reg)這個(gè)函數(shù)可以循環(huán)讀取傳感器中的數(shù)據(jù)。最 后,AP3216C_ReadData(u16*ir,u16*ps,u16*als)函數(shù)可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的讀取然后封裝。在調(diào)用這些函數(shù)收集到目標(biāo)數(shù)據(jù)后,程序?qū)⑼ㄟ^(guò)STM32F767 進(jìn)行處理計(jì)算。
如中途檢測(cè)到光強(qiáng)突然劇增,表明快遞盒被強(qiáng)制打開(kāi),系統(tǒng)將做記錄并上傳至云端。開(kāi)發(fā)板上的MIC(麥克風(fēng)咪頭),已分別接入到WM8978 音頻芯片的2 個(gè)差分輸入通道,將對(duì)現(xiàn)場(chǎng)環(huán)境進(jìn)行WAV 格式的錄音并存儲(chǔ)至板載SD 卡伺機(jī)上傳。
NEO-6M GPS 模塊將與阿波羅開(kāi)發(fā)板的ATK-MOUDLE接口相連。在使用陶瓷天線通訊時(shí),首次冷啟動(dòng)時(shí)間為1~10 分鐘,若外接SMA 天線可縮短至1~3 分鐘;若LED燈以亮滅時(shí)間9:1 進(jìn)行閃爍,表示模塊已定位成功,模塊導(dǎo)航電文采用NMEA-0183 協(xié)議,通過(guò)串口2 接收位置信息,對(duì)得到的七條數(shù)據(jù)指令進(jìn)行解碼后輸出位置,精度在2.5m以內(nèi)。
程序使用unsigned char Ublox_Cfg_Rate(unsigned short measrate,unsigned char reftime) 函數(shù)來(lái)設(shè)置更新速率,其中參數(shù)short measrate 為測(cè)量時(shí)間間隔,參數(shù)reftime 為參考時(shí)間。為實(shí)現(xiàn)GPS 的初始化,將調(diào)用unsigned char GPS_Init(void) 函數(shù);用void NMEA_GPGGA_Analys is(GPS_Packet Type Def *GPS_Packet,u8 *buf) 函數(shù)來(lái)對(duì)數(shù)據(jù)進(jìn)行處理;其中buf 是收到GPS 數(shù)據(jù)緩沖區(qū)首地址。
4G Cat.1 DTU 通訊模塊需要外部單獨(dú)供12V 的電壓,插入4G 的SIM 卡后,利用單片機(jī)與模塊進(jìn)行uart 串口連接,服務(wù)器將數(shù)據(jù)發(fā)送到DTU 模塊,接著通過(guò)串口發(fā)送給單片機(jī),便可遠(yuǎn)程控制單片機(jī)工作;另一方面,單片機(jī)采集到的數(shù)據(jù)也可以通過(guò)串口發(fā)送至DTU 模塊,DTU 模塊轉(zhuǎn)送至服務(wù)器端,便實(shí)現(xiàn)遠(yuǎn)程控制數(shù)據(jù)采集。DTU 共有2 種狀態(tài),分別為透明傳輸狀態(tài)和配置狀態(tài)。當(dāng)處于配置狀態(tài)時(shí),主要采用正點(diǎn)原子的上位機(jī)調(diào)試軟件來(lái)進(jìn)行配置。首先在阿里云創(chuàng)建物聯(lián)網(wǎng)設(shè)備,將DTU 模塊連接阿里云服務(wù)器,對(duì)DTU的相關(guān)參數(shù)進(jìn)行配置。使用上位機(jī)調(diào)試軟件依次進(jìn)行串口,按鍵及內(nèi)部?jī)?nèi)存池的初始化,從內(nèi)存池中分配內(nèi)存給串口3 進(jìn)行DTU 的數(shù)據(jù)接收。DTU 在接收到數(shù)據(jù)后,會(huì)將數(shù)據(jù)轉(zhuǎn)發(fā)到串口進(jìn)行輸出。此外,用戶可以使用短信功能實(shí)現(xiàn)通訊模塊配置,以短信形式發(fā)送AT 指令來(lái)遠(yuǎn)程查詢DTU 的參數(shù)。當(dāng)處于透?jìng)鳡顟B(tài)時(shí),DTU 會(huì)與阿里云服務(wù)器進(jìn)行數(shù)據(jù)交互;當(dāng)DTU 斷電重啟后,會(huì)默認(rèn)為透?jìng)髂J健?/p>
安卓系統(tǒng)具有開(kāi)放性、開(kāi)發(fā)成本低的特點(diǎn),具有其廣泛的用戶群體。本設(shè)計(jì)以Microsoft Visual Studio Emulator for Android 為開(kāi)發(fā)環(huán)境,使用Java 語(yǔ)言開(kāi)發(fā)了快遞盒系統(tǒng)的移動(dòng)監(jiān)視端。
提前記錄好快遞單號(hào)和其唯一對(duì)應(yīng)的快遞盒設(shè)備號(hào),在軟件程序的查詢界面輸入快遞盒的設(shè)備號(hào)后,APP 將迅速調(diào)取阿里云服務(wù)器上當(dāng)前設(shè)備的在線情況;如果電池電量不足,或有元件損壞,將通過(guò)4G 通訊模塊上傳到手機(jī)APP,通知使用者及時(shí)更換電池或維修設(shè)備。自檢通過(guò)后,將顯示快遞盒內(nèi)的溫濕度,是否有中途違規(guī)開(kāi)盒、是否有暴力拋物運(yùn)輸?shù)刃袨椋ㄟ^(guò)Cat.1 通訊模塊的LBS 定位(即基站定位)功能和GPS 模塊定位,對(duì)當(dāng)前快遞所處位置進(jìn)行實(shí)時(shí)記錄并上傳至阿里云服務(wù)器。如果光傳感器檢測(cè)到快遞盒內(nèi)部光強(qiáng)度變化幅度過(guò)大,說(shuō)明貨物已被窺探,將使用開(kāi)發(fā)板上的咪頭麥克風(fēng)進(jìn)行錄音并上傳至云服務(wù)器,以保留證據(jù)。設(shè)備具有數(shù)據(jù)記錄功能,支持查詢寄出后快遞的情況,以圖表的形式為客戶展現(xiàn)在詳細(xì)信息的頁(yè)面。移動(dòng)APP 端的程序流程圖如圖9 所示。
圖9 手機(jī)APP 示意圖
圖10 硬件電路測(cè)試圖
測(cè)試結(jié)果顯示,智能快遞盒可以較好地監(jiān)測(cè)貨物所處環(huán)境數(shù)據(jù)。
本設(shè)計(jì)定位為高端醫(yī)藥運(yùn)輸、高端私人運(yùn)輸?shù)葓?chǎng)景下的快遞盒,可以實(shí)現(xiàn)多次循環(huán)使用。采用以阿波羅STM32F767 開(kāi)發(fā)板上的處理器為核心,利用板載的及通過(guò)各個(gè)串口外接的傳感器收集數(shù)據(jù),通過(guò)Cat.1 DTU 上傳到阿里云服務(wù)器,最后通過(guò)安卓App 實(shí)時(shí)查看數(shù)據(jù)的智能快遞檢測(cè)箱。相較之前的研究,采用了性能更加強(qiáng)悍的核心處理器和更加豐富的傳感器作為環(huán)境數(shù)據(jù)來(lái)源,全程檢測(cè)運(yùn)輸過(guò)程中的環(huán)境變化,更好地保護(hù)了收發(fā)人的利益,且可以多次重復(fù)使用,減少了快遞垃圾。