APP下载

基于LoRa和STM32的电梯监测系统设计

2022-05-18粱鉴如杨明来

传感器与微系统 2022年5期
关键词:接收端通信协议卡尔曼滤波

沈 正, 粱鉴如, 杨明来

(1.上海工程技术大学 电子电气工程学院,上海 201620; 2.上海应用技术大学 轨道交通学院,上海 201418)

0 引 言

随着城市的发展,人口的增加,高层建筑物越来越多,现在新的楼房都会安装电梯,并且现在也在针对老旧小区进行电梯的安装和改造。随着电梯数量的增加,远程获取电梯的运行状态很重要。目前,远程查看电梯的运行状态主要是在电梯内安装摄像头,在监控室查看摄像头来获取电梯所在的楼层和运动状态。这种方法需要人工去查找,效率低。并且对于旧电梯来说,改造成本很大。传统无线传输技术主要是WiFi[1],ZigBee,GPRS[2]。其中ZigBee和WiFi技术传输距离近,不适合在监控室远程查看情况。而GPRS技术虽然传输距离远,但是成本高,功耗大,在梯井深处信号较差。

本文设计了一种基于LoRa和STM32的电梯监测系统。不用使用电梯厂商提供的开发接口,具有成本低,安装简单,不需要复杂的布线的优点。可以实现远程查看电梯所处楼层及运动状态的优点。

1 系统整体结构

系统由每个轿厢组成的检测结点和数据接收端组成,每个电梯轿厢上方安装一个检测模块,每个结点将采集到的电梯数据按照约定好的数据格式通过LoRa芯片依次发送到数据接收端。数据接收端分析接收到的数据,在显示屏上显示轿厢所处的楼层和运动状态。

2 硬件设计

系统硬件设计分为数据采集端和数据接收端。数据采集端硬件结构如图1所示,该采集设备安装在电梯轿厢内,STM32主控制器与压强传感器[3]、三轴加速度模块、LoRa模块和电源模块适用不同的通信协议进行通信。压强传感器和三轴加速度传感器用来采集电梯运行中压强和加速度数据,LoRa是用来发送这些数据。接收端硬件结构如图2所示, LoRa[4]模块接收到数据后,通过STM32的串口将数据显示在电脑显示屏上。

图1 数据采集端硬件框图

图2 数据接收端硬件框图

2.1 主控制器模块

本系统选用STM32F103RCT6A单片机作为主控芯片,该芯片内置256 K FLASH,48K RAM及足够的外设模块。STM32最小系统包括晶振电路、电源电路和复位电路。

2.2 LoRa模块

LoRa是基于扩频调制技术的远距离无线传输技术,属于LPWAN(低功率广域网络)通信技术。本系统使用SX1278[5]射频芯片,与STM32通过SPI通信协议进行数据传输, 通过配置寄存器可以选择LORA扩频调制模式或者FSK模式。LoRa扩频调制的优点是传输距离远,在空旷条件下,最远传输距离可达到5 km。发送端和接收端需要配置相同的扩频因子(SF)、编码率(CR)、信号带宽(BW)。根据不同的使用情景,设置这些参数可以调节数据传输速率。符号速率(RS)计算公式为

Rs=BW/(2SF)

(1)

2.3 数据采集模块

2.3.1 压强采集模块

压强采集模块的核心是BMP085[6],与STM32通过I2C通信协议进行数据传输,在超低功耗和高分辨率模式下精度分别为0.06 hPa和0.02 hPa。传感器测得压强数据后,需要在程序中进行转化成高度H。压强与高度转换公式如下

H=44 300(1-(P/P0)(1/5.256))

(2)

式中P0为标准大气压,P0=101.325 kPa。

2.3.2 加速度采集模块

加速度采集模块的核心是MPU6050[7],与STM32通过I2C通信协议进行数据传输。可输出X,Y,Z轴的加速度,本系统需要配置寄存器测量范围为±2gn,此时精度是16384 LSB/gn,可以通过配置寄存器实现1 000 Hz 的采样频率。

3 算法与软件设计

3.1 卡尔曼滤波算法

3.1.1 卡尔曼滤波算法原理

卡尔曼滤波算法是用当前测量的数据对过去和当前的数据进行滤波,从而预测下一个采样时刻的数据[8]。一般形式卡尔曼滤波算法公式如下

X(k|k-1)=AX(k-1|k-1)

(3)

P(k|k-1)=AP(k-1|k-1)AT+Q(k)

(4)

X(k|k)=X(k|k-1)+

Kg(k)[Z(k)-HX(k|k-1)]

(5)

(6)

P(k|k)=[E-Kg(k)*H]*P(k|k-1)

(7)

式中A为状态转移矩阵,H为测量矩阵,X(k|k-1)为先验估计,P(k|k-1)为协方差矩阵预测,Kg(k)为卡尔曼增益矩阵,X(k|k)为卡尔曼增益修正后的观测值,P(k|k)为新的协方差矩阵。Q(k)为噪声矩阵。

3.1.2 建立卡尔曼滤波算法模型

建立卡尔曼滤波算法模型,需要把系统中的数据与公式中对应起来。系统中采样周期T、高度h(k)、速度v(k)、加速度a(k)关系

(8)

(9)

所以式(1)中转移矩阵

H为观测矩阵,用来把真实测量数据映射到观测空间中。由于测量值只有a(k),v(k),由式(10)可解得H

(10)

解得

协方差矩阵Q(k)为

因为加速度和压强两种噪声相互独立,所以,cov(h(k),a(k))=0,cov(a(k),a(k))=0。即

3.2 软件设计

3.2.1 通信协议制定

使用SX1278进行数据传输时,SX1278发送的数据会被同处于相同工作参数的设备接收,在本系统中存在多个LoRa节点,为了使数据的发送和接收过程变得有秩序。需要提供专门的通信协议。本系统利用MODBUS[9]协议进行修改。ModBus协议多应用于一主机多从机通信,通信模型如图3所示,数据帧结构如图4所示。

图3 MODBUS通信协议模型

图4 MODBUS数据帧结构

本文系统在MODBUS协议上进行修改,并且在数据包最前面增加了主机地址,即时无线网络发生重叠也不会使数据紊乱。自定义数据帧结构,图5为主机问询数据帧结构图,图6为从机响应数据帧结构图,表1为自定义功能码表。

图5 主机问询数据帧结构

图6 从机响应数据帧结构

表1 自定义功能码表

3.2.2 主程序设计

主程序设计分为主机的程序和从机的程序,从机端需要使用I2C总线读取压强传感器(BMP085)和加速度传感器(MPU6050)的数据,经过卡尔曼滤波算法数据融合后,将计算出来的楼层和加速度通过SX1278发送给主机,从机端程序流程图如图7(a)所示。主机需要使用SX1278发送指令给从机,要求从机发送数据,主机端程序流程图如图7(b)所示。

图7 从/主机端程序流程

3.3 实验结果

为了验证该设计的准确性,进入到小区的电梯中进行测试,了解到电梯每层楼间距为2.8 m,总计15层,首先测得一楼地面的大气压强为101 120 Pa,利用压强差求高度差。在随机楼层测试后,数据统计结果如表2所示。

表2 数据统计结果

根据测试可知,测量的高度误差在±40 cm范围内,效果满足系统要求。再对电梯运行状态进行测试,如表3所示。实验结果表明,根据加速度传感器可以准确测量出电梯的运行状态。

4 结束语

本文利用卡尔曼滤波算法对压强数据和加速度数据进行数据融合求得电梯高度,利用LoRa射频芯片进行无线数据传输,实现了远程检测电梯所处楼层和运行状态,测试效果良好。下一步将研究UWB[10]技术在电梯监测系统中的应用。

表3 电梯运行状态测试结果

猜你喜欢

接收端通信协议卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
基于无迹卡尔曼滤波的室内定位系统
基于光载波携能的制导武器无线携能通信研究
基于扰动观察法的光通信接收端优化策略
脉冲星方位误差估计的两步卡尔曼滤波算法
手机无线充电收发设计
卡尔曼滤波在雷达目标跟踪中的应用
卡尔曼滤波在雷达目标跟踪中的应用
奖状训练器飞行管理系统研究
基于盲波束形成的MIMO雷达稳健参数估计