APP下载

基于LoRaWAN的智能园区管理系统

2018-11-29邹东尧刘宽李娜娜董苏鑫杜中州

现代计算机 2018年31期
关键词:串口网关数据包

邹东尧,刘宽,李娜娜,董苏鑫,杜中州

(郑州轻工业学院计算机与通信工程学院,郑州 450002)

0 引言

随着智能家居等方向的飞速发展,物联网技术在人们生活中的使用越来越广泛,人们可以通过各式各样的传感器来获取所需要的信息,然后通过计算机系统的分析与处理,通过反馈给予人们更加方便快捷的生活[1]。这是物与网与人的互联互通,信息由传感器采集之后经由信道传给接收端,其中作为物联网传输通道的通信技术也在日趋发展成熟。物联网中的通信技术分为有线通信和无线通信[2],有线通信是传统的使用有线线缆做为通信信道,进行信息的传递。而无线通信的主要传输方式有Wi-Fi、ZigBee、NFC、蓝牙等传输协议[3],在物联网实际使用中,无线通信是适用范围最大的通信方式,但是现有的无线通信方式却各有缺陷,无法满足物联网系统中的控制要求,例如:Wi-Fi传输距离太短,ZigBee的通讯信号穿透能力和绕射能力差等[4]。最理想的无线传输方式是既有较远的传输距离还要有较低的功耗,所以距离和功耗之间难以取舍,是制约如今物联网大规模发展普及的原因。

而LoRa出现可较好的改变这一现状,LoRa是专门为了物联网的发展而设计的一种无线网络通信技术,是由Semtech公司提出的一种超长距离低功耗的数据传输技术,LoRa使用线性的跳频扩频技术,把带宽分成一个个小的子通道,发送者和接收者在一个通道上工作一段时间后跳转到另一个通道。LoRa数据传输时工作在多个不同的频段上,当一个频段出现异常,就自动跳转到相邻的频段进行通信,这样带来的优点就是保障了通信的稳定性。在通信距离上可达到15Km以上,适用在长距离发送小数据的终端设备上[5]。故此,物联网中无线通信选择LoRa技术可较好解决通信问题。近年来,国内外LoRa技术的发展十分迅速,在国外Lo⁃Ra技术日益发展成熟时,中国也成立了CLAA(China LoRa Application Alliance),以应用联盟的形式,促进中国LoRa技术的商用化发展[6]。LoRa技术指标对比于Wi-Fi、ZigBee,优点可以参照表1所示。

表1 LoRa、Wi-Fi、ZigBee 技术指标对比

1 系统架构分析与设计

该系统设计了一个覆盖一定范围的LoRa局域网络,在这个局域网环境中,首先数据采集端的传感器节点采集外界信息,当传感器采集到信息之后,通过传感器节点上的LoRa模块经由LoRaWAN向LoRa网关发送信息,经管理端软件对信息进行接受处理之后,对信息做出对应处理,例如显示想要得到的信息或是发出操作指令。本系统的设计在模块上主要分为数据采集端、LoRaWAN、管理软件端三部分。系统框图如图1所示。

图1 系统框图

数据采集端的通过采集节点上的传感器获取外界数据,通过LoRa网络传送到LoRa网关中。在本系统中,使用到的传感器的类型主要有对火灾预警的火焰传感器和停车场管理的超声波传感器。每一个数据采集端由单片机连接传感器和LoRa模块,通过I2C或者SPI等方式从I/O口读取传感器信息,将信息经计算处理后通过设定好的数据格式构造一个数据包,将数据包通过串口发送到LoRa模块,经LoRaWAN发送到LoRa网关。而LoRaWAN是为了让LoRa节点互相通信而设计的完整的通信协议和系统架构。LoRaWAN网络架构规定了系统至下而上依次是终端、网关、网络服务器和应用服务器。在智能园区系统的设计中,我们基于LoRaWAN的标准协议设计出本系统通信的数据格式,包括数据的开始位和结束位、设备的id号、传输的数据格式等。LoRa网络设计采用星型网络模型,由一个LoRa网关接收处理所有的信息,各个采集模块通过LoRa模块接入到LoRa网关中。LoRa网关通过串口连接至管理PC,通过操作,LoRa网关可以将相应的数据发送给某个或全部的数据采集模块。

2 系统硬件实现

该系统的硬件设计分为传感器节点和LoRa网关两部分,硬件服务于信息的采集和传递阶段。传感器感知外界信息,LoRa网关对信息进行接收。

系统在传感器节点设计了停车场检测模块和和火灾报警模块,停车场检测模块利用超声波传感器,通过放置在在车位下方的中心地面的传感器检测在当前车位是否有车辆停放。检测停车场车位信息的传感器选用HC-SR04。这个超声波测距传感器能提供2cm至400cm的非接触距离感测功能[7],因为汽车底盘距离地面的高度不会超过几十厘米,所以将该超声波模块嵌入于停车位的中心地面上,可以敏锐的检测上方是否车辆停放。而火灾报警模块在传统的烟雾报警器基础上,加装火焰传感器,以提高对火灾监测的灵敏度,传感器硬件上由LM393和红外发射管组成,可以检测火源或者波长为700nm~1000nm的热源[8]。当检测到烟雾或火焰时,会第一时间采集外界信息的改变,迅速传递是否有火灾发生的信息。

LoRa网关是信息传递的关键部位,LoRa网关的设计采用S78s网关,使其运行LoRa网关的代码来实现的所有功能,包括数据的转发、处理等[9],通过串口连接至管理平台。数据采集端采集来的所有数据都要传输到LoRa网关中,进行相关数据的解包分析后,通过串口发送数据到上层的管理平台。同时,管理平台下发的所有数据都要通过LoRa网关分发到数据采集端。所以LoRa网关必须能够稳定且高效的来进行LoRa网络的数据的收发。

3 系统软件实现

本系统的软件组成包含两部分,分别是由下位机数据采集端程序和上位机程序。下位机数据采集端程序分别包括停车场模块软件、安防模块软件等。上位机为管理软件端,对信息进行接收处理并发出指令。上位机与下位机会通过LoRaWAN进行数据的传输。

3.1 下位机数据采集端软件

数据采集端作为下位机,软件功能分为三个部分,一是通过传感器采集相关的有用的信息,二是通过串口发送到LoRaWAN当中,三是从LoRaWAN中接收到数据时执行相关的操作。设计上将采集和发送功能一起进行,下位机通过GPIO口读取到各类传感器采集的信息,然后按照设定好的通信协议添加额外数据,形成的完整数据包通过串口发送。发送完后设置定时器,进入休眠状态,定时器重置后会再次进行读数据、发数据、设置定时器、休眠,如无中断,系统会一直运行。当接收到上位机发送的命令信息后,会通过串口来实现中断,软件设置打开串口中断功能,当LoRa接收到数据后,通过串口发送到下位机,产生串口中断,然后单片机会停止当前的任务去接收数据,完成后对数据包进行解析,按照命令执行相关操作,完成后返回执行前的程序。整个软件的流程图如图2所示。

图2 数据采集端系统流程图

停车场系统的软件设计通过使用单片机驱动超声波传感器正常工作,在软件中,会通过延时或循环产生100个40kHz的方波,同时计时器开始计时,当方波碰到障碍便会返回,超声波模块接收到返回信号后通过GPIO口给单片机一个信号产生中断,使其进入中断程序中。在传感器终端中,首先停止计时器,等待超声波发送结束,检测时间和计算距离,将结果保存,清除中断并打开串口发送数据给LoRa模块,通过LoRa网络将数据发送到管理系统中。管理系统根据数据进行相关信息的更新显示。超声波检测软件流程图如图3所示。

安防系统流程相似于超声波检测流程,系统中的火焰检测主要是通过判断传感器输出端的电平,输出端通常默认为高电平,如检测到输出端为高电平,则表明火焰传感器未检测到火源,不做报警处理。如检测到传感器输出端为低电平,则表示火焰传感器检测到了火源,进行报警处理。所以软件设计包含两个模块:检测传感器输出端电平的高低和串口数据的发送。

3.2 LoRaWAN

LoRaWAN是为了让LoRa节点互相通信而设计的完整的通信协议和系统架构。其中,通信协议包含了节点的分类、加密、MAC命令、地区参数等等各类信息,从设计上保证了使用LoRa的各个厂商可以实现互联互通。LoRaWAN网络架构规定了系统至下而上依次是终端、网关、网络服务器和应用服务器。我们在LoRaWAN的基础上,通过数据结构中的不同的数据标志位来区分各个终端节点。

在系统的设计中,我们基于LoRaWAN的标准协议设计出了适合本系统通信的数据格式,包括数据的开始位和结束位、设备的id号、传输的数据格式等。例如在停车场系统中,我们假设了该小区具有三个停车场分别为A区、B区、C区,同样用A、B、C来进行表示,然后用1和0表示该车位上是否有车辆停靠。或是在智能安防系统中,我们通过设备的ID号来区分是哪一区域发生险情,直接将险情区域信息放在数据包内。

3.3 上位机管理软件

上位机软件使用C++语言结合MFC辅助进行开发。因LoRa网关的数据是通过PC的串口上传[10],使用上位机软件首先应打开对应的串口对数据进行监听。接收传送来的数据,对数据包进行解析获取有用的信息,最后将数据赋给对应的控件,并对其进行显示或其他的操作。当上位机下达命令时,通过串口直接发送到LoRa网关。串口的通信设置中端口号会进行自动的扫描显示,然后打开系统即可;停车场系统可以实时更新当前区域内剩余车位数量,后期可根据需求对车位的位置进行定位,进行导航指引;当有火灾险情时,着火区域会显示险情发生的区域户号,同时会打开设备的喇叭对管理者进行警报,当对火情进行排查或处理后,需要管理员在管理端软件输入密码手动解除警报,否则警报不会关闭。上位机控制系统如图4所示。

图4 上位机控制系统

4 系统测试与结果分析

在校园内对系统进行测试,选取一个车位安装停车场检测装置,并随机在区域内选取了一个点作为火灾测试区域,然后用电脑连接LoRa网关进行初步的网络通信和数据交换的测试实验。在6个小时的时间内,车位检测车辆进出共6次,发送数据包6次,控制端准确更新对应车位空闲情况的信息。对两个火灾检测点进行测试,用打火机火源模拟真实火源状况,共计测试40次,每次测试结果均正常,控制端能够判断出发生火灾的区域。

LoRa技术的通信指标中很重要的一项指标是通信距离,通信距离的测试受很多因素的影响,包括但不限于是否有障碍物遮挡、是否有其他的干扰信号等。我们在校园内进行了LoRa节点到LoRa网关的通信距离的测试,模拟真实环境中的各种干扰因素,实测把LoRa网关安放在图书馆东侧,节点可以覆盖以图书馆东侧为中心的所有区域,以证明LoRa技术对长距离传输的支持。

图5 测试距离在地图上展示

校园内,通过布置了三个终端节点和一个LoRa网关,组成了一个小型的LoRa网络。连续运行24个小时,终端节点共计上传到LoRa网关343个数据包。停车场系统中,控制端数据能够准确的记录并显示车位是否被占用;安防系统中,当我们在传感器附近点燃火源时,系统能够实时地显示出险情区域,并播放报警声音。测试结果显示,基于LoRa网络的智能园区系统能够稳定运行并符合预期。

5 结语

根据现如今物联网的传输技术在传输距离和传输功耗上难以取舍的问题,本文提出基于LoRaWAN的低功耗智能园区管理系统,通过对信息传递的三层结构,分析并设计了系统模型。由技术对比可知,在和传统的无线传输方式比较上,LoRaWAN因其能实现低功耗且远距离地传输信息,符合物联网的通信需求。该系统基于LoRaWAN,可以灵活地进行网络的部署,并根据用户需求,对系统进行功能的介入,对于未来,我们计划将系统与诸多便民业务相联,使智能园区可提供的服务更全面、更便捷。

猜你喜欢

串口网关数据包
基于FPGA的工业TSN融合网关设计
二维隐蔽时间信道构建的研究*
一种主从冗余网关的故障模式分析与处理
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
C#串口高效可靠的接收方案设计
天地一体化网络地面软网关技术及其应用
车联网网关架构的设计
MCS—51单片机中的多串口通讯技术的应用