APP下载

基于NB-IoT的建筑工地危险区域警告和平台研究与实现

2019-12-11石袁浩钱明孙蔚洋唐先行冯万利

物联网技术 2019年11期
关键词:GPS定位

石袁浩 钱明 孙蔚洋 唐先行 冯万利

摘 要:针对建筑工地危险区域众多,地形复杂的情况,为确保工地施工过程的安全,需对施工的危险区域进行实时安全监控,对工人进入危险区域实施报警。针对以上情况,提出一种基于NB-IoT的工地警报系统。该系统通过STM32连接GPS模块及NB-IoT模块,通过连接华为物联网云端平台实现数据交互,通过Web界面实现危险区域的划分并实时显现、实时监测、进入危险区域报警的功能,解决了工地危险区域预警这一实际问题,保证工人的安全。

关键词:GPS定位;STM32;NB-IoT;PNPoly算法;云端平台;危险预警

中图分类号:TP277文献标识码:A文章编号:2095-1302(2019)11-0-04

0 引 言

现阶段,大量城市基建需要改建扩建,由于建筑工地上存在各种大型机械设备及多种建筑材料,因此是安全事故的频发地。若工地上存在危险区域,工作人员没有及时了解,则误入该区域很可能会发生危险。

本文基于NB-IoT技术设计一种工地警报系统。该系统采用STM32微控制器,连接云端平台实现数据交互,以及Web页面的编写,很好地解决工人误入危险区域的情况,较大程度上节约投资成本,也能更好地保证工人的安全。

1 关键技术研究

1.1 華为IoT平台

1.1.1 设备接入

华为IoT平台支持终端设备直接接入,也可通过工业网关或家庭网关接入。同时,支持多网络接入、多协议接入、多Agent接入和云端协议解析,解决接入设备的复杂多样化和碎片化难题,实现设备的快速接入。

(1)多网络接入:支持有线和无线的接入方式,如固定宽带,2G/3G/4G/5G,NB-IoT,Z-Wave,ZigBee,eLTE等。

(2)多协议接入:支持HTTP/S,MQTTS,LWM2M/CoAP原生协议接入。

(3)多Agent接入:支持Agent Rich,Agent Lite和Agent Tiny,覆盖的语言包括C,Java,Python。Agent可与海思、高通主流芯片、模组预集成,缩短了TTM。

(4)云端协议解析:支持在云端对接入协议和设备数据进行解析,无需变更设备端数据上报格式,可在云端开发插件,灵活解析。

1.1.2 安全及数据保护

IoT提供多种安全防护措施,确保设备安全、数据有效保护。

设备安全:提供一机一密的设备安全认证机制,防止设备非法接入。

信息传输安全:基于TLS,DTLS,DTLS+加密协议,提供安全的传输通道。

数据保护:满足欧盟GDPR数据隐私保护要求。

基于以上优点,选择使用华为IoT云平台实现设备入网,实现数据上报、下发。

1.2 窄带物联网技术

窄带物联网(NB-IoT)[1]基于蜂窝技术实现,消耗带宽小,可直接部署于多数网络(如LTE),大大降低了部署成本。

1.2.1 高覆盖

NB-IoT上行采用IntersiteCoMP技术,在上行链路可获得至少20 dB的增益,可满足空旷地带的广度覆盖,也可实现多障碍地区的深度覆盖,甚至可覆盖至地下(如地下管道、油井),在地况复杂的建筑工地,NB-IoT足够胜任。

1.2.2 低功耗

NB-IoT引入PSM和eDRX,容量电池可达十年以上,由于本文系统需要较长的供电时间以减少更换电池频次,因此适宜本文系统使用。

1.2.3 低成本

相比于4G,GPRS等同行方式,NB-IoT收费更少。在终端芯片的成本方面,NB-IoT终端采用窄带带宽,且在射频模块的选择方面使用单天线和半双工的方式,相比市面上其他的通信模块,成本降低很多。鉴于本文系统多终端、多通信的特点,选用NB-IoT可大大降低成本[2]。

2 系统概述

2.1 总体框架

本文系统采用STM32配置NB-IoT模块入网,连接华为物联网平台[3],开发Web地图应用。根据华为物联网平台北向应用API,对接华为物联网平台,利用百度地图API,圈出危险区域,并将相关点位置信息存入数据库,从平台获得终端位置信息,计算出终端是否处于危险区域,并反馈至终端。

本文系统以淮阴工学院作为试验场所,划定一个危险区域进行GPS信号传输,Web网页实现最后的界面展示,使用CSS,JavaScript进行页面前端设计、区域报警算法的实现,以MySQL作为数据存储库,通过华为云平台实现GPS数据的传输。

系统分为终端与应用软件两个模块。终端以STM32L431RxT6为基础,BC95为NB-IoT模块,L80R为GPS模块。STM32L431RxT6,BC95,L80R三者均具有良好的连接配合性,且兼顾使用精度。总体系统框图如图1所示。

2.2 开发进展

2.2.1 接入平台

首先将设备接入华为云平台,在云平台上注册设备。云平台与终端对接连通流程如图2所示。用户名及密码为预约远程实验室时收到的邮件中对应的登录账户与密码。华为云平台注册登录界面如图3所示。

登录开发者Portal,单击“Profile开发>产品”,单击页面右上角的“自定义产品”,转至“产品模板”页面。单击右上角的“创建全新产品”。根据实际填写“设备类型”“设备型号”“厂商ID”“厂商名称”等数据,单击“确定”,添加产品完成。

在产品详情页单击“新建服务”,根据界面提示信息,增加基本信息、属性或命令,单击“保存”。

单击产品详情右上角的“导出该产品Profile”,可直接生成Profile文件并将文件导出至本地某位置。

建立Profile属性、命令与消息的映射关系。根据事先定义的Profile设计插件中的消息,根据拖拉服务中的属性或命令与消息中的字段进行关联,属性对应数据上报中的字段列表,有多个服务就新增多个消息。为便于理解,建议字段名称与属性名的设置相同。创建的全新产品如图4所示。

串口助手发送相应AT指令[4]使模块入网,单击“我的设备”,进入设备详情页面,单击“历史数据”页签,可看到上报的数据。

“我的设备”如图5所示,插件设计如图6所示,设备属性设置如图7所示,串口发送命令如图8所示,数据上报成功如图9所示。

2.2.2 数据连接

数据上报成功代表NB-IoT入网配置成功,然后将程序烧录在STM32开发板中。开发板配有独立电源,可在户外使用,并驱动NB-IoT模块,使之能够与服务器通信。

通信的目的是将终端设备的位置信息随时发送至服务端,本文采用GPS模块获取终端设备的位置信息[5],同样使用STM32作为控制器。GPS采集位置信息后,通过NB-IoT模块发送至华为物联网云平台的服务端。

硬件端配置完成后,进行室外测试。若开发板上的信号灯开始闪烁,则表示建立了通信,已向服务端发送数据。APP显示GPS数据如图10所示。

发送的数据可在华为物联网云平台查看,并可从平台获取数据,从而进行逻辑处理。

2.2.3 软件端开发

系统应用软件层主要包括Web网站应用与数据库两部分。

应用软件采用B/S(浏览器/服务器)架构。相比于C/S(客户端/服务器)架构,B/S基于HTML开发浏览器界面,无需再开发客户端,且可通过多种方式访问用户手机浏览器、电脑浏览器,且无时间和地点的限制。

系统采用MySQL数据库,该数据库适用性广,成本低,有大量的开源代码,操作相对方便,受到广大开发者的好评[6]。系统软件流程如图11所示。

Java语言执行效率高,语法严格规范,应用范围广。此外,华为物联网平台提供的对接方案只用JavaSDK以及相关文档,故本文采用Java语言。

终端回传的GPS数据代表当前工人的具体位置,为此需建立可描绘的危险区域模型,并使用回传的GPS数据,判断工人是否处于危险位置。因此,需要开发软件端的应用,以更清楚直观地展示位置信息。

建立Web地图应用时需使用第三方API,出于方便、经济、实用多角度综合考虑,选取百度地图作为模型,前端页面可直接通过Script标签引入百度地图的API。

Web前端使用HTML+CSS+JavaScript进行开发,将百度地图API导入后,初始化API相关代码,包括相关控件、地图比例、地图中心位置、地图大小等元素。

初始化地图模型后,创建危险区域。百度地图API提供多种绘图工具,如圆形、多边形、直线、路径、点等。考虑到危险区域的不确定性,采用多边形绘制。将地图放大后,任意图形都可通过多边形描绘,边数越多描述越精确。绘图时将多边形每个点的经、纬度坐标存储在数据库中,再与终端位置坐标进行计算,从而判断工人是否处于危险区域。百度地图API并未提供相关点的经、纬度信息,通过阅读百度地图API源码,找到点击绘图实践的对象模型,在onclick函数中添加Ajax(synchronousJavascriptAndXML)代码,再将点的左边信息传至后端[7]。Web端危险区域划出如图12所示。

Ajax用于前端页面向后端发出请求,后端响应请求,以此实现前后端的通信。后端创建Servlet,处理存储数据的请求,重写doGet和doPost方法,doGet处理接收前端Get的请求。调用数据库表封装的实体模型和JDBC封装的数据库相关操作,操作成功后响应前端请求,返回成功信息。

Servlet作为控制层,将数据库表封装的实体对象作为视图层,JDBC封装的增删改查操作作为模型层。当前端页面重新打开时,需要向后台请求数据,Servlet查找已存储的数据,以字符串的形式作为Ajax响应的数据返回至前端,前端接收到字符串,使用JavaScript相關字符串函数,且分为数据元组,并以此数据元组创建绘图模型[8],重新绘出之前所描绘出的危险区域。获得终端设备位置坐标及多边形坐标后,借助于PNPoly算法判断是否处于危险区域[9]。若处于危险区域,则报警并计入数据库,对接北向API完成项目[10]。

3 结 语

本文针对工地安全需求,设计了基于NB-IoT的工地警报系统,采用STM32微控制器,连接云端平台实现数据交互以及Web页面的编写,实现了危险区域的划出、报警功能,能在多平台查询报警系统页面,方便操作。该系统准确率高,成本低,具有较高的使用价值。

参 考 文 献

[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的产生背景、标准发展以及特性和业务研究[J].移动通信,2016(7):31-36.

[3]彭雄根,李新,陈旭奇.NB-IoT技术的发展及网络部署策略研究[J].邮电设计技术,2017(3):58-61.

[4]郭健.基于NB-IoT的现代农业物联网监测节点的研究与应用[D].扬州:扬州大学,2019.

[5]赖俊全.4G网络下PC侧收发AT命令的设计研究[J].通讯世界,2017(6):124.

[6]杨涛.基于900 MHz无线通信及GPS定位技术的野生动物跟踪管理系统的设计与实现[D]. 北京:北京邮电大学,2015.

[7]缪志洋.基于NB-IoT的城市声光污染监测系统研究[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的城市地下管网信息系统设计与实现[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].内蒙古工业大学学报(自然科学版),2018(3):207-215.

猜你喜欢

GPS定位
移动轨迹挖掘算法设计与系统实现