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