基于MQTT技术的智慧工地喷淋控制系统的设计
作者: 唐咏 祝骅
关键词:智慧工地;喷淋系统;MQTT
1 背景
当前,我国城镇化速度不断加快,移动互联网、物联网、AI、BIM、监控模拟等新兴技术在城市级的应用,已经从技术层面转向运营管理,在这样的背景下,各行各业开始转型升级,运用科学技术进行数字化赋能。在建筑施工领域,智慧工地应运而生[1]。2020年5月6日,江苏省住房和城乡建设厅发布《关于推进智慧工地建设的指导意见》(苏建质安〔2020〕76号文),提出了“采集、集成和应用散落在项目、企业、政府等各个层级的建筑施工海量数据,利用互联网、物联网、大数据分析等技术助力建筑产业的数字化、信息化变革,驱动产业转型升级,建设形成涵盖现场应用、集成监管、决策分析、数据中心和行业监管等五个方面内容的智慧工地。”的要求[2]。
在建筑工程领域,在土方开挖、地下室、主体结构以及装饰装修等施工阶段均会产生不同程度的施工扬尘污染,如何合理监测并控制施工扬尘既是施工企业的本职工作,也是社会民众关注的焦点[3]。工地扬尘是城市空气污染的主要来源之一,物联网技术为智慧工地的扬尘控制提供了有力工具,利用物联网技术,可以对建筑工地内部及周边环境的扬尘数据进行检测,通过大数据分析,制定抑制策略。根据河海大学公共管理学院施嘉怡的研究,在南京市8个工地进行调研,在11项抑制扬尘的措施中,利用物联网技术实现智能监控、自动喷淋控制的措施,抑制扬尘效果最好[4]。
2 控制要求
喷淋设备是工地现场抑制扬尘的主要手段,主要包括雾炮机、围挡喷淋和塔吊喷淋。根据各地政策法规,对喷淋开启和关闭有不同的要求,有的按时间段,有的根据周围环境数据。传统的喷淋控制是专人每天按时开启和关闭,通常是保安、值班员等。由于基本职业素养有限,要完全按照要求执行到位很难保障。后面出现了一种给电磁阀加装PLC,通过定时来开关的方案。但这种方案增加成本较多,且要修改开关策略相当麻烦,普通的工地电工无法胜任。因此提出了一种设计一种低成本的、无源的、能够方便修改喷淋策略的喷淋控制器的需求。
经过前期的预研,已经选定了采用LTE Cat.1和LoRa 技术组建物联网系统,通过Spring Boot 框架和Vue.js框架架设云平台,系统结构如图1所示。
3 系统结构
本控制系统由云端平台、客户端、LoRa网关、喷淋控制器及软件设计构成,如图2所示。
3.1 云端平台
云端平台做大的优势是可以让用户通过网页直接进行数据的读取和边缘计算。用户在平台完成数据的可视化、数据分析、数据管理及动作触发等工作。数据可视化界面也可以生成互联网的地址,通过链接进入云端画面,可以实现实时查看数据的功能。也可以提供手机App供用户随时随地查看工地环境数据,能让用户及时甚至提前做出判断。
其中云服务器可以采购阿里云、腾讯云等的服务器,在其中部署MQTT服务器和数据库服务器,并且运行定时程序。本系统选用的是阿里云,阿里云是面向物联网技术设计的开放式云平台,理论上可以适配多种通信协议,本设计采用的是MQTT协议。阿里云物联网平台可以设计组态界面,使得扬尘控制系统更加可视化。本系统中数据库服务器选用的是MySQLv8.0.31;MQTT 服务器选用基于MQTT5.0 的EMQXv5.0.26;定时程序用C#语言开发,根据数据库的设定在相应的时间向MQTT服务器发送打开或者关闭某工地的某个喷淋设备的消息。
客户端程序是基于WPF框架开发的一个应用,用户基于自身权限设定各工地喷淋控制器的启停策略。客户端可以运行在任何互联网环境的终端上。
3.2 LoRa 网关
网关主要负责收集扬尘传感器信息,向喷淋控制器发送信息,以及与云平台进行数据交换。LoRa网关是一个结合了LoRa模块的PC,也可以是嵌入式系统。LoRa 技术通信覆盖距离达30km、传输速率可达100bps、性价比高,可以满足工地扬尘系统的长距离信息的传输与控制。利用LoRa技术构建的无线传感网络包含了数据采集节点(为终端节点)和汇聚节点两部分。数据采集节点实现扬尘传感器多点的监测,汇聚节点接收所有数据采集节点的数据。本系统成本低,布局方便,适合工地恶劣的工作环境,运行稳定可靠。
数据采集节点由STM32微控制器、扬尘传感器和Cat.1组成。三者之间采用串口方式进行通信。汇聚节点初始化完成之后构建MQTT链接包,将数据采集节点连接到云平台的云端设备。云端设备对数据进行解析、显示和保存,并在异常时及时报警。所有节点采用干电池供电,无须另外布线,设备部署过程简单方便。
另外,在网关上运行MQTT客户端软件,监听云服务器发来的消息,解析消息来向喷淋控制器发送控制信号。LoRa网关结构如图3所示。
3.3 扬尘传感器
本设计采用扬尘传感器如图4所示。该传感器具有牢固稳定的金属结构,基于光学散射原理,搭载工业级长寿命线性激光器;能满足室外环境-30~70℃温度要求;采用泵吸式采样方式,气流稳定,安全可靠;检测量程为0~1000μg/m³可以实现颗粒物PM1.0、PM2.5、PM10、TSP质量浓度的准确输出;工作电流小于150mA。同时,兼容模拟信号输出与串口输出,可根据自身需求进行标定。
3.4 喷淋控制器
喷淋控制器主要负责接收网关信号,驱动水泵或者电磁阀进行喷淋除尘。淋控制器是一个自带电源的LoRa电磁阀,无须布线,方便安装。以STM32单片机为核心,配置LoRa模块、继电器控制电路。电源部分采用大容量锂电池,配置充放电电路,可以实现充电一次3个月以上的使用要求,非常适合塔吊这种不易布线的场合。
喷淋控制器由电源系统、通信控制系统、电磁阀构成,如图5所示。电源系统采用12V锂电池组给电磁阀供电、大容量18650电池组给通信控制系统供电,满足单次充电3个月运行的要求。通信控制系统选用STM32F103C8T6位MCU核心,选用泽耀科技A39CT400A22S1a的LoRa模块,配合继电器控制电磁阀的通断。外壳采用IP68的通用防水盒设计。
3.5 监控系统设计
基于LTE Cat.1和LoRa工地喷淋控制系统的设计当中,软件部分主要包括了数据采集、传输及显示,软件系统示意图如图6所示。
数据采集节点程序主要是扬尘数据的采集和处理。数据汇聚节点主要是云组态画面的设计,以及数据显示及报警。
4 MQTT 通信
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),是一种基于发布/订阅(publish/sub⁃scribe) 模式的“轻量级”通信协议,如图7所示。可以用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通信协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。基于这些特点,MQTT技术可以很好地符合建筑工地网络环境较差、通信数据量小、硬件性能需求不大的应用场景。
4.1 MQTT 服务器选型
MQTT应用包含服务器和客户端,其中MQTT服务器仅仅负责消息的转发,部署完成即可,采取默认设置,不需要做任何开发。本系统选用基于MQTT5.0 的EMQX v5.0.26 for Windows。
4.2 MQTT 客户端开发
MQTT本身仅仅是一种消息转发机制,业务逻辑主要由各个MQTT客户端实现,本系统需要开发两个MQTT客户端应用。一是运行在云服务器端的定时程序,该程序定时查询数据库,发现需要对某喷淋设备进行操作时,向MQTT服务器发送相应消息,MQTT服务器会将该消息转发至需要操作的设备相关的网关。二是网关软件,该软件运行在工地现场的设备,本系统采用的是Windows10系统的PC机,配备LoRa模块,根据实际情况也可以是成本更低的嵌入式系统。网关软件主要接收已订阅的和本工地相关的MQTT消息,解析消息内容来对喷淋设备进行控制。上述两个软件都采用C#语言,基于.net Core 6.0框架开发[5]。
4.3 MQTT 消息的设计
本系统主要通过消息驱动实现业务逻辑,MQTT 消息内容包含主题(Topic) 和负载(Load) 。本系统采用工地名称作为主题,各个网关仅订阅跟自身工地相关的消息,不会收到其他工地的消息。消息负载采用JSON格式,内容包括需要控制的喷淋阀的ID,具体动作等。
5 总结与改进
本文设计了一套基于MQTT技术的智慧工地喷淋控制系统,用户可以在互联网上任意设定工地喷淋系统的开关策略,相对于传统的人工控制更稳定可靠,节约人力。而且本系统具有相当好的扩展性,只需根据要求引入新的业务逻辑可以轻松完成控制其他设备的要求。比如同样的逻辑可以控制雾炮机的启停,以及接入扬尘检测设备可以实现喷淋-扬尘联动等。本设计实现了工地扬尘信息远距离传输和监控的功能,并且系统功耗比较低。解决了传统扬尘监测系统布线复杂、传输距离短、智能化程度低等问题。系统结合了比较成熟的云平台,简化了设计开发过程,降低了开发成本。物联网的普及也使得数据监控更加灵活。
本系统的喷淋控制器,受到了无源设计要求的限制。如果可以采用有源设计,可以大大简化电源部分,减少体积巨大的电池组,整体体积进一步优化,且可以不受使用时间的限制。