鄧 凱,任志敏
(常州紡織服裝職業(yè)技術(shù)學(xué)院,江蘇 常州 213164)
隨著新一代物聯(lián)網(wǎng)技術(shù),云計算技術(shù),區(qū)塊鏈技術(shù)的發(fā)展與成熟,不斷改變著人們原有的生活方式,有些變化甚至是革命性的。比如定位技術(shù),人們可以依靠一部帶有導(dǎo)航軟件的手機去往任何目的地,這在過去是無法想象的。眾所周知,現(xiàn)有的導(dǎo)航軟件主要依靠基于衛(wèi)星的定位系統(tǒng)(比如:GPS,北斗),主要用于戶外,但是由于建筑物屏蔽造成衛(wèi)星信號的衰減,在室內(nèi)幾乎接收不到衛(wèi)星信號,因此,造成室內(nèi)導(dǎo)航的盲點。但是,室內(nèi)導(dǎo)航的需求量又非常巨大,比如工廠的人員定位,貴重資產(chǎn)的物資定位,搬運AVG機器人的防碰撞設(shè)計,商場店鋪、醫(yī)院科室等導(dǎo)航需求。因此,設(shè)計一個室內(nèi)室外一體的定位系統(tǒng)有著迫切的現(xiàn)實需求。
室外導(dǎo)航技術(shù)、產(chǎn)品相對成熟,可以采用GPS/北斗導(dǎo)航系統(tǒng)。但室內(nèi)導(dǎo)航仍舊處于百花齊放的階段,目前可用的室內(nèi)定位技術(shù)有:Wi-Fi、藍(lán)牙、紅外線、超寬帶(UWB)、RFID、ZigBee和超聲波,從技術(shù)路線、成本、定位精度等方面考慮,各有利弊,其中基于802.15.4協(xié)議的UWB的定位精度最高,可達(dá)10cm,功耗也較低,因此本課題使用UWB技術(shù)實現(xiàn)室內(nèi)三維定位。
室外定位通過GPS/北斗模組獲取經(jīng)度緯度坐標(biāo)信息,室內(nèi)定位通過UWB獲取x,y,z三維坐標(biāo)。對于定位系統(tǒng)來說,獲取坐標(biāo)信息是最為關(guān)鍵的第一步,第二步是如何處理和呈現(xiàn)數(shù)據(jù),考慮到定位的不同需求,本課題以工廠人員定位的需求作為研究對象。一是工廠人員的活動場所可能是室外或室內(nèi);二是人員會流動,可能在辦公樓的一層,也可能在其他樓層;三是作為工廠管理方,希望能夠在辦公室或出差期間均能看到員工上班期間的定位信息。
基于以上需求,本課題采集室外經(jīng)緯度坐標(biāo)、室內(nèi)UWB定位坐標(biāo),系統(tǒng)電池余量值,以及員工ID等數(shù)據(jù),通過GPRS模組/NB-IoT模組把這些數(shù)據(jù)送到云端,工廠從云端獲得這些數(shù)據(jù),既可以在PC端顯示,也可以在手機等移動設(shè)備端顯示。總體設(shè)計框圖如圖1所示。
圖1 總體設(shè)計框圖
在本課題的方案中,獲取室外經(jīng)緯度坐標(biāo)相對簡單,重點在于如何通過UWB獲取室內(nèi)定位的x,y,z坐標(biāo)。通過研究發(fā)現(xiàn),本課題選用Decawave公司生產(chǎn)的DWM1001模組組成網(wǎng)絡(luò)實現(xiàn)室內(nèi)定位。DWM1001模組室內(nèi)定位整體設(shè)計框架如圖2所示。
圖2 室內(nèi)定位整體設(shè)計圖
DWM1001模組是由Decawave公司生產(chǎn)的基于UWB技術(shù)的定位模組,在定位系統(tǒng)中其可以充當(dāng)多種角色,包括基站、標(biāo)簽、網(wǎng)關(guān)等,因此可以很方便地利用DWM1001模組組成DRTLS(Two-Way-Ranging Real Time Location System)網(wǎng)絡(luò)。在如圖2所示的網(wǎng)絡(luò)中,基站的位置是固定的,并設(shè)定對應(yīng)的坐標(biāo),如圖3所示,圖3展示了4個基站和1個標(biāo)簽的定位結(jié)構(gòu)。
圖3 4基站+1標(biāo)簽的定位結(jié)構(gòu)
基站1、2、3、4組成了一個小區(qū)域定位網(wǎng)絡(luò),4個基站可以實現(xiàn)x,y,z三維定位。兩個基站之間的最長距離可以達(dá)60米,若配置定位刷新頻率為1秒/次,4個基站內(nèi)最多可以容納150個標(biāo)簽[1],顯然刷新頻率越低,可以容納的標(biāo)簽越多,對于人員定位而言,刷新頻率可以降為5秒/次,因此可以容納750個標(biāo)簽,在4個基站組成的360 m2的區(qū)域內(nèi),可同時容納750個員工顯然大大超過了實際情況。每個基站的坐標(biāo)x,y,z是固定設(shè)置的,為了保證定位精度,最好每個基站處于同一高度平面上,即z坐標(biāo)相同。標(biāo)簽在基站區(qū)域內(nèi)移動,每隔5秒,標(biāo)簽相對于基站的坐標(biāo)即會輸出。
基于總體設(shè)計框圖,定位坐標(biāo)、電量、員工ID需要采集并上傳至云端,因此需要設(shè)計GPS模組,GPRS/NB-IoT模組和微控制器系統(tǒng),以及設(shè)計DWM1001模組與微控制器系統(tǒng)的連接。
選擇S1216F8-BD作為經(jīng)緯度定位模組。S1216F8-BD是一個性價比極高的全球定位接收貼片封裝模組,其基于Skytraq Venus 8定位技術(shù),定位精度達(dá)2.5m CEP accuracy,可以作為GPS/Beidou衛(wèi)星信號的接收器。該模組內(nèi)部集成濾波器和高性能LNA,與主動和被動天線一起工作,標(biāo)準(zhǔn)的NMEA-0183定位數(shù)據(jù)通過UART串行接口輸出,便于用戶上手[2]。
目前市場上主流的NB-IoT芯片主要有三家,分別是紫光展銳的春藤8908,華為海思的Boudica系列和聯(lián)發(fā)科的MT2625。
N256是一款基于MT2625平臺的多功能無線模塊。該模塊可支持3GPP/R13/R14的NB-IoT標(biāo)準(zhǔn),工作的頻段為: B1、B3、B5和B8四個頻段。作為一款用于嵌入式系統(tǒng)的通信模組,N256模塊17.6×15.7×2.3mm的尺寸可以很好滿足工程應(yīng)用中對空間尺寸的要求。滿足M2M(machine to machine)的需求,包括可穿戴服務(wù)、安全系統(tǒng)、無線POS機、工業(yè)級PDA、智能電表、無線遙控等。N256模塊一共引出MT2625的42腳作為其物理接口,提供了用戶可能用到的所有硬件接口,包括一個UART固件下載接口,一個全功能串口和一個三線串口[3]。
基于設(shè)計需求,控制板有待完成的任務(wù)包括:采集室內(nèi)室外定位坐標(biāo)、與NB-IoT模塊通信、采集電池余量等。
本課題選擇STM32F103RCT6作為核心控制器。STM32F103RCT6是ST意法半導(dǎo)體公司生產(chǎn)的基于ARM Cortex-M3內(nèi)核的32位微控制器,工作最高主頻可達(dá)72 MHz;48Kx8大小的運行內(nèi)存;256Kx8大小的FLASH程序存儲器;集成了CAN、I2C、IrDA、SPI、UART/USART、USB等豐富的通信的接口;提供了多個基本定時器、通用定時器和高級定時器等多樣定時器資源;芯片內(nèi)部集成多路ADC、DAC、SDIO和GPIO資源;芯片采用64-LQFP封裝[4]。
UART1用于與NB-IoT模塊的數(shù)據(jù)收發(fā)接口,UART2用于與GPS模塊的數(shù)據(jù)收發(fā)接口,UART3用于與DWM1001模組的數(shù)據(jù)收發(fā)接口。ADC1用于采集電池余量接口。
GPS定位模組S1216與STM32F103RCT6通信接口采用UART的方式,本課題采用115200 bps,S1216輸出的定位數(shù)據(jù)符合$GNRMC(Recommended Minimum Specific GPS/Transit Data)推薦定位信息協(xié)議。根據(jù)$GNRMC協(xié)議,編程解析獲取各種數(shù)據(jù)信息,程序流程如圖4所示。
圖4 解析$GNRMC協(xié)議流程圖
根據(jù)DWM1001的技術(shù)文檔,DWM1001模組可以通過SPI,UART等接口與上位機進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)傳輸采用TLV(Type-Length-Value)協(xié)議傳輸。本課題使用STM32F103RCT6的UART接口與DWM1001進(jìn)行數(shù)據(jù)傳輸。本課題只要獲取DWM1001輸出的x,y,z坐標(biāo),根據(jù)TLV協(xié)議,STM32F103RCT6端發(fā)送命令0x02,0x00即可,DWM1001返回的數(shù)據(jù)見表1。
表1 DWM1001返回定位數(shù)據(jù)
首先判斷錯誤代碼,若是0x00,表示正確,然后采集對應(yīng)的x,y,z坐標(biāo)即可。
獲取定位數(shù)據(jù)后,需要把數(shù)據(jù)發(fā)送到云端,本課題選擇機智云作為云端平臺。按照機智云平臺的要求,首先需要待上傳的數(shù)據(jù)點,其次編寫程序把數(shù)據(jù)發(fā)送到機智云。STM32F103RCT6與NB-IoT在軟件上通過AT指令通信。程序總的流程如圖5所示。
數(shù)據(jù)發(fā)送到機智云在TIM3定時中斷實現(xiàn),每隔5秒發(fā)送一次數(shù)據(jù)。衡量一個監(jiān)控系統(tǒng)是否優(yōu)劣的評判標(biāo)準(zhǔn)主要有兩條:一是采集數(shù)據(jù)的準(zhǔn)確性,二是傳輸數(shù)據(jù)的穩(wěn)定性、可靠性。為了最優(yōu)化實現(xiàn)評判標(biāo)準(zhǔn)二,本課題在軟件部分設(shè)計了以下措施:
1) 每次發(fā)送數(shù)據(jù)后,判斷應(yīng)答反饋是否準(zhǔn)確,一旦未接收到期望數(shù)據(jù),立刻軟件復(fù)位,系統(tǒng)重啟。
2) 在應(yīng)答反饋準(zhǔn)確的前提下,再次判斷應(yīng)答反饋是否有錯誤信息,一旦有錯誤信息,同樣復(fù)位,系統(tǒng)重啟。
圖5 STM32F103RCT6總體程序流程圖
3) 每30分鐘檢查一次是否仍舊在線,若離線,則重啟系統(tǒng)。
4) 每12小時主動離線,重啟系統(tǒng)。
5) 使用獨立看門狗保證程序不跑飛。
6) 初始化時,復(fù)位NB-IoT,登錄機智云時連續(xù)三次不成功則復(fù)位系統(tǒng)。
為了測試和展示采集數(shù)據(jù),本課題借助機智云平臺提供的Android應(yīng)用開發(fā)SDK包[5],設(shè)計Android應(yīng)用程序,實時獲取機智云平臺的室內(nèi)外坐標(biāo)數(shù)據(jù),顯示到用戶手機端。