仝衛(wèi)國,侯 哲,曾世超,李芝翔
(華北電力大學(xué)控制與計(jì)算機(jī)工程學(xué)院,河北保定 071003)
系統(tǒng)采用模塊化的設(shè)計(jì)[5]實(shí)現(xiàn)以下功能:
(1)定位設(shè)備獲取衛(wèi)星定位信號并解析,將定位結(jié)果經(jīng)物聯(lián)網(wǎng)平臺中轉(zhuǎn)到上位機(jī);
(2)現(xiàn)場工作人員需輸入上位機(jī)產(chǎn)生的6位隨機(jī)數(shù)字密碼來開鎖;
(3)振動量超標(biāo)或密碼輸錯超過規(guī)定次數(shù)會觸發(fā)報警,也可由上位機(jī)發(fā)出指令來觸發(fā)報警;
(4)設(shè)備能且僅能由遠(yuǎn)程指令解除不正確的報警狀態(tài);
(5)上位機(jī)可以顯示設(shè)備的實(shí)時位置和狀態(tài);
(6)上位機(jī)可以選擇要管控的設(shè)備并進(jìn)行相應(yīng)的控制。
定位及遠(yuǎn)程管控系統(tǒng)的總體設(shè)計(jì)如圖1所示。硬件部分包含2個STM32控制芯片,主機(jī)主要實(shí)現(xiàn)控制定位和無線通信的功能,從機(jī)主要實(shí)現(xiàn)振動檢測、密碼輸入、開鎖和報警的功能;BC20集成了無線通信和定位功能,負(fù)責(zé)設(shè)備與上位機(jī)的信息交互以及實(shí)時定位信息的采集與解析;物聯(lián)網(wǎng)平臺是上位機(jī)和設(shè)備間的數(shù)據(jù)交換中轉(zhuǎn)站,便于進(jìn)行遠(yuǎn)程控制;軟件部分可遠(yuǎn)程查看設(shè)備報警狀態(tài)、位置信息,控制設(shè)備的聲光報警器、密碼鎖開閉。
文獻(xiàn)[2]中的數(shù)值計(jì)算結(jié)果是利用ANSYS的板單元SHELL63建模得到的,加載條件一樣,即忽略自重,在簡支直線箱梁跨中正對腹板的上翼緣板處作用對稱集中荷載,總量為P=0.272 2 kN,為了驗(yàn)證本模型的正確性,對比二者結(jié)果如表1。
設(shè)備的硬件設(shè)計(jì)采用的2個主控芯片均為STM32F103VET6,其內(nèi)核是Cortex-M3,屬于中低端的32位ARM微控制器。該芯片最高可達(dá)到72 MHz的工作頻率,存儲空間達(dá)512 kB,且具備豐富的I/O接口,能夠滿足本設(shè)備的功能需求[6~8]。本設(shè)備的硬件結(jié)構(gòu)主要包括電源模塊、按鍵模塊、聲光報警器模塊、繼電器模塊、震動傳感器模塊、電磁鎖模塊及無線通信模塊等。設(shè)備的硬件總體框圖如圖2所示。
為實(shí)現(xiàn)設(shè)備的防盜報警功能,使用高靈敏的SW-420常閉型振動傳感器用于探測設(shè)備的振動信號。該振動傳感器使用LM393比較器,具備信號干凈、波形好、驅(qū)動能力強(qiáng)等優(yōu)點(diǎn)。SW-420常閉型振動傳感器的電路原理如圖3所示。
由圖3可知,將從機(jī)的STM32 I/O口與SW-420的DO口相連,即可將數(shù)字信號傳入控制芯片。STM32通過數(shù)字信號來判斷設(shè)備是否遭受暴力破壞,如果振動信號持續(xù)且振動強(qiáng)度大,則從機(jī)驅(qū)動繼電器模塊控制聲光報警器開啟報警。
單片機(jī)和元器件間的通信方式很多,如CAN總線通信、SPI通信、串口通信等。為方便軟件設(shè)計(jì),本設(shè)計(jì)采取了雙STM32的方案。主機(jī)和從機(jī)之間采取串口通信的方式來實(shí)現(xiàn)信息交互。雙STM32通過USART1串口進(jìn)行雙向通信,RXD與TXD交叉相連,并通過串口調(diào)試助手實(shí)現(xiàn)了主從機(jī)的信息交換測試。主從機(jī)的串口通信連接示意如圖4所示。
BC20是一款高性能、低功耗、多頻段、支持GNSS定位功能的NB-IoT(narrow band internet of things)無線通信模塊,支持GPS、北斗等多個定位和導(dǎo)航系統(tǒng)[11]。BC20模塊中內(nèi)置LNA和低功耗算法:前者保證更高的靈敏度,后者保證低功耗模式下更低的耗流。BC20模塊較傳統(tǒng)NB-IoT+GNSS方案體積減少40%。
BC20的接口豐富,包括開關(guān)機(jī)接口、串口、SIM卡接口、GNSS射頻接口、NB-IoT接口等。根據(jù)該系統(tǒng)的設(shè)計(jì)需求及BC20官方設(shè)計(jì)手冊完成了NB-IoT模塊的硬件電路設(shè)計(jì),如圖5所示。
系統(tǒng)的軟件設(shè)計(jì)主要包括主機(jī)軟件設(shè)計(jì)、從機(jī)軟件設(shè)計(jì)和上位機(jī)軟件設(shè)計(jì)。其中主機(jī)軟件和從機(jī)軟件的編譯環(huán)境為Keil5,上位機(jī)軟件的編譯環(huán)境為Visual Studio 2017。
主機(jī)需要實(shí)現(xiàn)的功能包括與從機(jī)雙向通信、獲取定位數(shù)據(jù)、與物聯(lián)網(wǎng)平臺雙向通信。主機(jī)開啟或復(fù)位后,設(shè)備開始初始化并嘗試獲取設(shè)備的位置信息。主機(jī)與物聯(lián)網(wǎng)平臺通信完成后,上位機(jī)能將控制指令通過物聯(lián)網(wǎng)平臺傳到主機(jī),并由主機(jī)通過串口1(波特率115200)向從機(jī)下達(dá)控制指令。主機(jī)軟件設(shè)計(jì)流程如圖6所示。
從機(jī)需要實(shí)現(xiàn)的功能包括與主機(jī)雙向通信、防盜報警、臨時密碼開鎖。從機(jī)需要將狀態(tài)參數(shù)通過串口1傳輸給主機(jī),同時接收主機(jī)的報警及開鎖指令。從機(jī)的密碼鍵盤輸入僅接受主機(jī)控制,上位機(jī)生成隨機(jī)密碼發(fā)送給主機(jī)后,從機(jī)存儲主機(jī)傳輸?shù)呐R時密碼并啟動鍵盤掃描子程序。從機(jī)的聲光報警器開閉,僅接受上位機(jī)控制。從機(jī)主程序設(shè)計(jì)流程如圖7所示。
上位機(jī)軟件利用C++語言編寫,包括圖像界面、地圖顯示、通信等子程序。地圖顯示程序是在百度地圖的基礎(chǔ)上進(jìn)行開發(fā)的,具有精準(zhǔn)度高、更新快的優(yōu)點(diǎn)。上位機(jī)功能選項(xiàng)包括生成臨時密碼、報警開啟與停止、設(shè)備連接與斷開、同步設(shè)備移動軌跡。上位機(jī)登錄界面及功能界面如圖8、圖9所示。
為了測試上述方案的可行性,制作了2套實(shí)體設(shè)備,如圖10所示。設(shè)備采用全鋁合金材質(zhì),并內(nèi)置海綿,在運(yùn)輸過程中能夠有效保護(hù)內(nèi)部的重要物品??刂齐娐肺挥谠O(shè)備內(nèi)部,聲光報警器和天線位于設(shè)備右側(cè),設(shè)備上側(cè)的矩陣鍵盤能夠進(jìn)行密碼輸入。該實(shí)體設(shè)備僅供測試,后續(xù)可針對特定的物品設(shè)計(jì)并制作相應(yīng)的設(shè)備。
為驗(yàn)證系統(tǒng)的性能,在實(shí)驗(yàn)室及室外進(jìn)行多次設(shè)備定位、移動、遠(yuǎn)程報警及臨時密碼開鎖功能測試。首先啟動設(shè)備電源,登錄上位機(jī)查看設(shè)備登陸狀態(tài)。然后通過點(diǎn)擊上位機(jī)的功能選項(xiàng)來驗(yàn)證設(shè)備性能,具體測試各項(xiàng)功能的響應(yīng)時間如表1所示,定位精度測試數(shù)據(jù)如表2所示。
表1 設(shè)備響應(yīng)時間 s
表2 定位精度
由表1、表2的測試數(shù)據(jù)可以看出,本文設(shè)計(jì)的測試設(shè)備其定位精度高,室內(nèi)外定位誤差不超過5 m,且設(shè)備對上位機(jī)的控制響應(yīng)及時,10 s內(nèi)能夠接收到控制信號并實(shí)現(xiàn)相應(yīng)功能。
本文介紹了基于NB-IoT和STM32的定位及遠(yuǎn)程管控系統(tǒng)的軟硬件設(shè)計(jì)。本文給出了設(shè)備的整體設(shè)計(jì)思想,對設(shè)備的軟硬件設(shè)計(jì)方案進(jìn)行了詳細(xì)介紹,同時制作了實(shí)體設(shè)備進(jìn)行測試。測試結(jié)果表明,該系統(tǒng)極大提高了物品在存放及運(yùn)輸過程中的安全性,定位精度高,具有遠(yuǎn)程監(jiān)控功能。同時,采用的雙STM32設(shè)計(jì),方便后續(xù)進(jìn)行功能升級或功能拓展。在本設(shè)計(jì)的基礎(chǔ)上可以對保護(hù)裝置進(jìn)行改造,以適應(yīng)標(biāo)準(zhǔn)材料、精密儀器、機(jī)密文件或者有毒有害物質(zhì)等重要物品的運(yùn)輸需求。