智慧校园之基于LoRa技术的环境检测分析系统

2018-05-15 10:10江武志罗玉文
物联网技术 2018年4期
关键词:环境检测统计分析传感器

江武志 罗玉文

摘 要:基于LoRa的环境检测分析系统由传感器采集环境数据,通过LoRa通信模块传输到LoRa网关,后台服务程序通过订阅MQTT代理从LoRa网关获取传感器采集的环境数据,后台服务程序对采集的数据进行存储、统计、分析;后台服务程序提供统一的RESTful数据接口供应用层调用;Web前端页面展示实时数据和统计分析数据查询。实现对校园环境的实时检测和数据统计分析。

关键词:LoRa;传感器;环境检测;统计分析

中图分类号:TP23 文献标识码:A 文章编号:2095-1302(2018)04-00-04

0 引 言

随着物联网时代的到来,校园信息化建设也进入了“智慧校园”的时代,校园环境全面感知是“智慧校园”的基础,对校园环境进行检测分析,为校园环境治理提供依据以及为校园环境保护规划提供基础数据。传统通过RJ45网口或RS485通信方式采集数据的有线网络方案具有布线难、布线成本高、传输距离短等缺点。LoRa 是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗折衷的考虑方式,是一种能够简单实现远距离、长电池寿命、大容量的系统,进而可扩展传感网络。LoRa网络易于建设和部署,具有远距离、低功耗(电池寿命长)、多节点、低成本的特性,已成为当前应用最普遍的物联网专用网络通信技术,发展形势如火如荼。随着中国LoRa应用联盟(CLAA)的成立,LoRa技术的CLAA网络架构方案已经形成,国内LoRa网络部署全面起跑。

LoRa技术具有部署简单、成本低、易于维护、云联网等特点,是本文系统构建的首选。

1 设计思路

基于LoRa的环境检测分析系统采用分布式、微服务设计方式,将服务细分,使每个服务的功能尽可能单一,降低服务之间的耦合,使系统可独立部署运行和扩展。微服务可以做负载均衡,提高了性能和可靠性。

本系统主要由传感层、网关、后台服务、应用层(Web)组成。

(1)传感层由RS 485温湿度传感器、RS 485 PM2.5粉尘传感器、RS 485电表构成,通过RS 485总线接入到LoRa通信模块;

(2)网关由LoRa通信模块和嵌入式工控机构成;

(3)后台服务提供数据存储、统计、分析服务和统一的RESTful数据接口;

(4)Web提供数据展示和数据查询等用戶交互页面。

系统结构如图1所示。

2 LoRa简介

目前,LoRa 主要在全球免费频段运行,包括433 MHz,868 MHz,915 MHz等。

2.1 LoRa特性

LoRa技术具有远距离、低功耗(电池寿命长)、多节点、低成本等特性。

2.2 LoRa网络

LoRa网络主要由终端(可内置LoRa模块)、网关(或称基站)、Server和云四部分组成,应用数据可双向传输。LoRa网络架构如图2所示。

2.3 LoRaWAN协议

LoRaWAN是 LoRa联盟推出的一个基于开源MAC层协议的低功耗广域网(Low Power Wide Area Network, LPWAN)标准。这一技术可为电池供电的无线设备提供局域、全国或全球网络。LoRaWAN瞄准的是物联网中的一些核心需求,如安全双向通信、移动通信和静态位置识别等服务。该技术无需本地复杂配置就可实现智能设备间的无缝对接互操作,为物联网领域的用户、开发者和企业提供自由操作权限。

3 系统设计

3.1 硬件接入

RS 485数据采集器(温湿度、空气质量、电表)通过RS485总线接入LoRa通信模块,通过LoRa通信模块将数据采集器采集到的数据传输到网关端的LoRa通信模块。数据采集器端数据为被动上传方式,由网关定时下发指令获取数据。

3.2 网关程序

网关(Gateway)又称网间连接器、协议转换器。网关在传输层上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议间的网络互连。

网关程序主要由RS 232转TCP驱动程序、数据采集程序、数据储存程序、数据上传程序、MQTT程序(数据生产者)组成。LoRa通信模块通过RS 232接入嵌入式工控机,通过RS 232转TCP驱动程序将LoRa接收到的采集数据统一转换为TCP协议,数据采集程序通过Socket通信获取数据。网关程序结构如图3所示。

4 MQTT服务

4.1 MQTT简介

MQTT是基于二进制消息发布/订阅编程模式的消息协议,最早由IBM提出,如今已成为OASIS规范。由于规范较简单,非常适合需要低功耗和网络带宽有限的IoT场景。

4.2 MQTT设计原则

(1)精简,不添加可有可无的功能。

(2)发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递。

(3)允许用户动态创建主题,零运维成本。

(4)把传输量降到最低以提高传输效率。

(5)把低带宽、高延迟、不稳定的网络等因素考虑在内。

(6)支持连续的会话控制。

(7)理解客户端计算能力可能较低。

(8)提供服务质量管理。

(9)假设数据不可知,不强求传输数据的类型与格式,保持灵活性。

4.3 MQTT发布/订阅模式

与请求/回答这种同步模式不同,发布/定义模式解耦了发布消息的客户(发布者)与订阅消息的客户(订阅者)之间的关系,这意味着发布者和订阅者之间无需直接建立联系。

(1)发布者与订阅者不必了解彼此,只要认识同一个消息代理即可。

(2)发布者和订阅者不需要交互,发布者无需等待订阅者确认而导致锁定。

(3)发布者和订阅者不需要同时在线,可以自由选择时间来消费消息。

4.4 MQTT主题

MQTT通过主题对消息进行分类,其本质是一个UTF-8字符串,可通过反斜杠表示多个层级关系。主题无需创建,直接使用即可。

主题还可通过通配符进行过滤。其中,“+”可以过滤一个层级,而“·”只能出现在主题最后,表示过滤任意级别的层级。举例如下:

building-b/floor-5:代表B楼5层的设备。

+/floor-5:代表任何一个楼的5层的设备。

building-b/·:代表B楼所有的设备。

虽然MQTT允许使用通配符订阅主题,但并不允许使用通配符广播。

4.5 MQTT服务质量

为了满足不同的场景,MQTT支持三种不同级别的服务质量(Quality of Service,QoS),为不同场景提供消息可靠性:

(1)级别0:尽力而为。消息发送者会想尽办法发送消息,但遇到意外并不会重试。

(2)级别1:至少一次。消息接收者如果没有知会或者知会本身丢失,消息发送者会再次发送以保证消息接收者至少会收到一次,但也可能造成重复消息。

(3)级别2:恰好一次。保证这种语义肯定会减少并发或者增加延时,但如果丢失或重复消息不可接受时,级别2最合适。

级别2所提供的不重不丢在很多情况下都是最理想的,但往返多次的确认会给并发和延迟带来影响。级别1提供的至少一次语义在日志处理场景下完全足够,所以像Kafka这类系统利用此特点减少确认,可大大提高并發。级别0适合鸡肋数据场景,暂且保留。

4.6 MQTT消息类型

MQTT拥有14种不同的消息类型:

(1)CONNECT:客户端连接到MQTT代理。

(2)CONNACK:连接确认。

(3)PUBLISH:新发布消息。

(4)PUBACK:新发布消息确认,是QoS 1给PUBLISH消息的回复。

(5)PUBREC:QoS 2消息流的第一部分表示消息发布已记录。

(6)PUBREL:QoS 2消息流的第二部分表示消息发布已释放。

(7)PUBCOMP:QoS 2消息流的第三部分表示消息发布完成。

(8)SUBSCRIBE:客户端订阅某个主题。

(9)SUBACK:对于SUBSCRIBE消息的确认。

(10)UNSUBSCRIBE:客户端终止订阅的消息。

(11)UNSUBACK:对于UNSUBSCRIBE消息的确认。

(12)PINGREQ:心跳。

(13)PINGRESP:确认心跳。

(14)DISCONNECT:客户端终止连接前通知MQTT代理。

4.7 MQTT代理

Mosquitto是MQTT的开源代理,遵循MQTT v3.1.1协议。

5 后台服务

后台服务采用Java语言编写,由数据解析服务、数据存储服务、数据统计分析服务、用户管理模块、设备节点管理模块、实时数据模块组成。后台服务结构如图4所示。

5.1 数据解析服务

数据解析服务程序主要负责将网关上传的环境数据进行协议解析,获得温湿度、PM2.5、用电量等数据,并将解析的数据存入Rides缓存,由相应的服务程序获取并做相应的处理。

5.2 数据存储服务

数据存储服务程序从Rides缓存中获取解析后的数据,将相应的数据存入MySQL对应的数据库表中。

5.3 数据统计分析服务

统计当月平均每天的(24小时平均值)温度、湿度;统计当月每天PM2.5污染指数与指数类别;统计当月每天的用电量。数据统计如图5所示。

5.4 用户管理模块

用户管理模块提供用户添加、用户删除、用户信息修改、密码更改、用户列表查询、用户登陆、注销等功能。如图6所示。

5.5 设备节点管理模块

设备节点管理模块可提供设备节点添加、设备节点删除、设备节点信息修改、设备节点列表查询等功能,如图7所示。

5.6 实时数据模块

实时数据模块可获取各监测点当前的实时温湿度、PM2.5、用电量,如图8所示。

6 数据建模

功能建模如图9所示。

数据建模如图10所示。

编号:001

职责:存储采集的数据。

属性:ID,温度,湿度,PM2.5,电流,电压,功率,(总)用电量,创建时间。

说明:数据采集类与数据天统计类存在依赖关系,数据天统计类每天数据的生成依赖数据采集类采集的数据。

编号:002

职责:对每天采集的数据进行统计。

属性:ID,平均温度,平均湿度,平均 PM2.5 浓度,(当天)用电量,创建时间。

说明:数据天统计类与数据采集类存在依赖关系, 数据天统计类每天数据的生成依赖数据采集类采集的数据。

7 结 语

本环境检测分析系统通过温湿度传感器、PM2.5粉尘传感器、电表采集校园的环境数据和用电数据,实时检测校园的环境情况。通过历史数据统计分析校园的环境情况以及校园用电情况,为校园环境治理提供依据,为校园环境保护规划以及校园节能提供基础数据,也为未来的“智慧校园”提供数据支持。

参考文献

[1] AUGTEK物联网观察-LoRa技术科普[Z].

[2]张琪.MQTT入门[Z].

[3]宋延军,梁俊艳,王德志.基于LoRa的10 kV架空线路故障监测系统设计与实现[J].华北科技学院学报,2017,14(5):30-34.

[4]赵太飞,陈伦斌,袁麓,等.基于LoRa的智能抄表系统设计与实现[J].计算机测量与控制,2016,24(9):298-301.

[5]马路遥,徐鹏.基于LoRa扩频技术在燃气无线抄表系统的应用[J].城市燃气,2016(7):7-9.

[6]霍振龙.LoRa技术在矿井无线通信中的应用分析[J].工矿自动化,2017,43(10):34-37.

[7]罗贵英.基于LoRa的水表抄表系统设计与实现[D].杭州:浙江工业大学,2016.

[8]郑浩. LoRa技术在低功耗广域网络中的实现和应用[J].信息通信技术,2017(1):19-26.

猜你喜欢
环境检测统计分析传感器
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
如何发挥新时期统计工作的作用之我见
以统计分析为基础的房地产税收优化分析
QA在药厂环境检测方面应知应会①
室内环境检测的常见问题分析和防治措施研究
基于STC89C51单片机的智能窗户启闭器