朱家乐
关键词:工业互联网;ThingsBoard;传感器;环境监测;IoT
0 引言
在工业生产中,工厂环境直接影响产品质量和产线工人的身体健康,因此需要对工厂环境比如温度、湿度等进行实时监测。随着传感器技术、工业互联网技术的迅猛发展,在数据监控领域涌现出丰富的应用。文献[1]设计并实现一种基于海量异构传感器的物联网水质监测系统。文献[2]介绍一种基于新大陆AIoT的在线实训仿真平台,能够对牧场数据进行远程实时监控。文献[3]提出了一种基于工业互联网平台的工厂环境监测系统设计,但并未给出系统实现。这些系统基于工业互联网平台实现了不同场景的应用。为了对工厂环境进行实时监测,提高生产质量,本文设计一种基于工业互联网平台的工厂环境监测系统,能够实时监测车间的温度、湿度等指标,并搭建环境进行系统验证。
1 相关技术
1.1 传感器及协议
传感器是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出[4]。在现代工业生产中,要用各种传感器来监视和控制生产过程中的各个参数,使设备工作在最佳状态,并使产品达到最好的质量。常见的传感器有温湿度传感器、压力传感器、位置传感器等,可以用来环境监测温湿度、管道压力、物体位移等。本文采用温湿度传感器来监测车间环境的温湿度指标。
传感器协议分为两大类:1) 传输协议。常见的传输协议包括LoRaWAN和NB-IoT,负责子网内设备间的组网及通信,运行在物理层/数据链路层[5]。2) 通信协议。常见的通信协议包括MQTT、CoAP、LwM2M、HTTP,运行在传统互联网TCP/IP协议之上,负责设备通过互联网进行数据交换及通信。MQTT具有轻量、占用带宽低的特点,适用于低功率设备、不可靠的工作网络环境。MQTT使用订阅/发布模式,将消息的发送方和接受方解耦。本文以MQTT协议作为传感器上报数据的通信协议。
1.2 工业互联网平台
工业互联网是新一代信息技术与工业系统深度融合形成的新领域、新平台和新模式,是将工业系统与信息网络高度融合而形成的互联互通网络。工业互联网的核心是工业互联网平台,其承载了大量基于各种服务架构的数字化模型。近年来,我国工业互联网的热潮涌动,各种工业互联网平台和新产业如雨后春笋般冒出,如华为FusionPlant、腾讯WeMake、徐工信息汉云等。同时也出现了比较活跃的开源项目,如ThingsBoard、JetLinks等。ThingsBoard 支持多种通信协议接入,如MQTT、CoAP、HTTP,采用微服务架构,具备较强的扩展性、容错性和健壮性。基于开源项目的研究可以快速搭建开发环境,代码开发,功能可控,方便按需求改造系统代码。本文以ThingsBoard作为工业互联网平台的基础开发框架。
2 系统功能设计
系统的主要功能包括6个模块,分别为系统首页、设备管理、设备配置、仪表板管理、账号管理和系统管理。系统首页设计为左菜单右内容,用户点击菜单进入不同的功能页面,其中最常用的功能是監测大屏,展示各个车间传感器的实时状态。设备管理是整个系统的基础数据来源,负责展示设备列表,新建设备,查看设备详情如设备属性、遥测数据、告警等,和传感器通信时,需要在设备管理中配置设备ID和通信凭据,验证正确才能正常通信。设备配置模块主要负责相同传感器设备的通用配置,比如传输配置、告警规则等,避免出现相同设备重复配置的情况。设备配置和设备管理模块紧密相连,每一个接入的设备都默认绑定一个设备配置。仪表板管理模块联系设备上报的遥测数据和系统大屏,使用内置的仪表板直观地展示遥测数据,根据用户的需要配置在系统大屏上实时展示。账号管理负责用户管理,包括用户的注册、登录、退出和认证等,同时支持租户管理。系统管理模块主要维护系统的帮助信息、审计日志、API使用统计等。系统功能设计如图1所示。
3 系统架构
系统整体架构包括3个部分:传感器、工业互联网平台、应用。1) 传感器。该部分可以采集多种环境数据,包括温度、湿度、光照等,通过不同的传输协议如NB-IoT、Wi-Fi等,发送到工业互联网平台。支持常用的传感器通信协议,包括MQTT、CoAP、LwM2M、HTTP等,只要是采用标准化通信协议的传感器,都可以接入。2) 工业互联网平台。该部分是整个系统的核心,负责接收并处理传感器数据,并进行大屏展示、数据监控、事件告警。各个服务采用微服务架构,根据业务合理进行服务拆分,实现服务的独立部署、弹性伸缩。平台接受和处理的消息来源于两个方面:一方面是传感器消息,另一方面是应用消息。传感器消息根据不同的通信协议,发送到不同协议的负载均衡组件,如MQTT负载均衡、HTTP负载均衡等,然后由负载均衡组件分发到设备消息服务处理。应用消息分为两类,一类是访问静态Web 页面,一类是访问REST API,也分别由各自的负载均衡组件处理,分发到UI服务和核心服务。需要说明的是,负载均衡是可选组件,在高负载的环境下使用负载均衡可以分散单个服务的压力,而在低负载的环境下可以取消负载均衡,采用单机的方式部署,降低成本。在存储方面,平台采用关系型数据库存储设备列表、设备配置、仪表板、账号信息等;采用非关系型数据库存储时序类数据如遥测数据,便于数据的横向扩展。3) 应用。用户可以通过浏览器方式对系统进行操作,配置传感器接入,查看仪表盘数据,并实时监控车间环境数据。第三方应用也可以使用API数据接口访问平台的数据。系统架构设计如图2所示。
4 系统开发及测试
基于上述系统架构设计进行系统开发,主要开发工具可分为如下几类:平台前端、平台后端、数据存储、容器部署。开发工具的详细情况如表1所示。
4.1 工业互联网平台
开发工具准备好后,以ThingsBoard开源项目为基础,进行环境搭建和开发。参考步骤如下:1) 编译项目源代码。在编译过程中可能会因为软件版本导致各种编译问题,可以采用分模块编译的方法,逐个模块编译解决。2) 特性开发。针对本项目的场景和需求,在开源项目代码的基础上完成项目特性的开发。3) 项目部署。项目的部署方式有2种:直接部署和容器化部署。为了提高系统部署效率,屏蔽系统部署的环境差异,本文采用Docker进行容器化部署。参考docker-compose配置文件如下所示:
系统登录地址为http://${serverIP}:8080/,默认有三类用户:系统管理员、租户管理员和租户,输入对应用户的账号和密码即可登录平台。
4.2 创建传感器
为了进行工厂环境监测,计划创建四个温湿度传感器,分别监测四个车间的温湿度。传感器使用MQTT协议进行数据上报。首先在平台侧设备管理模块添加四个传感器设备,用来接收和展示传感器的遥测数据。注意配置好通信协议为MQTT,以及协议参数如设备ID和Access-Token。随后在传感器侧创建四个温湿度传感器,用来测量并发送温湿度数据。为了便于测试,系统采用开源工具MQTTBox来进行传感器模拟。MQTTBox 是一个带有可视化的界面的MQTT协议的客户端工具,支持发布和订阅多个主题。创建MQTTClient时,需配置MQTT Client Id为平台的设备ID,配置MQTT服务器Host为${serverIP}:1883,配置Username为平台的Access-Token。配置正确后可以成功连接到平台的1883端口,模拟的四个传感器如图3所示。
4.3 传感器数据上报
工业互联网平台和传感器都准备好后,就可以按照MQTT协议规范和数据格式要求,使用传感器上传四个车间的温湿度数据。其中传感器发布的主题为v1/devices/me/telemetry,发送的数据格式为Json,样例数据为:{'humidity': 25,'temperature':25}。传感器上报温湿度数据后,可以在平台侧查看传感器上报的数据信息,说明传感器上报数据成功,平台也成功收到了传感器的上报数据,如图4所示。
4.4 查看车间环境监测信息
在系统中定制大屏展示组件,展示所有车间的温湿度情况。通过搭建ThingsBoard环境,模拟温湿度传感器,配置MQTT协议等步骤,打通了传感器数据上报、处理、展示等整套流程,实现了对车间环境的实时监控。经过对实验数据的分析总结,系统基本功能满足要求,车间环境监测大屏效果如图5所示。
5 结束语
本文在工业互联网蓬勃发展的背景下,结合现代工业对工厂环境监测的要求,设计一种基于工业互联网平台的工厂环境监测系统,并搭建開发环境,完成原型系统的开发实现。文章讨论了系统的主要功能设计和整体架构,描述了传感器和工业互联网平台的部署方式和交互过程,实现了车间环境数据的实时监测和统一展示。系统支持多种通信协议接入,并具备良好的扩展性。下一步计划拓展平台的应用场景,完成多种协议设备的接入,并实现和其他云平台如中移动OneNet交互,研究告警推送、数据处理规则引擎配置等。