王赜坤,桂 玲
(武汉华夏理工学院,湖北 武汉 430223)
随着大数据时代的到来,5G技术的普及,城市智能化也在慢慢兴起,万物连接成了必然的趋势。移动蜂窝网络具备广覆盖、可移动以及多连接数等特性,能够带来更加丰富的应用场景,成为物联网的主要连接技术。2016年物联网的应用主要使用WIFI和蓝牙技术,数据准确率低、耗电量极大。而广域物联网可以用光纤,但只适用于连接摄像头等宽带终端;低容量传感器虽然可以使用2G/3G/4G网络,但难以满足低功耗低成本的要求,因此2016年接入到运营商网络的物联网终端仅有6%。但如果利用运营商的网络组织物联网,就可以真正实现整个城市一张网,便于维护和管理,基于蜂窝的窄带物联网(narrow band internet of things,NB-IoT)由此应运而生。NB-IoT聚焦于低功耗,低成本,广覆盖,大连接的物联网(IoT)市场,大连接的特点成为万物相互连接网络的重点,可应用于GSM网络和LTE网络,是一种可在全球范围内广泛应用的新兴技术。
近期国际电信联盟做出重大决议,中国提交的NB-IoT技术正式成为5G标准,这意味着该技术未来有望成为各国5G低功耗广域网场景应用的首选。目前中国已建立了70多万个物联网相关基站,到2020年底中国的移动物联网设备连接数有望达到12亿个,同时NB-IoT网络也将实现县级以上城市主城区的普遍覆盖[1-6]。NB-IoT主要面向低端物联网终端的特点,更适合广泛部署,其应用前景将更加广阔。文中主要对基于NB-IoT无线通信技术的智能安防监测系统进行论述。
当前许多安防监测系统采用无线通信技术进行实现,如采用WIFI、Zigbee、蓝牙或GPRS等技术。
(1)采用WIFI技术设计。WIFI技术是目前传输速度最快的无线技术,在目前的生活中普及率较高。WIFI技术具有技术研发门槛低,成本低,应用范围广的优点,但同时也有安全性差,稳定性弱,功耗大,可连接的设备有限,组网能力低等缺点。
(2)采用Zigbee技术设计。Zigbee是一种近距离、复杂度低、功耗低、成本低的双向无线通信技术。近距离无线通信安全性高,组网能力强。理论上,一个Zigbee闸道器可以连接65 000多个设备。但速度慢、难兼容,其搭载的设备普及率极低。
利用WIFI技术或Zigbee技术上传数据时,需要网关接入网络,即不能直接连上电信或移动运营商,而是需要通过一个网关中转才能连上运营商,把数据传输至网络。当遇到警情,通过WIFI模块或Zigbee模块向外界发出报警信息时,在网络断网,停电或室内部分区域没有无线网络覆盖的情况下,利用上述技术设计的安防监测系统报警功能就会缺失,无法实现实时报警,从而有警情延误的可能。
(3)采用蓝牙(Bluetooth)技术设计。蓝牙是一种支持设备短距离通信的无线电技术。具有体积小,功耗低,安全性高的特点,但传输距离有限,数据速率较低,需要本地数据记录,以确保数据不间断可用。设备连接能力有限,且只能在特定空间内使所有支持该技术的设备建立联系传输数据。
(4)采用GPRS模块设计,不但使用费用高,数据速率低,电源供电也是个问题。如若通信连接不稳定,也易造成警情延误。
针对利用上述无线通信技术构建的通信网,存在数据准确率较低、耗电量大、信息安全性不高、实时监控管理难等技术问题[7-9]。因此,文中采用NB-IoT技术设计智能安防监测系统,以解决室内外安防监测设备依赖本地网络、无线传输范围小,以及监控装置内置电源使用寿命短、信息安全要求难保证等问题。
文中设计的智能安防监测系统如图1所示,由感知层、网络层、应用层构成。各层的构成和实现功能如下:
图1 系统架构框图
(1)感知层:由控制模块、NB-IoT无线通信模块、报警模块、存储模块、电源模块等构成。以控制芯片STM32F103为核心,利用传感器采集温湿度、烟雾浓度、光照强度、声音强度、人体等信息,若采集的数据超过设置的报警阈值,则通过NB-IoT无线通信模块接收报警指令,启动报警。
(2)网络层:由NB-IoT基站、IoT核心网、IoT云平台等构成。传感器采集的参数通过NB-IoT无线通信模块发送至NB-IoT基站,通过核心网送到服务器上传至IoT云平台,再通过云平台发送至移动APP客户端,实现实时监测环境信息。
(3)应用层:包括应用管理平台、移动APP等。利用移动APP客户端或应用管理平台实时查看环境信息。还可根据实时数据,通过移动APP客户端设置报警阈值,下发报警指令,实现远程安防监测。
系统的硬件电路框图如图2所示,分为监测设备和NB-IoT无线通信模块两部分。监测设备以STM32F103单片机为主控芯片,利用温湿度传感器、烟雾传感器、光照传感器、声音传感器、红外传感器等多种传感器分别进行环境参数的采集,将采集的数据利用UART方式传输,通过STM32F103单片机传输至NB-IoT无线通信模块。其部分硬件电路原理图如图3所示。
图2 系统硬件电路框图
图3 部分硬件电路原理图
系统选用STM32F103C8T6作为主控芯片,该芯片具有自带重置开关,具有十位分辨率数模转换模块、模数转换能力较强等优点。主控芯片的功能为:一、将传感器采集到的参数分析计算处理后,通过UART封装发送至NB-IoT模块;二、利用NB-IoT模块接收来自手机端和云端下传的AT命令[7-9],启动监测设备的报警。其管脚连接原理图如图3所示。
采用DHT11[10-13]模块检测温湿度值的变化,实现防火防潮监测功能。模块中的DATA(2端口)端与主控制器的PA11端口相连(如图3所示),采用单总线数据格式,实现数据的通信和同步控制。
采用G5516模块,检测周围环境光线强度的改变。模块中的DO(3端口)数字信号输出端与主控制器的PA4端口连接(如图3所示)。主控制器通过检测DO端高低电平的变化,判断环境的光线强度改变。若光线强度超过设定阈值时,系统蜂鸣器报警。
采用MQ-2[14-17]烟雾传感器模块检测有害气体浓度。MQ-2的AOUT模拟量输出端,直接与带有AD功能的主控制器PA1端口连接(如图3所示)。当MQ-2检测到周围环境中有有害气体时,电压每爬升0.1 V,说明有害气体的浓度值增加20 ppm。将测得的模拟电压值比例代换,转换为浓度值显示在OLED屏幕。若检测到有害气体浓度值超过设定阈值,系统启动报警。
采用HC-SR501模块检测有无人存在,实现防盗监测功能。模块中的OUT输出端管脚与主控制器PA15端口相连(如图3所示),当检测到有人时输出3 V电压,无人时输出0 V电压,以实现无人监测报警功能。
NB-IoT模块是感知层必备模块,它是感知层与网络层的连接桥梁。系统核心部件采用电信版BC26的NB-IoT101模块,内置SIM卡槽,兼容移动通信中M26(GSM/GPRS系列)模块,方便现有的3G,4G用户快速、灵活地切换至NB-IoT通信网络进行数据交互。同时,BC26提供丰富的外部接口(UART,SPI,ADC等)和网络协议栈(TCP/CoAP/MQTT等),支持OpenCPU功能,支持中国移动OneNET云平台、中国电信EasyIoT、华为OceanConnect物联网云平台。如图4所示,该模块主要由IPEX射频天线座,5 V转3.3 V LDO稳压电源,Micro-SIM卡座,ESD防护电路,开机电路等组成,即插即用。模块中的PWRKEY,RXD,TXD管脚分别与图3中STM32的PB7,PA2和PA3端口相连,实现数据的控制、收发。当PWRKEY为低电平时,启动NB-IoT模块工作;TXD为高电平时,发送监测终端设备采集的环境参数信息至云平台;当RXD为高电平时,接收手机APP端通过云平台下发的报警指令信息。
图4 NB-IoT模块实物与电路原理图
软件主要是对各传感器进行初始化,并将采集的数据通过NB-IoT模块上传阿里云平台,送至移动客户APP,再通过APP设置报警阈值,达到智能监测和报警的目的。
系统软件设计主要分为三部分,第一部分为监测终端的主控程序设计(主程序流程);第二部分为阿里云平台的服务器插件开发;第三部分为网络数据的通信和移动APP客户端的开发。首先确认基础设备接入到阿里云平台服务器,将数据和命令发送到服务器后确认相关流程,确认接入平台后配置外围设备组件,最后启用阿里云物联网远程服务操作系统,上载数据或下传报警命令。
系统的软件总体流程设计如图5所示,其工作流程如下:
图5 软件流程
(1)主控制器STM32和NB-IoT模块初始化;
(2)各传感器采集环境数据送至STM32控制器,同时NB-IoT模块对接阿里云平台;
(3)STM32将传感器采集的数据信息显示在OLED屏,同时将数据通过NB-IoT模块送至阿里云平台;
(4)利用阿里云平台将数据传送至移动APP环境监测客户端;
(5)APP环境监测客户端设置各种环境参数的报警阈值,如果传感器采集的参数超过报警阈值,则手机APP利用阿里云平台将报警命令通过NB-IoT模块,送至STM32控制蜂鸣器报警。
系统数据的处理需要在云平台服务器上开发相对应的设备属性文件以及编解码插件,并上传至云平台服务器后台调用,具体内容包括调用服务器权限、注册实际设备、定义设备信息接口、在线调试等。
配置属性文件是对监测设备能力和需要服务类型的描述,将终端设备型号、终端设备类型等实际信息注册到平台,然后在云平台服务器中来定义监测终端的功能,进而严格制定功能需求和编解码插件。由于应用层的协议有很多,终端设备和IoT平台之间的应用层协议不统一,但为了能接入不同协议的终端设备并成功调用监测终端设备提供的相对应的插件包,在检测正确后,可向阿里云平台上传属性文件和编解码插件注册设备。
依据云平台服务器上定义的数据流通信方式,对数据流打包,并上报数据,再根据控制器和云平台服务器之间发出的有效命令,以实现对环境参数的远程实时监测。数据在进行上传时,通常以“at+nmgs=数据长度,数据信息”的格式对数据进行打包,AT指令通过串行口发送到NB-IoT模块进而上传至云平台服务器和移动终端设备。发布时云平台服务器台将“NNMI数据长度,数据”格式的数据信息发送到NB-IoT模块,环境数据监测终端设备执行声光的报警命令。
4.3.1 系统数据上报流程
多种传感器采集环境参数信息后,依据系统制定的编码规则对数据进行编码,再进行传输。环境监测设备终端通过串行口采用AT命令的上传形式,向NB-IoT通信模块发送编码数据信息。NB-IoT模块接收到控制器的AT命令后,自动将相应的数据信息封装成COAP协议报文,发送到系统已配置的物联网平台。物联网平台接收到数据后会对COAP协议包进行自动解析。通过环境监测装置的配置属性文件找到与之相对应的环境监测装置编解码插件,将有效载荷数据包解析到物联网平台上。此外在环境监测设备档案描述的文件中,与服务属性文件匹配的JSON数据也一并存储在物联网平台上。移动客户APP通过API口对接的restful接口获取平台上的环境参数信息。同时环境监测数据实时上传,平台也将通过POST消息推送到移动客户APP端。
4.3.2 系统命令下发流程
系统中的移动客户APP应用程序创建并发送警报的信息命令格式,当与云平台描述一致时,发送至物联网平台。物联网平台接收后开始判断环境监测终端设备是否正常在线。当环境监测终端设备入网在线时,环境监测编解码器插件会通过详细查找进行编码输出,将输出的二进制数据信息打包成COAP报文,随后向环境监测终端设备中的NB-IoT通信模块发送报警信号。如果云平台判断终端设备离线,则前面发送的信令将存储在云平台服务器的历史数据中。
当本地报警命令成功发出后,环境监测终端设备将会自动接收储存在历史数据的命令,然后再报告该命令的执行结果。此外,环境监测设备终端通过云平台服务器上相应的配置文件也可以搜索出环境监测编解码器插件的执行解码,进而输出二进制数据消息,再获取信息命令的执行结果,并将当前默认状态修改为报警提示状态,打开向移动客户APP传送数据的通道,发送环境监测终端设备的本地报警信息。
4.3.3 移动客户APP界面设计
系统基于安卓环境开发移动客户APP,其设计界面主要包括登录界面,环境参数监测界面以及各个环境参数实时报警提示界面。在环境参数监测界面中,显示实时的温湿度、烟雾浓度、光照强度、人体、声音的数据信息。在报警提示界面中也显示实时数据,并可设置报警阈值。当检测的实时环境信息接近或超出设置报警阈值时,则会出现报警提示界面。
在界面设计上,采用Vue框架,Vue的核心为视图层,它是一种自底层逐渐向上的框架。同时,引用CSS表述HTML5修饰手机界面,以设计弹窗式报警界面。
搭建完阿里云服务器和创建产品后,利用监测设备中NB-IoT模块上的SIM卡提供的网络连接服务器。NB-IoT模块与主控制器通过AT串行通信协议进行数据传输。故在程序设计上,主要将相关指令通过AT串行通信协议发送至主控制器即可。部分代码如下:
char *AT_Cmd[CMD_MAX] = {
"AT+NRB",
"AT+CGATT?",
"AT+QMTCFG="aliauth",0,"a11RfGpdd7C","TPT01","TWXPvTrGRSLaJxKoiUIHB5CIVNXJBoIi"",
"AT+QMTOPEN=0,"a11RfGpdd7C.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883",
"AT+QMTCONN=0,"123456|securemode=3,signmethod=hmacsha1,timestamp=1585932175|","TPT01&a11RfGpdd7C","C85F0E73041C5E1B6B1EA12ACA1DE8F4C5306580"",
"AT+QMTSUB=0,1,"/sys/a11RfGpdd7C/TPT01/thing/event/property/post_reply",2",
"AT+QMTSUB=0,1,"/sys/a11RfGpdd7C/TPT01/thing/service/property/set",2",
"AT+QMTPUB=0,1,2,1,"/sys/a11RfGpdd7C/TPT01/thing/event/property/post",89",
"{"method":"thing.service.property.set","id":"1064104057","params":{},"version":"1.0.0"}",
};
通信过程中,数据成功后,将会发回一个ACK数据,对于不同的数据,发回的ACK也会不同,对于以上发送的数据指令,相对应的ACK发回如下代码所示:
char *AT_Cmd_Ack[CMD_MAX] = {
"REBOOT_CAUSE",
"+CGATT:0",
"OK",
"+QMTOPEN: 0,0",
"+QMTCONN: 0,0,0",
"+QMTSUB: 0,1,0,1",
"+QMTSUB: 0,1,0,1",
">",
"property/post_reply"",
};
在报警模块中设一个限定阈值,当所测数据超过设定阈值时,移动客户APP显示报警提示信息,并通过云平台下发报警指令至监测模块执行警铃报警,以实现实时安防监测。
移动客户APP是基于安卓软件进行开发设计,可实现用户账号密码登录,实时的消息推送,各个环境参数显示及实时更新,此外还可以设置报警阈值范围,以及发送命令等功能。具体的流程处理如图6所示。
图6 APP报警设计流程
ApiCloud IDE软件设计出的报警模块需要在手机软件上显示出来,在VUE框架中,需要显示报警信息和一些报警功能,部分报警模块代码如下:
if (item = = = 'temp')
{
params.Items = '{" temp ": ' + val + '}'
if (this. tempAlarm && Number(val) < this. temp)
{
window.navigator.vibrate(1000)
setTimeout(function () {
alert('温度过高,请注意')
}, 1000)
}
this.max_ temp = val}
else if
{
params.Items = '{"smoke ": ' + val + '}'
if (this. smokeAlarm && (Number(val) < this.smoke))
{
window.navigator.vibrate(1000)
setTimeout(function () {
alert('烟雾浓度过高,请注意')
}, 1000)
}
this.max smoke= val}
else
{
params.Items = '{" humidity": ' + val + '}'
if (this. humidityAlarm && (Number(val) < this. humidity))
{
window.navigator.vibrate(1000)
setTimeout(function () {
alert('湿度过高,请注意!')
}, 1000)
}
this.max_humidity= val}
将系统监测终端放置室内进行测试,采集环境参数。电路通电之后,如图7所示,OLED屏显示当前环境参数,“T”表示实时环境温度,温度测量的范围为-55 ℃~100 ℃,当前温度显示“26 ℃”;“H”表示环境相对湿度,当前相对湿度为“90%”;“gas”表示气体烟雾浓度比,当前烟雾浓度为“35%”;“ill”表示光照强度;“vol”表示检测声音是否存在,有声音显示“1”,否则为“0”;“man”表示检测到人体是否存在,检测到人体存在显示为“1”,否则为“0”。终端监测设备将采集到的信息通过云平台发送到手机APP端。如图手机APP环境监测系统主界面显示的各类型环境参数值与OLED显示屏上的数据一致,表明监测终端设备数据传输正确,能够实时将环境参数信息上传至手机客户端。
图7 系统测试主界面图
如图8(a)所示,为单独测试温度与烟雾浓度的二级界面图。如图8(b)所示,在手机APP环境监测应用端,设置温度报警阈值为22oC,当温度逐渐升高,接近设定阈值时,移动APP上出现预警提示“温度过高,请注意”,一旦超过设定阈值,则手机APP端会在1s左右的时间通过云平台下发报警指令到监测终端设备,终端设备上的蜂鸣器发出响声报警。同样如图8(c)所示,可以设置烟雾浓度报警阈值为500 ppm,当烟雾浓度接近设定报警阈值时,APP上出现“烟雾浓度过高,请注意”的预警提示。当超过设定阈值时,监测终端设备上的蜂鸣器发出报警响声。
(a)温度与烟雾浓度值正常 (b)温度值超阈值报警 (c)烟雾浓度值超阈值报警
随着中国5G技术的快速发展和部署,物联网技术与应用得到了极大的发展。文中设计的智能安防监测系统,利用了NB-IoT、移动互联网、云计算等技术,采用各种环境类传感器采集数据,通过NB-IoT网络传输到IoT管理平台,将数据实时发送到云端,再送至移动APP,实现消防和安全的统一监控与管理,从而高效地做出相关执行决策。通过测试表明,系统方案设计合理,能够达到实时监测与远程控制报警的功能。同时,系统具有低功耗、运行稳定可靠、部署灵活等优点,适用于各种室内外场所。