前言:想要写出一篇引人入胜的文章?我们特意为您整理了物联网下建筑工地扬尘监测系统设计范文,希望能给你带来灵感和参考,敬请阅读。
摘要:针对建筑工地扬尘监测中存在监测面积广、网络布线难、监测环境恶劣且传感器易受干扰等问题,设计了一种基于LoRa的物联网(IoT)建筑施工现场扬尘监测系统,利用物联网的三层架构对数据进行采集、上传和处理,实现了对施工过程中扬尘情况实时监测并对异常情况进行报警的功能。同时运用卡尔曼滤波算法对节点数据进行处理,可以有效地减少环境噪声对传感器感知数据的干扰,显著地提高了数据采集的准确性和实时性。实验结果表明:设计的系统性能稳定、准确性和实时性高,可以满足对建筑工地扬尘监测的要求。
关键词:传感器;物联网;扬尘监测;卡尔曼滤波;LoRa网关
0引言
进入21世纪后,中国经济的快速发展使得城镇化的进程加快,我国的建筑工程量不断增长。建筑施工过程中造成的污染问题日益严峻,建筑工地扬尘污染的治理问题是大气污染防治的重要内容[1]。对施工现场扬尘的污染情况进行实时监测可以及时发现扬尘浓度的超标情况并通知相关部门进行治理。但传统的扬尘监测系统需要人工定点巡查,不仅采集范围小,准确性和实时性差,还浪费了大量的人力和物力[2]。随着嵌入式、物联网(InternetofThings,IoT)、无线传感技术的发展,建筑工地扬尘监测的智能在线监测方案越来越多。郭玉明采用C/S与B/S相结合的体系结构,设计了一种风沙天气下建筑施工的扬尘监测系统[3]。武风波等人设计了一种基于嵌入式的建筑工地环境监测系统,可以实现对建筑工地环境的实时监测[4]。陈雁冰等人设计一种基于低功耗无线传感网的工地扬尘监测系统,在实现了全面监控工地的同时还能控制微灌喷雾系统的开启[5]。上述研究虽然在局部范围内解决了建筑工地扬尘监测的问题,但不能同时解决建筑工地扬尘监测中存在的监测面积广、网络布线难、监测环境恶劣且传感器易受干扰等问题。因此,本文设计了基于物联网的建筑工地扬尘监测系统,以LoRa和以太网作为通信技术,解决了监测面积广、网络布线难等问题,同时使用卡尔曼滤波算法对数据采集节点的数据进行处理,可以有效地消除环境噪声对传感器感知数据的干扰,使得系统的准确性和实时性更高。
1系统方案设计
1.1总体架构设计
基于常见的物联网架构,设计系统的总体架构图如图1所示。
1.2感知层
作为物联网的神经末梢,感知层主要由传感器组成,用来采集PM2.5、PM10、温湿度、风力风向等扬尘监测中需要采集的重要参数,并对数据进行存储和预处理。
1.3传输层
作为物联网架构的神经传递介质,传输层由通信网络组成。LoRa技术的传输距离远、网络覆盖广、功耗低等优势使得其可以在交通监管、农业管维、城市建设、环境监测等多个物联网应用场景中使用[6]。因此,选用LoRa技术搭建本文中的扬尘监测系统。建筑工地扬尘监测终端通过自行搭建的LoRa网关与云端服务器进行通信,各个数据采集节点通过各自的LoRa模块将测量数据传输给LoRa网关,LoRa网关再将这些数据通过以太网模块传输至云服务器进行数据融合、分析和展示[7]。
1.4应用层
作为物联网架构的大脑,应用层面向相关的环境监管部门。应用层主要由数据库,Web平台、终端配置单元和数学运算模型等组成,其主要任务是对采集的数据进行智能分析处理并通知相关部门及时处理污染超标等情况。
2系统硬件设计
本系统采用模块化设计,硬件电路结构图主要由数据采集节点硬件结构图和LoRa网关硬件结构图组成。数据采集节点主要依靠微处理器进行数据处理,由于STM32具有高性能、低功耗、低成本的特点,本系统选用STM32F103C8T6作为数据采集节点的主控芯片。该芯片内核基于ARM32位的Cortex—M3CPU,具有休眠、停止、待机模式三种低功耗模式,主频为72MHz,程序储存器为64kB,SARM为20kB供电电压为2~3.6V。具有多种外设接口,如定时器、ADC、SPI、I2C和USART,具备串行线调试和JTAG接口。数据采集硬件结构图如图2所示。其中,电源模块的作用是将外部直流电源转换为适合主控芯片的电压进行供电;调试模块可以在对硬件设备调试时打印相关的调试信息;传感器通过RS—485接口将采集到的数据传输到采集终端;GPS模块通过UART接口与主控芯片进行通信从而实现定位功能;LoRa模块通过UART接口与主控芯片通信从而实现与LoRa网关的数据传输功能;OLED显示模块可以实时显示传感器采集到的数据;指示灯通过GPIO与中控芯片进行通信可以在数据异常时亮起报警。建筑工地扬尘监测系统中的LoRa网关不同于数据采集节点,其无需进行传感器的采集工作,但需要处理由各个采集节点传输上来的大量数据,所以,对网关的的内存和处理器有较高要求。本系统选用三星公司推出的S3C2440A开发板作为主控核心,它基于ARMv9系列的ARM920T核心,可以运行嵌入式Linux操作系统,主频为400MHz,搭配256MBNANDFlash和64MBSDRAM,并且配有SPI,GPIO,UART等接口,可以满足本系统对LoRa网关的需求。LoRa网关硬件结构图如图3所示。数据采集节点通过LoRa模块将数据传输到LoRa网关,LoRa网关将接收到的数据通过以太网模块传输到云端服务器。扬尘参数传感器作为数据采集终端的关键模块,主要由粉尘传感器、温湿度传感器和风速风向传感器组成。颗粒物浓度传感器选用抗干扰能力强、测量精度高、实时性强的RS—PM—NO1—2模块,该传感器采用独特的进气口设计,体积小巧,可以同时准确测量出PM2.5和PM10的浓度。温湿度传感器选用RS—WS—NO1—2—7模块,该传感器可以同时测量温度和湿度两个参数,温度测量精度为±0.3℃,测量范围-40~120℃,湿度测量精度为±2%RH,测量范围0%~100%RH。风速风向传感器采用测量精度高、量程范围广的RS—FS—NO1传感器,风速的测量精度为±(0.2+0.03V)m/s,测量范围为0~60m/s。GPS模块用来为监测数据提供位置属性,用于监测平台端对数据采集节点的定位。本系统选用的GPS模块为NEO—M8N,它具有灵敏度高、功耗低、性能卓越、功能全面等特点,其依靠NAME—0183协议获取施工地点的经纬度信息,通过UART串口与主控芯片进行通信,便于监管人员随时定位到发出异常数据的施工地点。LoRa模块选用亿佰特电子科技公司的E22—400T22S,该模块采用SX1268主芯片,最大发射功率22dBm,通信距离4000m,工作频率410~493MHz。该模块采用了全新一代的LoRa扩频技术,具有体积更小、速度更快、功耗更低、传输距离更远的特点。以太网模块选用W5500,该模块是WIZNET主推的高性价比以太网模块,集成了全硬件TCP/IP协议栈,支持休眠模式和网络唤醒,内部集成32K的TX/RX缓存。与传统软件协议栈不同,W5500内嵌的8个独立硬件Socket可以进行8路独立通信,支持高速标准4线SPI接口与主机进行通信,内部集成以太网数据链路层和10BaseT/100BaseTX以太网物理层,具有可靠性高、安全性好的显著优势。
3系统软件设计
数据采集节点软件采用C语言来进行开发,利用KEIL进行程序的编写、编译、调试和下载。同时为了对数据进行滤波处理,将FreeRTOS实时操作系统移植到该节点上进行多线程任务,保证数据处理算法的稳定运行。系统上电后,首先进行系统初始化和设备初始化,成功连接LoRa网关后进行数据采集。在采集过程中,STM32F103主控芯片以轮询方式进行数据采集并通过RS—485总线与扬尘传感器通信,固定采样周期设置为60s/次,按照传感器相应的数据规则完成电信号到扬尘数据信息的转换。当主控芯片接收到数据之后,对数据进行卡尔滤波算法以消除环境噪声对数据的影响,然后将处理后的数据打包上传至LoRa网关。LoRa网关软件通过在VmwareWorkstation上安装Ubuntu16.04虚拟机进行开发,网关与嵌入式Linux系统通过串口通信工具minicom进行通信,在Ubuntu系统中使用Sublimetext3进行程序编写,通过交叉编译工具链ARM-Linux-GCC生成。LoRa网关的主要作用是将各个数据采集节点采集到的数据进行储存和管理,再将这些数据上传到服务器。系统初始化之后,首先判断LoRa网关是否组成成功,成功后开始接收各个数据采集节点传输过来的数据,将数据在本地存储之后,通过以太网模块将数据上传到服务器。
4基于卡尔曼滤波的节点数据处理算法
由于建筑施工现场环境复杂,环境噪声使得传感器测量的数据存在误差,导致监测系统获得的数据无法准确反应出施工现场扬尘数据的真实情况。本系统采用卡尔曼滤波算法对节点收集到的数据进行滤波降噪处理,可以有效消除测量噪声和环境噪声对监测结果的影响,并且可以压缩数据传输量,避免了大量冗余数据的传输,提高了数据采集的准确性和实时性[8]。
4.1数学模型建立
卡尔曼滤波是一种通过线性系统状态方程对系统进行最优化估计的方法。其以最小均方误差为准则,利用现时刻的观测值和前一时刻的估计值来更新对状态变量的估计,得到现时刻的估计值[9~13]。在实际的扬尘监测系统中,监测数据可以看成是以离散时间为随机变量的线性状态方程,测量过程和系统状态都会收到环境噪声的影响。系统运行状态可以用n维空间的一个向量来表示,那么k时刻系统状态方程为X(k)=AX(k-1)+BU(k)+W(k)(1)传感器测量方程为Z(k)=HX(k)+V(k)(2)式中X(k),X(k-1)分别为k,k-1时刻的状态值;Z(k)为k时刻的测量值;U(k)为k时刻对系统的控制量;A为状态转移矩阵;B为噪声矩阵;H为测量矩阵;W(k)和V(k)分别为系统噪声和测量噪声,且两者均为均值为零的高斯白噪声。
4.2算法步骤
卡尔曼滤波过程是一个递归过程,每次递归都分为预测和修正两步执行。预测主要包括状态预测和协方差预测[11,13],而修正主要包括计算卡尔曼增益、状态更新和协方差更新。因此,卡尔曼滤波算法主要包括以下五个方面:1)状态预测;2)协方差预测;3)计算卡尔曼增益;4)状态更新;5)协方差更新。1)状态预测X(k|k-1)=AX(k-1|k-1)+BU(k)(3)式中X(k|k-1)为k时刻的估计值,其根据k-1时刻的最优估计值X(k-1|k-1)和k时刻的控制量U(k)(如果没有控制量,那么U(k)为0)得到。2)协方差预测P(k|k-1)=AP(k-1|k-1)A'+Q(4)式中A'为A的转置矩阵,Q为系统噪声的协方差,根据X(k-1|k-1)的协方差P(k-1|k-1)得到X(k|k-1)的协方差P(k|k-1)。3)计算卡尔曼增益Kg(k)=P(k|k-1)H'[HP((k|k-1))H'+R](5)式中Kg(k)为卡尔曼增益,R为测量噪声对应的协方差,根据P(k|k-1)和测量噪声协方差R,计算得到卡尔曼增益Kg(k)。4)状态更新X(k|k)=X(k|k-1)+Kg(k)[Z(k)-HX(k|k-1)]根据测量值Z(k)修正k时刻的估计值X(k|k-1),得到k时刻的最优估计值X(k|k)。5)协方差更新P(k|k)=[I-Kg(k)H]P(k|k-1)(7)式中I为单位矩阵。
5系统整体测试
5.1数据准确性测试
为了测试监测系统监测数据的准确性,将扬尘监测系统放置于环保局环境监测站附处,对数据精度要求较高的PM2.5和PM10两项数据进行监测。监测时间为上午9点至下午5点,连续监测8h,将监测数据转换为所测时间段整点对应的小时平均数据并与监测站点发布的小时平均数据进行对比,对比图如图4所示。由图4实验数据比对图可知,监测系统连续运行7h,通过数据的走势可以直观地看到本系统采集的数据与监测站发布的数据基本一致,且经计算PM2.5和PM10的平均误差均在2%内。试验结果表明,本系统所采集到的扬尘数据的准确性较高,可满足扬尘监测的实际需求。
5.2实时性测试
通信时延会影响各节点间的信息传输,实验中终端的时延是指一条完整的数据从读取到完整发送至服务器间的时间间隔[14]。从监测终端发出数据的时刻算起,到客户端接收到数据为止,通过标记的时间戳,可以计算得到系统的响应时间。连续做1h的数据传输实验,共测试60组数据,终端发送数据时刻、客户端接收数据时刻以及时间差如表1所示。测试的60组数据中,响应时间差最大为46ms,最小为28ms,响应平均时间差为36.6ms。测试结果表明,监测系统的实时性较高,可以满足扬尘监测的实际需求。
6结论
建筑施工工地扬尘的污染情况对人类的身体健康和城市的空气质量有着显著的影响。本文设计的基于物联网的建筑工地扬尘监测系统,以LoRa和以太网作为通信技术,结合卡尔曼滤波算法对采集节点的数据进行处理,实现了对扬尘数据的采集、传输和处理。实际测试结果表明系统稳定性好,准确性和实时性高。本系统可以提高相关部门的监管效率,具有一定的实用价值。
作者:丁承君 胡博 刘云帆 贾丽臻 单位:河北工业大学机械工程学院 中国民航大学航空工程学院