基于云平台的物联网监控系统设计
2022-04-12崔远
崔远
(兰州职业技术学院 电子信息工程系,甘肃兰州,730070)
0 引言
随着“智慧生活”观念的深入人心以及“中国制造2025”[1]的持续推进,监控系统以及工业互联网广泛的应用在日常生活和工业领域中。2010年国务院发布的文件,将物联网提升为国家发展战略的重要组成部分[2]。2016年国家在“十三五”规划中提出“发展物联网开环应用”,加强物联网实现互联互通,数据共享和协同化引用[3]。同年NB-IoT(Narrow Band Internet of Things,窄带物联网)标准[4]的确立,为物联网的广泛推广铺平了道路。2018年,国家印发了《工业互联网发展行动计划(2018-2020年)》,强调了物联网在工业应用中的重要性[5]。现阶段,物联网活跃设备已达到100亿台以上,预估2025年该数量会增加到1000亿台。
监控系统广泛的应用于人们的日常生活中,传统监控系统大部分本地采集,本地存储,然而随着监控设备数量的增加以及数据采集类型的扩充,本地存储既无法实现长期存储,也不利于后续数据的分析。云平台经过多年的发展,无论在数据存储还是数据处理方面都展现出强大的优势,将云平台引入监控系统已经成为一种可能。提出的基于云平台的物联网监控系统通过物联网实现监控系统的低功耗运行,并使用云端实现数据的高性能存储,以及监控数据的统一处理和分析,可有效提高系统的安全和拓展性能,便于实现物联网监控系统的稳定运行。
1 基于云平台的物联网监控系统设计
1.1 系统总体设计
物联网云平台是物联网与云平台结合的产物,其中物联网负责数据的采集和传输,而云平台负责数据的存储和分析处理等。云平台有效降低了应用的搭建和应用的后续开发升级的成本。基于云平台的物联网监控系统的架构如图1所示。
图1 基于云平台的物联网监控系统架构
为了简化设计,系统采用分层结构,主要包括:感知控制层,网络传输层,平台服务层以及应用服务层。
(1)感知控制层:主要包括主控单元,数据采集单元和动作执行单元。其中主控单元负责数据采集频率,采集类型,采集时间等的控制,以及执行单元控制命令的转发。主控单元以主控芯片为控制核心,实现设备和环境信息的采集,同时根据预先设定的程序应对环境参数的变化,如温度上升到一定的数值,开启降温设备,发现明火时自动开启消防设备等。
(2)网络传输层:负责物联网数据的传输,该层包括多种网络协议的实现。以低能耗为基本要求,以数据传输可靠性为底线,以保证系统稳定性为目标,选用合适的网络数据传输方式实现数据的传输。针对不同环境不同类型的数据采集设备,选用不同的网络传输协议实现数据稳定可靠的传输。
(3)平台服务层:负责物联网设备的接入,网络身份认证以及数据解析,安全管理,数据模型和数据的分析规则,同时向上层提供API接口实现物联网数据的读写。平台服务层以物联网云平台为核心,以消息订阅的模式实现数据向不同的应用系统分发,从而保证数据可以及时有效的传输到应用系统,在紧急情况出现时,可以有效的实现精准调控。
(4)应用服务层:负责数据的分析处理以及数据的展示,以及用户规则的制定,紧急预案的生成。通过web应用的方式实现前后端分离,以满足应用层的可靠稳定和高并发,后端负责从平台服务层获取数据并进行相应的处理,通过与前端建立通信接口,将感知控制层的状态信息展现给用户,同时提供接口给用户,以便用户实现对感知控制层执行单元的控制。
1.2 数据传输设计
数据传输主要是网络传输层将采集单元获取的数据上传到平台服务层,同时将应用服务层的命令下发给执行单元,也可以将预定义的处理方案下发给控制单元。感知控制层内采集单元和控制单元的数量较多,不同设备由于类型和作用不同,因此使用的通信协议也各不相同,为了实现数据的统一管理和存储,在网络传输层实现协议设配模块,并采用统一的数据传输格式向平台服务层发送数据。
为了屏蔽各数据之间的差异,降低数据解析和处理的难度,制定统一的消息上报格式,以JSON数据格式为标准,如表1所示,将每个上报数据类型定义为一个主题,由“location:type”构成。
表1 数据参数
为了解决物联网监控系统中大量并发消息请求而导致数据丢失和服务延迟的问题,系统采用了基于消息中间件kafka[6]以及消息处理工具storm[7]的数据接入方案,以采集单元生产数据,使用kafka实现消息缓存,同时在平台服务层设计storm集群服务器作为消息的消费者,应用服务层的各个订阅者从storm集群服务器获取实时数据,经过过滤后将数据存储在平台服务层中,实现数据的持久化存储。基于云平台的物联网数据接入模型如图2所示。
图2 数据接入模型
1.3 数据存储设计
物联网监控系统中存在大量的各式数据,且会随着时间的推移,会有更多的设备更多的数据类型接入系统。本系统中的数据主要来自两个方向三种类型的数据:设备产生的由下至上的数据和用户产生的由上至下的数据。感知控制层生产的传感器数据,应用服务层用户生产的业务数据以及用户制定并下发的应急规则等。为了实现数据的合理快速持久化存储,需要针对三类数据采用不同的存储方案。
感知控制层的设备数据由传感器采集,数据量随着时间呈线性增长,且由于监控系统的特点,传感器数据都是写多读少,为了应对这种使用环境,采用非关系型数据库MongoDB集群[8]部署方案,物联网数据由配置节点,路由节点和存储节点组成,客户端负责连接路由节点,将数据分散均匀的保存在各存储节点上。数据存储结构如图3所示。
图3 分片式数据存储
使用MongoDB存储物联网监控数据,适用于保存结构松散的物联网设备数据,当新的设备加入或者旧的设备淘汰,都不会因为数据类型的增加或者减少导致数据库结构出现问题。采用集群化部署方式,降低数据库的读写压力,采用分布式存储的方案,并使用分片存储,提高系统的吞吐率。对于用户产生的数据,采用mysql存储。
2 系统硬件设计
2.1 硬件设计
基于云平台的物联网监控系统的硬件设计如图4所示,主要有控制模块,通信模块,传感器以及执行模块组成,为了提高系统的扩展性,各模块之间通过Arduino接口[9]进行连接。
图4 系统硬件设计
系统各模块功能如下:
(1)电源模块:主要负责向不同模块提供不同的直流电压,如向控制模块提供12V电源,向传感器和执行模块提供5V和3.3V电压等。其电路原理如图5所示。
图5 电源模块原理
电源模块以220V交流电作为输入,由变压器将220V电压直接转换为12V直流电,通过开关电源这季节连接12V驱动板,然后有驱动板实现动作单元模块的供电开关。与此同时,12V电压还作为MP1584EN模组的输入电压,输出5V电压供传感器单元使用,5V电压也作为模组LM1117K3.3的输入,转化为3.3V电压作为输出。
(2)控制模块:负责环境调节器的本地业务逻辑以及与云平台的通信建立和消息传输。本系统使用STM32L4作为主控芯片,实现环境传感器获取环境参数信息,通过控制执行模块的控制模块和环境调节器进行工作。在本系统中,使用NB-IoT实现相互连接,进行本地业务逻辑进行控制,同时设定内置的应急处理程序,实现对系统的自动化处理。
为了实现能耗和性能的平衡,本系统选择STM32L4 R5ZIT6单片机作为主控系统,L4系列主打低功耗特征,特别适用于在大规模云监控平台中,该单片机使用了ARM Contex-M4内核,配备2M的Flash和640K的SRAM空间,基本满足系统的自主控制程序所需空间。在接口方面,配备了SPI,GPIO,UART等外设,可有效实现与大部分传感器的通信需求。由于STM32L4系列的高效能耗管理程序,该单片机提供了低功耗的睡眠模式和运行模式,在保证最低功耗的同时基本功能的运行,并且可实现从睡眠模式快速切换为完整功能模式。
(3)通信模块:使用BC28模块实现该功能,支持B1/B3/B20/B28等频段,是一款低功耗的NB-IoT无线通信模块,可以实现系统与运营商网络进行无线通信。BC28通信模块的功能如图6所示。
图6 BC28模块功能图
通信模块通过接收控制模块发送过来的AT指令,在运算和处理后,返回响应信息到控制模块,常用的AT指令如表2所示。
表2 NB-IoT模块常用AT指令
?
(4)执行模块:包括MCU控制的MOS作为控制单元,实现控制模块的IO输出等。
对于嵌入式终端来说,所有的控制程序都集中于主控系统中,系统通过NB-IoT模块进行通信管理,同时使用hash加密的方式建立设备与云平台之间的MQTT联系,并制定相应的Topic,并制定Topic的订阅消息。
2.2 云端设计
平台服务层主要实现设备接入和数据处理相关工作,主要包括:
(1)设备接入:在设备接入之前,需要通过三元组对设备进行绑定,从而获取系统认可的设备证书,设备的三元组用于与云平台建立MQTT连接的凭据,其中参数如表3所示。
表3 MQTT参数
(2)自定义topic:根据业务内容自定义的MQTT通信topic,将各项环境参数阈值进行设定的topic,如报警条件,消除报警条件,启动环境调节条件,以及其他基础topic等。
3 结束语
将云平台引入监控系统,可有效的解决本地存储无法实现长期存储,也不利于后续分析的问题,提出的基于云平台的物联网监控系统通过物联网实现监控系统的低功耗运行,并使用云端实现数据的高性能存储,以及监控数据的统一处理和分析,可有效提高系统的安全和拓展性能,便于实现物联网监控系统的稳定运行。