APP下载

基于NB-IOT的城市地井智能监测系统设计与实现

2019-09-19冯志刚于明月

沈阳航空航天大学学报 2019年4期
关键词:电路设计页面客户端

冯志刚,孙 浩,于明月

(沈阳航空航天大学 自动化学院, 沈阳 110136)

随着人们日益增长的生活需要和城市建设大力投入, 城市地井数量急剧增加,关于城市地井的管理问题越来越严峻[1]。井盖被盗,地下水冲开井盖导致道路毁坏等事件屡屡发生。所以,城市地井问题一直是社会广泛关注的焦点问题之一[2]。目前国内采用的主流地井监测技术大多基于ZigBee和GPRS[3-4],在国外,比如日本,大多使用FRID技术进行监测。使用以上方法均存在覆盖率低、功耗高、成品体较大、成本高、射频识别极易被障碍物阻断等问题。由于人们对能源、成本以及技术的要求越来越高,此种方法慢慢无法满足此类工程应用。近些年来,窄带物联网技术逐渐兴起,在城市建设、智能家居等诸多方面解决了覆盖面积小、信号弱、成本高、功耗高等问题,因此NB-IoT技术逐渐出现在人们的视野中,并应用于很多领域。

针对上述现象和问题,本文设计了一种基于NB-IoT的城市地井智能监测系统,构建了硬件电路平台,开发了硬件终端软件,设计了Web端业务监控平台网页,最终实现了城市地井的智能监测和管理。

1 总体设计方案

所设计的城市地井智能监测系统总体方案结构框图如图1所示。

图1 系统结构框图

(1) 终端设备:系统的硬件平台,平台的NB-IoT模块通过空口连接到基站;

(2) 无线网侧:采用整体式无线接入网,主要承担空口接入管理、小区管理等相关功能, 并通过SI-lite接口与IoT核心网进行连接,并将非接入层数据转发给高层网元处理;

(3)核心网:承担与终端非接入层的交互功能,并将IoT业务相关数据转发到IoT平台进行处理[5];

(4) IoT平台:IoT平台是连接IoT系统中所有业务的支持平台,有助于通信、数据流、设备管理和应用功能;

(5)客户端:在本系统主要指的是井盖监测系统的客户端界面,便于管理者对城市地井的后台管理和监控。

2 硬件系统设计

城市地井智能监测硬件系统主要由主控电路、测量电路、GPS定位电路、存储电路和NB-IoT通信电路组成。测量电路主要负责三轴加速度计的加速度采集、液位传感器的超声波返回时间采集和电源电压的采集;GPS定位电路负责城市地井所处位置信息的采集;存储电路负责存储定时上传间隔、角度报警阈值、液位报警阈值、终端编号等参数;NB-IoT电路负责数据的传输和交互;主控电路负责将传感器采集的数据进行计算和处理,通过设定协议将数据打包,并将打包的数据通过NB-IoT模块上传至IoT平台,待客户端下发指令时,接收和处理指令。其硬件电路系统框架如图2所示。

图2 硬件电路系统框架图

2.1 主控模块电路设计

本系统的主控模块选用意法半导体32位低功耗微处理器STM32L152R8T6。其特点如下[6]:(1) 1.65 V~3.6 V电压供电;(2)-40 ℃~105 ℃的工作温度范围;(3)芯片在不工作的模式下输出仅为560 nA;(4) 3对串口,2个SPI,2个12C以及足够多的I/O接口。该芯片具有以上特点,能够满足系统的低功耗、外设所需接口较多等要求。并且在恶劣的井内环境中,也能正常工作。同时主控芯片通过I/O控制各个模块的上下电通过SPI通信接口控制液位传感器、存储模块的数据传输,通过URAT接口控制GPS定位模块和NB-IoT通信模块,通过ⅡC通信方式与倾角测量模块的传输数据。具体电路设计如图3所示。

图3 控制模块电路图

2.2 倾角检测电路设计

本系统中三轴加速计选用的芯片型号为LIS3DHTR。其精度高,模块的最低功耗可以低到2 μA,满足系统低功耗要求。其内部工作原理为[7]:当井盖静止不动时,三轴处于水平方向的状态,此时X、Y轴的加速度为0,Z轴的加速度为g,而当井盖发生偏移时,井盖在X轴方向的加速度为a,Y轴加速度为b,Z轴加速度为g,a和水平线的夹角为α,和g的夹角为α1,b和水平线的夹角为β,与g的夹角为β1,c和水平方向的夹角为θ,c和的夹角为θ1。所以由三角函数可知:

(1)

(2)

(3)

所以推导出:

(4)

(5)

(6)

芯片通过ⅡC总线通信方式与主控通信。ACC_12C_SCL是时钟线,ACC_12C_SDA是一条双向数据线,芯片内部的MCU_INT与主控的外部中断引脚连接可以唤醒三轴进入工作状态。P3为滚珠倾角传感器,用来控制当井盖倾斜到一定角度时I/O口的通断。具体电路设计如图4所示。

图4 倾角模块电路图

2.3 通信模块电路设计

NB-IoT是IOT领域的新兴技术,支持低功耗设备在广域网的蜂窝数据连接,因而也常被人叫作低功耗广域网。其主要优点表现在功耗低、信号强,连接广和成本低四个方面[8]。在通讯模块硬件电路设计中,包括电源(其输入范围为3.1V~4.2V)、ADC模数转换、射频天线、UART串口、SIM卡接口等应用。在具体电路设计中,在电源部分采用了10 μF+0.1 μF+1 nF+100 pF并联电容,来滤掉高频干扰部分。复位引脚9直接与单片机连接,用来控制模块的工作和断开两种状态。指示灯与主控的两个串口进行连接分别显示网络附着状态和供电状态。井内环境比较恶劣,使用ESD来对SIM卡进行静电保护。具体电路设计如图5所示。

所设计的硬件平台如图6所示。

图5 通信模块电路图

图6 硬件平台

3 软件设计

软件设计主要包括IoT平台的选择与连接、数据通信协议的设计、终端软件设计和Web端网页的设计。

3.1 IoT平台的选择与连接

本系统设计选择的通信平台为OneNet平台,是由中国移动打造的PaaS物联网开放型平台[9],能够实现在线监控,终端设备的管理、在线调试和实时控制、数据存储、读写数据库、提供标准API接口等功能[10]。NB-IoT模块与平台具体连接过程中需调用相关的AT指令,通过LWM2M协议实现,具体操作步骤如下所述:(1)创建产品,选用LWM2M协议;(2)添加设备,通过串口AT指令查询方式查询IMEI和IMSI,填写设备基本信息;(3)单片机通过串口发送AT指令,查询是否附着网络,创建套件,运行套件[11]。连接流程如表1所示。

表1 AT指令的解释说明

在平台与客户端对接过程中,API接口为数据点的上传与查询,设备、数据流和触发器的管理以及下发命令给以获取到设备ID的设备。客户端调用平台API接口时,平台以HTTP POSTS的请求方式向客户端的地址推送数据,推送数据的相关信息会以JSON串的形式置于HTTP请求中的body部分。客户端会根据数据的设备ID和设备的api-key等进行相关数据的接收。

3.2 数据通信协议设计

为了实现终端控制模块与OneNet平台的数据交互,实现通过NB-IoT模块的远程控制,本系统利用NB-IoT模块作为无线传输介质,采用COAP透传模式,自定义了通信协议实现终端控制设备和OneNet平台的数据接收和发送。在上行过程中,主控制器会通过AT指令将数据打包成“AT+NMGS=(字节数),(数据,以字段1&字段2…&字段n形式存在)”的字符串的格式进行封装,同时,将这条AT指令通过全双工的URAT发送给NB-IoT模块,NB-IoT模块再将打包的数据发送至OneNet平台。当OneNet平台收到来自客户端的下行消息时,平台会以“+NNMI:,”的形式发送给NB-IoT模块,再将数据发送给终端控制模块解析和处理[12]。部分通信协议内容由表2所示。

表2 部分通信协议说明

设备初始化完毕后,首先会连接OneNet平台发送Get请求,获取设备的字段设置,如果设备没有获取到则按照默认值进行设备设置,然后用POST请求更新设备参数,再断开连接。

3.3 终端软件程序设计

本系统的硬件驱动程序以keil为开发环境,C语言进行编写。主程序如图7所示,系统上电后首先对系统进行初始化,包括时钟的初始化、定时器的初始化、I/O工作状态的设置、URAT、IIC等通信接口的初始化和NB-IoT模块的初始化等。为了实现系统的低功耗功能,RTC配置单片机休眠周期,单片机平时处于休眠状态,当到达巡检时间或者有外部报警信息时单片机立即被唤醒进入工作模式,采集倾角,液位、电池电量和地理位置等各项巡检数据,并按照设定协议打包数据,进行循环冗余检验保证数据正确[13],连接OneNet平台,通过IoT模块将打包的数据上传至平台。待数据上传完毕后,检查是否有要接收的平台指令,若有则处理平台下发的指令;若没有则断开与平台的连接,进入休眠状态。

3.4 客户端网页设计

客户端利用HTML5和PHP两种语言分别编写网页的前端和后台数据处理端,其开发环境分别为sublime和WampServer[14-15]。网页功能设计中主要包含了登录页面,监控页面,巡检信息页面、报警管理页面和终端设置页面,实现与终端设备的数据交互。其中登录页面实现用户登录;监控页面在地图上直观展示了报警城市地井位置,并设有查询功能,可以搜索固定城市地井当时所处状态;巡检页面实现了城市地井巡检信息的展示;报警管理页面实现了报警井位的报警原因、报警类型等信息的展示;终端设置页面实现了终端传感器参数和唤醒时间的设定。

4 测试结果分析

本系统通过基于NB-IoT的硬件的电路设计、终端软件程序设计以及客户端网页编写,实现了系统的主要功能。选用两个设备进行测试,测试主要包含了硬件是否能够正常工作,软件系统实现OneNet平台的连接和远程监控与控制。经测试,本系统实现了上述功能。部分终端页面如图8、9、10、11所示。

图7 主程序流程图

现对图中所示页面进行解释说明:图8为监控中心功能区,地图上展示了城市地井的位置,能够直观地展示出井位状态正常与否,也可通过井位编号和设备编号查询的方式查看所要查看的城市地井的位置信息和状态;图11为位井位巡检功能区,展示了各个终端监测节点正常上报信息。需要注意的是,由于液位传感器的内部工作原理,此页面展示的水位高度指的是液面距离井盖的高度;图10为报警管理功能区,页面功能为展示城市地井的报警历史信息,可以对出现过的报警历史进行翻阅,并查看是否已处置及报警时间;图11为终端管理功能区,页面的功能是展示和配置城市地井终端信息,包括终端的唤醒时间、电池参数、加速度传感器参数、液位传感器参数设置。需要注意的是,为了满足低功耗的要求,平台只有在终端上报巡检信息或者报警信息时,终端才可以执行此页面下发的命令,进行终端的配置。

图8 监控中心页面

图9 井位巡检页面

图10 报警管理页面

图11 终端管理页面

5 结论

本系统以NB-IoT模块为核心,完成了井盖倾斜角度、液位高度、地理位置、电池电量等数据的测量,基于自定义的通信协议上传至OneNet平台,通过HTTP POSTS的请求方式将数据上传至客户端。经过测试,系统能实现远程的监测和控制,具有连接广、信号强、通信稳定等优点,系统结构简单、成本低、操作方便,对于城市地井的监测和后台管理具有很大作用与意义。

猜你喜欢

电路设计页面客户端
刷新生活的页面
答案
让Word同时拥有横向页和纵向页
基于Multisim的单管共射放大电路设计与仿真分析
一种车用醉驾检测电路设计
Altium Designer在电路设计中的应用
如何看待传统媒体新闻客户端的“断舍离”?
负反馈放大电路设计
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略