APP下载

基于物联云平台的桥梁倾角监测系统

2024-01-05林伟浩蔡宇洋赖联有许伟坚秦德兴

关键词:开发板阿里倾角

林伟浩,蔡宇洋 ,赖联有,许伟坚,秦德兴

(1.中国移动通信集团广东有限公司汕头分公司,广东 汕头 515041;2.集美大学海洋信息工程学院,福建 厦门 361021)

0 引言

实时监控桥梁安全性能是现代桥梁工程不可缺少的一部分[1]。桥梁倾角监测系统已呈智能化、自动化、信息化的趋势[2]。现阶段,已经能够实现桥梁全生命周期检测,掌握桥梁全生命状态;同时也有用AI技术预测桥梁结构未来时间段的发展。

ESP32-C3-DevKitM-1[3]开发板是适合用于物联网[4]基础通信的开发板,具有感知性强,实施远程传送和智能处理的特点。其搭载有ESP32-C3-MINI-1模组,该模组因其尺寸小而得名[5]。该开发板上集成了2.4 GHz Wi-Fi和蓝牙功能于一体的芯片[6],配网的难度显著降低。ESP32系列开发板的工作温度范围在-40~125 ℃之间[7-9],可以满足在极端恶劣气候下对桥梁倾角的数据传送,当数据超过一定阈值时,用户可在移动端收到报警信号,实现远距离的实时监测。

ADXL345[10-13]三轴线性加速度传感器具有体积小功耗低的特点,分辨率精度高,加速度测量范围达到了±16g。工作电压范围为3.3~6 V,工作温度范围为-40~105 ℃,能适应绝大多数气候条件下的桥梁倾角监测。ADXL345采用16位信号输出,可以通过SPI和IIC接口进行数据采集和调用。ADXL345传感器还具有多种特殊功能:1)在系统动态或静态时检测是否有运动或者静止状态的出现;2)当系统处于上升或是下降状态时,可以对系统是否处于自由落体状态进行判断;3)可以感知单轴上的加速度值是否超过开发人员设定的阈值;4)可以检测外界对系统的碰撞次数,例如单击、双击;5)可在ADXL345的低功耗模式下通过ADXL345的动作感应,进行电源的管理,而功耗损失极低。

传感器为一个表面经过微加工的多晶硅结构,可以感知微小的加速度变化。ADXL345上的差分电容由独立固定板和活动质量连接板组成,能够对结构的偏转量进行测量。ADLX345传感器自带相敏解调,可以确定加速度的幅度与极性。

为改善传统桥梁监测技术在时间和空间上的灵活性,本文拟采用ADXL345传感器和ESP32C3物联网芯片[14],开发桥梁倾角的远程监测系统,通过阿里云物联网平台将桥梁倾角数据实时发送到手机客户端,使居家也能实时观测桥梁倾角数据,可随时随地开展科研工作,具备成本低测量方便的优点。

1 系统架构

基于阿里云物联网平台的桥梁监测系统主要包括:ESP32C3物联网芯片,ADXL345三轴线性加速度传感器,阿里云物联网平台,以及应用服务器、终端用户四个部分。

对ESP32开发板基本功能进行编程和调试,通过IIC协议接收ADXL345传感器测得的倾斜角度,使ESP32C3开发板能够与阿里云物联网平台进行桥梁倾角实测数据的通信。手机小程序端通过微信开发者工具进行MQTT(messege queuing telemetry transport)连接参数的配置和JSON格式转换,终端用户能够与ESP32C3互相发布消息和订阅消息。

图1为系统设计流程图。此次系统设计的思路如下:1)实现ESP32C3开发板接收ADXL345三轴线性加速度传感器采集的数据,并转换成加速度;2)ESP32C3物联网芯片能够与阿里云物联网平台互通,实现数据的实时传送;3)在阿里云物联网平台上配置云产品流转和SQL,获取ESP32C3上传到云端的由ADXL345传感器采集到的数据;4)实现微信小程序对云端数据的读取。监测人员可通过互联网设备的软件应用或是微信小程序界面,远程监控桥梁的倾角数据。

2 桥梁倾角监测系统设计

2.1 阿里云端配置与调试

设备通过MQTT协议与物联网平台建立长连接[15],上报数据(通过Publish发布Topic和Payload)到物联网平台。通过AMQP消费组,将设备消息流转到业务服务器上。通过物联网平台的云产品流转功能,处理设备上报数据,如将处理后的数据转发到云数据库RDS、表格存储、函数计算、时间序列数据库TSDB、云原生多模数据库Lindorm、DataHub、消息队列RocketMQ等云产品中,进行存储和处理。通过业务应用下发指令,使业务服务器调用基于HTTPS协议的API接口Pub,给Topic发送指令,将数据发送到物联网平台。物联网平台通过MQTT协议,使用Publish发送数据(指定Topic和Payload)到设备端。

在阿里云上配置的主要内容是一个产品和其下的两个设备。产品也被称作设备的集合,之后相关的设备都建立在这个产品下,且从属于这个产品。为了能够在对多个产品开发和维护的同时对产品进行管理,在创建产品时可以根据每一个产品的不同功能,自定义产品的名称。可以通过这个特性对开发的多个产品进行切换和选择,使设备配网和监测数据更加便捷有效,也可以通过添加设备模块方式创建设备。

成功创建好产品和设备后,阿里云端会自动生成产品证书ProductSeceret和设备密钥ProductKey。这两个通常以成对方式出现,用于一型一密的认证方案。通过设备密钥和产品证书,可以对设备进行前端开发,实现设备与阿里云物联网平台通信。

阿里云物联网平台消息的发布与订阅采用MQTT协议,通过云端连接方式,设备可以选择是订阅消息或者是发布消息。设备的配网离不开MQTT连接参数,MQTT连接参数包含ClientID、Username、Passwd、MQTTHostUrl和Port。ClientID是可供自定义的参数,表示的是客户端的ID,每一个客户端的ClientID都不能混用,多个设备接入同一个ClientID,会把先前的设备弹出,仅保留最后一个,被弹出的设备需要等候已经连接的设备下线后才能再次进行连接上线。Username由设备名和产品名组成,具有固定格式:${DeviceName}&${ProductKey}。Passwd是参数和参数值在拼接之后形成的密码。MQTTHostUrl则是其Brokeraddress的值。Port是固定的端口号,为1883。设定好这些连接参数,便可以通过mqtt.fx对设备连接进行模拟测试。在测试过程中,可以在没有硬件的同时对硬件设备的消息订阅和发布进行模拟通信。

2.2 监测终端硬件设计

桥梁倾角监测系统的硬件部分主要采用乐鑫公司研发的ESP32-C3-DevKitM-1开发板,使用ADXL345传感器测量在水平面和垂直方向上的加速度。

2.2.1 ESP32物联网芯片

ESP32开发板上的主要组件,有ESP32C3-MINI-1模组、5V转3V LDO、5V的电源提示灯、Boot功能按键、Micro USB接口、Reset复位按键、RGB LED、USB至UART桥接器。

ESP32-C3-DevKitM-1有30个引脚,每一个引脚都有独立的排针,可以通过跳线将传感器或其他外围设备与开发板连接起来。开发板集成了22个GPIO引脚、3组SPI、2组UART,支持IIC协议。ESP32-C3-DevKitM-1有三种供电方式,可以通过USB接口进行供电。ESP32-C3-DevKitM-1开发板的功能丰富,能够模拟生活中常出现的物联网场景,在算力性能、启动速度、稳定性和耐久度方面基本满足现代物联网智能交通安全的开发和检测。通过接入外围设备,在一块ESP32-C3-DevKitM-1开发板上可以同时控制开关,接入不同的安全检测传感器。能通过云平台实现与实验设备的相互通信,实现远程控制。ESP32的开发不止停留在云平台,还可以在手机上接收到ESP32端测得的有关数据。

2.2.2 ADXL345传感器

ADXL345传感器IIC的SDA接到了ESP32C3开发板的GPIO2,IIC的SCL接到了GPIO3引脚。ADXL345的电源VCC与ESP32C3的3.3 V引脚相连,ADXL345的GND连接ESP32C3的GND。

ADXL345传感器可以自动地对功耗进行调节,其功耗与输出数据速率具有一定的比例关系。ADXL345具有典型功耗模式、低功耗模式、自动休眠模式和待机模式四种状态。ADXL345传感器在省电模式下,传感器内部的采样速率降低,可以在12.5~400 Hz数据速率范围内达到省电的目的。通过对比发现,低功耗模式下的功耗会比正常状态下的功耗显著降低。当检测到ADXL345传感器处于静止状态时,会自动切换到休眠模式,减少电量的损失。开启休眠模式,可在THRESH_INACT寄存器和TIME_INACT寄存器设置一个值表示静止,这个值可以根据系统的要求进行设定。

桥梁倾角检测系统的设计使用ADXL345的IIC模式传输数据,其连接方式简单,只需要把ADXL345的SDA和SCL引脚通过条线连接到ESP32对应的GPIO引脚。此模式下ADXL345的数据传输由SCL控制,SCL控制着SDA的时钟使能,当只有SCL为高电平时,数据才会根据SDA引脚的状态进行传输。当SDA的电平由高向低转变时,ADXL345传感器会开始把数据传输到ESP32;当SDA的电平由低向高转变时,ADXL3445传感器将会结束数据的传输。

2.2.3 ESP32开发环境

桥梁倾角系统采用VSCODE作为开发平台。搭建环境需要下载ESP-IDF和ESP-IDF工具,二者共同提供了开发所需要的整包源码。ESP-IDF的安装包可以选择离线包也可选择在线包,离线状态的安装包更加方便,可以一次就下载完。在下载ESP-IDF工具时,会捆绑下载内置的Python、交叉编译器、OpenOCD、CMake和Ninjia编译工具。在安装成功后,将会分别出现一个ESP-IDF的PowerShell和CMD。

2.3 监测终端软件设计

2.3.1 阿里物联云固件编程

配置阿里云连接参数,使固件能够成功连接阿里云物联网平台。在程序的开头可以通过宏定义的方式对硬件的连接参数进行配置。需要定义的连接参数有:host、port、client_id、username和password。以host为例进行定义的示例,其格式为:#define Aliyun_host“iot-06z00bzwg4b91ey.mqtt.iothub.aliyuncs.com”。其他的参数只需将引号内的参数改为在MQTT连接参数中获得的参数。

设置一个处理连接中各种事件发生的函数,命名为mqtt_event_handler_cb,采用switch结构应对不同事件发生的情况。事件结构中event_id为事件序号,event_data为收到的报文的数据,event_topic为报文的主题。想要处理对应的事件,就在对应的事件下设置函数。

需要发送的数据格式为JSON,为了将数据转换为JSON格式再发送,用C语言中“cJSON.h”来进行。

2.3.2 ADXL345传感器程序设计

ADXL345传感器通过IIC方式与ESP32C3进行通信,只需要控制时钟信号和数据使能信号就可以对数据进行传输。对IIC方式进行头文件的定义,配置引脚号。程序开始之初,需要对ADXL345传感器初始化的寄存器地址进行配置和宏定义。允许ADXL345的GPIO引脚输出,使ADXL345的DRDY引脚有效,且设置数据为输入有效模式。设置ESP32C3串口波特率为115 200 Hz。ADXL345传感器需要一个寄存器来存储数据,用esp_err_t ret来判断程序是否成功运行。ADXL345传感器的采样率为200 Hz,数据模式为四线SPI模式,关闭ADXL345的自测功能,使高电平终端全分辨率有效数字达13位,输出数据左右对齐,量程设置为±16g,将读取的数据转换成倾斜角度。ADXL345接收到的数据与重力加速度具有一定的换算关系[19-20]。

ADXL345传感器可用于测量物体在X、Y、Z三轴的加速度,分别对空间中X、Y、Z三轴的受力大小进行分析,转换为三个方向上的加速度。当物体处于一个相对稳定的状态,即物体加速度可忽略时,可以通过X、Y、Z三轴的线性加速度得出物体的倾斜角度。记采集的三轴数据分别为X、Y、Z,加速度为ax、ay、az。

ADXL345传感器的数据格式默认为16位。数据最低有效位(least signification bit,LSB)与重力加速度的换算关系为1 LSB=0.039g,有专门的存储空间对每一个轴的数据进行存储。高4位为符号位,余下的12位为数据位。

通常情况下,Z轴由于受重力加速度的影响有一定的偏移数值,因此在借助Z轴对倾斜角度进行计算时,需要对Z轴设置一个偏移量,抵消因自然加速度带来的影响。

表 1 在水平桌面测试得到的三轴角度值Tab.1 horizontal angle value obtained from testXYZ0.032°0.205°89.793°0.021°0.190°89.809°0.021°0.198°89.801°0.036°0.199°89.798°0.024°0.203°89.796°0.017°0.195°89.804°0.033°0.200°89.797°0.026°0.200°80.798°0.030°0.192°89.906°

将程序下载到ESP32C3开发板中,将ADXL345传感器放置于水平桌面上。表1为电脑监视终端得到的9组数据,可以发现,其精度能够满足对物体的倾斜角度进行监测。表1中的数据以水平桌面作倾角参照平面,Z轴为竖直方向与水平桌面的偏转角度,X轴与Y轴为水平方向上的偏转角度。

虽然在代码中对数据采样率的设置为200 Hz,而实际测试过程中,由于阿里云端对消息接收请求不能太过频繁,以及网络传输的不稳定,倾斜角度的测量并不能达到实际的200次/s。经过多次计时计算和验证,以固定时长5 s为例,测得的数据样本个数为260组,即每秒钟有52组数据,总计每秒有156个数据。

2.3.3 系统的测试方法

该系统在测量时需要先连接手机热点,在VSCODE平台上对ESP32C3开发板的网络连接进行配置,使其能够连接手机设置的移动热点,以确保数据能够通过物联云平台发送和接收。在测试时可以通过移动ADXL345传感器得到不同方向上的偏转角度值。在测量精度方面,需要先与实际值做对比,再在程序上增加偏置值。

3 系统调试

3.1 阿里物联云调试

根据设备的要求对阿里云物联网平台上的模拟设备进行配置。在测试时,可借助MQTT调试工具。打开MQTT调试工具,将MQTT调试工具接入产品的连接参数,对设备的在线状态和消息的发布与订阅进行模拟。检验设备是否成功连接阿里云物联网平台,一旦成功连接后,阿里物联云平台设备管理中的设备会显示在线状态,MQTT调试工具右上角的圆点会由红色变成绿色。

3.2 硬件端与阿里云端通信调试

通过配置MQTT连接参数,实现阿里云物联网平台与硬件设备通信。成功连接后,在阿里云端监控运维的日志服务下可以接收到ESP32C3发布的消息,云端会先收到ESP32C3发布的“mqtt connect ok”,然后接收到“mqtt subscribe successful”消息。

3.3 客户端与阿里云端通信调试

通过对MQTT连接参数进行配置,将MQTT上得到的三元组用于连接。在物联网平台检测客户端的在线状态。成功连接后,客户端数据接收和发送需要使用JSON格式。

3.4 实验原型系统

图2为实验原型系统。用面包板模拟桥梁平面,ESP32C3模块需要对网络进行配置。连接手机移动热点,使用Wi-Fi作为ESP32C3的网络。系统可以通过物联云将数据传递到手机小程序上。ADXL345传感器与ESP32C3模块通过IIC方式通信。配置好ESP32C3的MQTT连接参数,若ESP32C3接上Wi-Fi,会自动连接阿里物联云平台。转动硬件设备,可在小程序上得到设备的倾斜角度。

该实验原型对本文提出的桥梁倾斜度监测方法进行验证,验证结果证明了该方案具有可行性。

4 结论

本文提出一种基于阿里物联云平台的桥梁倾角监测系统,用来监测桥梁倾角数据。从实验结果来看:本设计同人工桥梁倾角监测相比具有较好的灵活性;系统性能稳定,具有在恶劣环境下工作的能力;系统的消息发布与订阅通过阿里云物联网平台进行传输;用户能够在微信小程序上,实时读取倾斜角度数据,这意味着当桥面发生振动时可以第一时间采取措施减小桥面抖动。本系统操作简单、便携性好,可远程监测桥梁倾角数据,方便更多终端客户对桥梁倾角变化进行监测和研究。该系统在未来的工作中会被继续优化,运用到实际工作场景中。

猜你喜欢

开发板阿里倾角
地球轴倾角的改斜归正
激光倾角仪在CT引导下经皮肺穿刺活检中的应用
车轮外倾角和前束角匹配研究
云上阿里
辰辰带你游阿里
Microchip最新推出两款PIC32 Curiosity开发板
浅析单片机开发板的设计与制作
阿里战略
阿里是个好榜样
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板