石袁浩 錢明 孫蔚洋 唐先行 馮萬利
摘 要:針對(duì)建筑工地危險(xiǎn)區(qū)域眾多,地形復(fù)雜的情況,為確保工地施工過程的安全,需對(duì)施工的危險(xiǎn)區(qū)域進(jìn)行實(shí)時(shí)安全監(jiān)控,對(duì)工人進(jìn)入危險(xiǎn)區(qū)域?qū)嵤﹫?bào)警。針對(duì)以上情況,提出一種基于NB-IoT的工地警報(bào)系統(tǒng)。該系統(tǒng)通過STM32連接GPS模塊及NB-IoT模塊,通過連接華為物聯(lián)網(wǎng)云端平臺(tái)實(shí)現(xiàn)數(shù)據(jù)交互,通過Web界面實(shí)現(xiàn)危險(xiǎn)區(qū)域的劃分并實(shí)時(shí)顯現(xiàn)、實(shí)時(shí)監(jiān)測(cè)、進(jìn)入危險(xiǎn)區(qū)域報(bào)警的功能,解決了工地危險(xiǎn)區(qū)域預(yù)警這一實(shí)際問題,保證工人的安全。
關(guān)鍵詞:GPS定位;STM32;NB-IoT;PNPoly算法;云端平臺(tái);危險(xiǎn)預(yù)警
中圖分類號(hào):TP277文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)11-0-04
0 引 言
現(xiàn)階段,大量城市基建需要改建擴(kuò)建,由于建筑工地上存在各種大型機(jī)械設(shè)備及多種建筑材料,因此是安全事故的頻發(fā)地。若工地上存在危險(xiǎn)區(qū)域,工作人員沒有及時(shí)了解,則誤入該區(qū)域很可能會(huì)發(fā)生危險(xiǎn)。
本文基于NB-IoT技術(shù)設(shè)計(jì)一種工地警報(bào)系統(tǒng)。該系統(tǒng)采用STM32微控制器,連接云端平臺(tái)實(shí)現(xiàn)數(shù)據(jù)交互,以及Web頁面的編寫,很好地解決工人誤入危險(xiǎn)區(qū)域的情況,較大程度上節(jié)約投資成本,也能更好地保證工人的安全。
1 關(guān)鍵技術(shù)研究
1.1 華為IoT平臺(tái)
1.1.1 設(shè)備接入
華為IoT平臺(tái)支持終端設(shè)備直接接入,也可通過工業(yè)網(wǎng)關(guān)或家庭網(wǎng)關(guān)接入。同時(shí),支持多網(wǎng)絡(luò)接入、多協(xié)議接入、多Agent接入和云端協(xié)議解析,解決接入設(shè)備的復(fù)雜多樣化和碎片化難題,實(shí)現(xiàn)設(shè)備的快速接入。
(1)多網(wǎng)絡(luò)接入:支持有線和無線的接入方式,如固定寬帶,2G/3G/4G/5G,NB-IoT,Z-Wave,ZigBee,eLTE等。
(2)多協(xié)議接入:支持HTTP/S,MQTTS,LWM2M/CoAP原生協(xié)議接入。
(3)多Agent接入:支持Agent Rich,Agent Lite和Agent Tiny,覆蓋的語言包括C,Java,Python。Agent可與海思、高通主流芯片、模組預(yù)集成,縮短了TTM。
(4)云端協(xié)議解析:支持在云端對(duì)接入?yún)f(xié)議和設(shè)備數(shù)據(jù)進(jìn)行解析,無需變更設(shè)備端數(shù)據(jù)上報(bào)格式,可在云端開發(fā)插件,靈活解析。
1.1.2 安全及數(shù)據(jù)保護(hù)
IoT提供多種安全防護(hù)措施,確保設(shè)備安全、數(shù)據(jù)有效保護(hù)。
設(shè)備安全:提供一機(jī)一密的設(shè)備安全認(rèn)證機(jī)制,防止設(shè)備非法接入。
信息傳輸安全:基于TLS,DTLS,DTLS+加密協(xié)議,提供安全的傳輸通道。
數(shù)據(jù)保護(hù):滿足歐盟GDPR數(shù)據(jù)隱私保護(hù)要求。
基于以上優(yōu)點(diǎn),選擇使用華為IoT云平臺(tái)實(shí)現(xiàn)設(shè)備入網(wǎng),實(shí)現(xiàn)數(shù)據(jù)上報(bào)、下發(fā)。
1.2 窄帶物聯(lián)網(wǎng)技術(shù)
窄帶物聯(lián)網(wǎng)(NB-IoT)[1]基于蜂窩技術(shù)實(shí)現(xiàn),消耗帶寬小,可直接部署于多數(shù)網(wǎng)絡(luò)(如LTE),大大降低了部署成本。
1.2.1 高覆蓋
NB-IoT上行采用IntersiteCoMP技術(shù),在上行鏈路可獲得至少20 dB的增益,可滿足空曠地帶的廣度覆蓋,也可實(shí)現(xiàn)多障礙地區(qū)的深度覆蓋,甚至可覆蓋至地下(如地下管道、油井),在地況復(fù)雜的建筑工地,NB-IoT足夠勝任。
1.2.2 低功耗
NB-IoT引入PSM和eDRX,容量電池可達(dá)十年以上,由于本文系統(tǒng)需要較長(zhǎng)的供電時(shí)間以減少更換電池頻次,因此適宜本文系統(tǒng)使用。
1.2.3 低成本
相比于4G,GPRS等同行方式,NB-IoT收費(fèi)更少。在終端芯片的成本方面,NB-IoT終端采用窄帶帶寬,且在射頻模塊的選擇方面使用單天線和半雙工的方式,相比市面上其他的通信模塊,成本降低很多。鑒于本文系統(tǒng)多終端、多通信的特點(diǎn),選用NB-IoT可大大降低成本[2]。
2 系統(tǒng)概述
2.1 總體框架
本文系統(tǒng)采用STM32配置NB-IoT模塊入網(wǎng),連接華為物聯(lián)網(wǎng)平臺(tái)[3],開發(fā)Web地圖應(yīng)用。根據(jù)華為物聯(lián)網(wǎng)平臺(tái)北向應(yīng)用API,對(duì)接華為物聯(lián)網(wǎng)平臺(tái),利用百度地圖API,圈出危險(xiǎn)區(qū)域,并將相關(guān)點(diǎn)位置信息存入數(shù)據(jù)庫,從平臺(tái)獲得終端位置信息,計(jì)算出終端是否處于危險(xiǎn)區(qū)域,并反饋至終端。
本文系統(tǒng)以淮陰工學(xué)院作為試驗(yàn)場(chǎng)所,劃定一個(gè)危險(xiǎn)區(qū)域進(jìn)行GPS信號(hào)傳輸,Web網(wǎng)頁實(shí)現(xiàn)最后的界面展示,使用CSS,JavaScript進(jìn)行頁面前端設(shè)計(jì)、區(qū)域報(bào)警算法的實(shí)現(xiàn),以MySQL作為數(shù)據(jù)存儲(chǔ)庫,通過華為云平臺(tái)實(shí)現(xiàn)GPS數(shù)據(jù)的傳輸。
系統(tǒng)分為終端與應(yīng)用軟件兩個(gè)模塊。終端以STM32L431RxT6為基礎(chǔ),BC95為NB-IoT模塊,L80R為GPS模塊。STM32L431RxT6,BC95,L80R三者均具有良好的連接配合性,且兼顧使用精度??傮w系統(tǒng)框圖如圖1所示。
2.2 開發(fā)進(jìn)展
2.2.1 接入平臺(tái)
首先將設(shè)備接入華為云平臺(tái),在云平臺(tái)上注冊(cè)設(shè)備。云平臺(tái)與終端對(duì)接連通流程如圖2所示。用戶名及密碼為預(yù)約遠(yuǎn)程實(shí)驗(yàn)室時(shí)收到的郵件中對(duì)應(yīng)的登錄賬戶與密碼。華為云平臺(tái)注冊(cè)登錄界面如圖3所示。
登錄開發(fā)者Portal,單擊“Profile開發(fā)>產(chǎn)品”,單擊頁面右上角的“自定義產(chǎn)品”,轉(zhuǎn)至“產(chǎn)品模板”頁面。單擊右上角的“創(chuàng)建全新產(chǎn)品”。根據(jù)實(shí)際填寫“設(shè)備類型”“設(shè)備型號(hào)”“廠商ID”“廠商名稱”等數(shù)據(jù),單擊“確定”,添加產(chǎn)品完成。
在產(chǎn)品詳情頁單擊“新建服務(wù)”,根據(jù)界面提示信息,增加基本信息、屬性或命令,單擊“保存”。
單擊產(chǎn)品詳情右上角的“導(dǎo)出該產(chǎn)品Profile”,可直接生成Profile文件并將文件導(dǎo)出至本地某位置。
建立Profile屬性、命令與消息的映射關(guān)系。根據(jù)事先定義的Profile設(shè)計(jì)插件中的消息,根據(jù)拖拉服務(wù)中的屬性或命令與消息中的字段進(jìn)行關(guān)聯(lián),屬性對(duì)應(yīng)數(shù)據(jù)上報(bào)中的字段列表,有多個(gè)服務(wù)就新增多個(gè)消息。為便于理解,建議字段名稱與屬性名的設(shè)置相同。創(chuàng)建的全新產(chǎn)品如圖4所示。
串口助手發(fā)送相應(yīng)AT指令[4]使模塊入網(wǎng),單擊“我的設(shè)備”,進(jìn)入設(shè)備詳情頁面,單擊“歷史數(shù)據(jù)”頁簽,可看到上報(bào)的數(shù)據(jù)。
“我的設(shè)備”如圖5所示,插件設(shè)計(jì)如圖6所示,設(shè)備屬性設(shè)置如圖7所示,串口發(fā)送命令如圖8所示,數(shù)據(jù)上報(bào)成功如圖9所示。
2.2.2 數(shù)據(jù)連接
數(shù)據(jù)上報(bào)成功代表NB-IoT入網(wǎng)配置成功,然后將程序燒錄在STM32開發(fā)板中。開發(fā)板配有獨(dú)立電源,可在戶外使用,并驅(qū)動(dòng)NB-IoT模塊,使之能夠與服務(wù)器通信。
通信的目的是將終端設(shè)備的位置信息隨時(shí)發(fā)送至服務(wù)端,本文采用GPS模塊獲取終端設(shè)備的位置信息[5],同樣使用STM32作為控制器。GPS采集位置信息后,通過NB-IoT模塊發(fā)送至華為物聯(lián)網(wǎng)云平臺(tái)的服務(wù)端。
硬件端配置完成后,進(jìn)行室外測(cè)試。若開發(fā)板上的信號(hào)燈開始閃爍,則表示建立了通信,已向服務(wù)端發(fā)送數(shù)據(jù)。APP顯示GPS數(shù)據(jù)如圖10所示。
發(fā)送的數(shù)據(jù)可在華為物聯(lián)網(wǎng)云平臺(tái)查看,并可從平臺(tái)獲取數(shù)據(jù),從而進(jìn)行邏輯處理。
2.2.3 軟件端開發(fā)
系統(tǒng)應(yīng)用軟件層主要包括Web網(wǎng)站應(yīng)用與數(shù)據(jù)庫兩部分。
應(yīng)用軟件采用B/S(瀏覽器/服務(wù)器)架構(gòu)。相比于C/S(客戶端/服務(wù)器)架構(gòu),B/S基于HTML開發(fā)瀏覽器界面,無需再開發(fā)客戶端,且可通過多種方式訪問用戶手機(jī)瀏覽器、電腦瀏覽器,且無時(shí)間和地點(diǎn)的限制。
系統(tǒng)采用MySQL數(shù)據(jù)庫,該數(shù)據(jù)庫適用性廣,成本低,有大量的開源代碼,操作相對(duì)方便,受到廣大開發(fā)者的好評(píng)[6]。系統(tǒng)軟件流程如圖11所示。
Java語言執(zhí)行效率高,語法嚴(yán)格規(guī)范,應(yīng)用范圍廣。此外,華為物聯(lián)網(wǎng)平臺(tái)提供的對(duì)接方案只用JavaSDK以及相關(guān)文檔,故本文采用Java語言。
終端回傳的GPS數(shù)據(jù)代表當(dāng)前工人的具體位置,為此需建立可描繪的危險(xiǎn)區(qū)域模型,并使用回傳的GPS數(shù)據(jù),判斷工人是否處于危險(xiǎn)位置。因此,需要開發(fā)軟件端的應(yīng)用,以更清楚直觀地展示位置信息。
建立Web地圖應(yīng)用時(shí)需使用第三方API,出于方便、經(jīng)濟(jì)、實(shí)用多角度綜合考慮,選取百度地圖作為模型,前端頁面可直接通過Script標(biāo)簽引入百度地圖的API。
Web前端使用HTML+CSS+JavaScript進(jìn)行開發(fā),將百度地圖API導(dǎo)入后,初始化API相關(guān)代碼,包括相關(guān)控件、地圖比例、地圖中心位置、地圖大小等元素。
初始化地圖模型后,創(chuàng)建危險(xiǎn)區(qū)域。百度地圖API提供多種繪圖工具,如圓形、多邊形、直線、路徑、點(diǎn)等??紤]到危險(xiǎn)區(qū)域的不確定性,采用多邊形繪制。將地圖放大后,任意圖形都可通過多邊形描繪,邊數(shù)越多描述越精確。繪圖時(shí)將多邊形每個(gè)點(diǎn)的經(jīng)、緯度坐標(biāo)存儲(chǔ)在數(shù)據(jù)庫中,再與終端位置坐標(biāo)進(jìn)行計(jì)算,從而判斷工人是否處于危險(xiǎn)區(qū)域。百度地圖API并未提供相關(guān)點(diǎn)的經(jīng)、緯度信息,通過閱讀百度地圖API源碼,找到點(diǎn)擊繪圖實(shí)踐的對(duì)象模型,在onclick函數(shù)中添加Ajax(synchronousJavascriptAndXML)代碼,再將點(diǎn)的左邊信息傳至后端[7]。Web端危險(xiǎn)區(qū)域劃出如圖12所示。
Ajax用于前端頁面向后端發(fā)出請(qǐng)求,后端響應(yīng)請(qǐng)求,以此實(shí)現(xiàn)前后端的通信。后端創(chuàng)建Servlet,處理存儲(chǔ)數(shù)據(jù)的請(qǐng)求,重寫doGet和doPost方法,doGet處理接收前端Get的請(qǐng)求。調(diào)用數(shù)據(jù)庫表封裝的實(shí)體模型和JDBC封裝的數(shù)據(jù)庫相關(guān)操作,操作成功后響應(yīng)前端請(qǐng)求,返回成功信息。
Servlet作為控制層,將數(shù)據(jù)庫表封裝的實(shí)體對(duì)象作為視圖層,JDBC封裝的增刪改查操作作為模型層。當(dāng)前端頁面重新打開時(shí),需要向后臺(tái)請(qǐng)求數(shù)據(jù),Servlet查找已存儲(chǔ)的數(shù)據(jù),以字符串的形式作為Ajax響應(yīng)的數(shù)據(jù)返回至前端,前端接收到字符串,使用JavaScript相關(guān)字符串函數(shù),且分為數(shù)據(jù)元組,并以此數(shù)據(jù)元組創(chuàng)建繪圖模型[8],重新繪出之前所描繪出的危險(xiǎn)區(qū)域。獲得終端設(shè)備位置坐標(biāo)及多邊形坐標(biāo)后,借助于PNPoly算法判斷是否處于危險(xiǎn)區(qū)域[9]。若處于危險(xiǎn)區(qū)域,則報(bào)警并計(jì)入數(shù)據(jù)庫,對(duì)接北向API完成項(xiàng)目[10]。
3 結(jié) 語
本文針對(duì)工地安全需求,設(shè)計(jì)了基于NB-IoT的工地警報(bào)系統(tǒng),采用STM32微控制器,連接云端平臺(tái)實(shí)現(xiàn)數(shù)據(jù)交互以及Web頁面的編寫,實(shí)現(xiàn)了危險(xiǎn)區(qū)域的劃出、報(bào)警功能,能在多平臺(tái)查詢報(bào)警系統(tǒng)頁面,方便操作。該系統(tǒng)準(zhǔn)確率高,成本低,具有較高的使用價(jià)值。
參 考 文 獻(xiàn)
[1] WANG Y E,LIN X,ADHIKARY A,et al. A primer on 3GPP narrowband internet of things [J]. Internet of things,2017(55):117-123.
[2]戴國(guó)華,余駿華.NB-IoT的產(chǎn)生背景、標(biāo)準(zhǔn)發(fā)展以及特性和業(yè)務(wù)研究[J].移動(dòng)通信,2016(7):31-36.
[3]彭雄根,李新,陳旭奇.NB-IoT技術(shù)的發(fā)展及網(wǎng)絡(luò)部署策略研究[J].郵電設(shè)計(jì)技術(shù),2017(3):58-61.
[4]郭健.基于NB-IoT的現(xiàn)代農(nóng)業(yè)物聯(lián)網(wǎng)監(jiān)測(cè)節(jié)點(diǎn)的研究與應(yīng)用[D].揚(yáng)州:揚(yáng)州大學(xué),2019.
[5]賴俊全.4G網(wǎng)絡(luò)下PC側(cè)收發(fā)AT命令的設(shè)計(jì)研究[J].通訊世界,2017(6):124.
[6]楊濤.基于900 MHz無線通信及GPS定位技術(shù)的野生動(dòng)物跟蹤管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2015.
[7]繆志洋.基于NB-IoT的城市聲光污染監(jiān)測(cè)系統(tǒng)研究[D].杭州:浙江大學(xué),2018.
[8] CHEN X,F(xiàn)ANG X,LIN X.Ajax-based positioning system for coal miners [C]// 2012 Third World Congress on Software Engineering,IEEE,2012.
[9]袁通,陳強(qiáng),周玲.基于百度地圖API的城市地下管網(wǎng)信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].智能計(jì)算機(jī)與應(yīng)用,2019(1):69-72.
[10] FRANKLIN W R.PNPoly-point inclusion in polygon test[EB/OL]. [2019-05-27].https://wrf.ecse.rpi.edu//Research/Short_Notes/pnpoly.html.
[11]鄭冰,李華,郝世杰.一種SDN北向接口測(cè)試方法研究[J].內(nèi)蒙古工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2018(3):207-215.