儲(chǔ) 光,余 堯
(淮南職業(yè)技術(shù)學(xué)院, 安徽 淮南 232001)
我國(guó)橋梁建設(shè)已經(jīng)進(jìn)入了快速發(fā)展階段,然而由于各種荷載的反復(fù)作用、材料的疲勞與腐蝕,以及洪水、海嘯、地震、颶風(fēng)等自然因素破壞,使得橋梁的安全性能逐漸降低并且影響其繼續(xù)服役。橋梁在使用過(guò)程中,需對(duì)橋梁的健康狀況進(jìn)行實(shí)時(shí)監(jiān)測(cè)。騰訊云是一種云計(jì)算技術(shù),將騰訊云技術(shù)應(yīng)用于橋梁健康監(jiān)控可以實(shí)現(xiàn)橋梁的實(shí)時(shí)監(jiān)測(cè)、評(píng)估和預(yù)警,對(duì)于突發(fā)事件提前預(yù)警能夠有效避免事故發(fā)生。此外,騰訊云橋梁健康監(jiān)控系統(tǒng)還可以對(duì)橋梁結(jié)構(gòu)進(jìn)行長(zhǎng)期監(jiān)測(cè),實(shí)現(xiàn)對(duì)橋梁的全面管理和維護(hù)。以STM32單片機(jī)為控制核心,結(jié)合傳感器技術(shù)和騰訊云設(shè)計(jì)了一套橋梁健康狀態(tài)監(jiān)測(cè)系統(tǒng),利用騰訊云的大數(shù)據(jù)處理能力和多樣化通信協(xié)議,可以高效實(shí)現(xiàn)橋梁健康監(jiān)測(cè)系統(tǒng)的實(shí)時(shí)響應(yīng)能力。
系統(tǒng)以互聯(lián)網(wǎng)為橋梁,以STM32單片機(jī)為控制核心,基于騰訊云服務(wù)器,既實(shí)現(xiàn)了橋梁就地控制,也可實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)集控功能。系統(tǒng)組成主要分為以下部分及功能,云服務(wù)器部分,負(fù)責(zé)遠(yuǎn)程數(shù)據(jù)解析和轉(zhuǎn)發(fā)。上位機(jī)管理系統(tǒng)、安全監(jiān)控中心系統(tǒng),用于職能部門(mén)管理。簡(jiǎn)易三維模型系統(tǒng),用于職能部門(mén)監(jiān)控和管理。視頻流服務(wù)部分,提供職能部門(mén)監(jiān)控和管理。本地?cái)?shù)據(jù)采集系統(tǒng),負(fù)責(zé)數(shù)據(jù)采集、上傳和動(dòng)態(tài)自動(dòng)管理。本地語(yǔ)音播報(bào)系統(tǒng),實(shí)現(xiàn)實(shí)時(shí)語(yǔ)音播報(bào)。本地OLED屏顯示,實(shí)現(xiàn)現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)顯示。本地視頻采集系統(tǒng),負(fù)責(zé)采集實(shí)時(shí)視頻。系統(tǒng)運(yùn)行后,主要實(shí)現(xiàn)以下功能:橋梁實(shí)時(shí)安全監(jiān)測(cè),并實(shí)現(xiàn)了動(dòng)態(tài)實(shí)時(shí)調(diào)控,當(dāng)橋梁兩側(cè)承重不平衡時(shí),系統(tǒng)自動(dòng)啟動(dòng)關(guān)閉相應(yīng)車道,直到兩側(cè)平衡在安全的范圍內(nèi)。當(dāng)橋梁承重超過(guò)了總承重的設(shè)計(jì)要求時(shí),啟動(dòng)關(guān)閉車道,確保安全。當(dāng)橋面橫風(fēng)風(fēng)力超過(guò)安全值時(shí),系統(tǒng)啟動(dòng)車流管理,并語(yǔ)音提示及播報(bào)。通過(guò)騰訊云服務(wù)器,實(shí)現(xiàn)了遠(yuǎn)程互聯(lián)網(wǎng)組網(wǎng)管理。系統(tǒng)拓?fù)鋱D如圖1所示。

圖1 系統(tǒng)拓?fù)鋱D
系統(tǒng)采用Stm32f103zet6單片機(jī)開(kāi)發(fā)板,利用RS485協(xié)議采集4路拉力傳感器實(shí)時(shí)數(shù)據(jù),同時(shí)設(shè)置1路警報(bào)器,負(fù)責(zé)報(bào)警,配合風(fēng)速、風(fēng)向傳感器采集,語(yǔ)音驅(qū)動(dòng)播報(bào)系統(tǒng),最后通過(guò)騰訊云上傳和儲(chǔ)存數(shù)據(jù)。Stm32部分硬件如圖2、圖3所示,監(jiān)測(cè)平臺(tái)的硬件構(gòu)架圖如圖4所示。平臺(tái)設(shè)計(jì)搭建主要所使用的四個(gè)傳感器模塊分別為:拉力傳感器、溫度傳感器、風(fēng)速風(fēng)向傳感器以及語(yǔ)音模塊。第一,拉力傳感器,型號(hào)HX711,系統(tǒng)四塊拉力傳感器用于監(jiān)測(cè)橋的穩(wěn)定性,傳感器分布在橋梁牽引繩對(duì)稱位置,對(duì)橋梁進(jìn)行拉力檢測(cè)并實(shí)時(shí)傳輸數(shù)據(jù)給接收模塊。第二,使用PL2108G配合pt100搭建溫度傳感器檢測(cè)和顯示模塊,對(duì)橋梁四周的溫度進(jìn)行檢測(cè),并顯示實(shí)時(shí)數(shù)值。第三,風(fēng)速、風(fēng)向傳感器,型號(hào)NHFSX48,主要檢測(cè)橫風(fēng)、臺(tái)風(fēng)對(duì)橋體的影響,并把實(shí)時(shí)數(shù)據(jù)傳送到單片機(jī)中進(jìn)行數(shù)據(jù)轉(zhuǎn)換。第四,語(yǔ)音模塊,當(dāng)橋體受到橫風(fēng)影響或者橋體兩側(cè)拉力不平衡時(shí)進(jìn)行語(yǔ)音播報(bào)。

圖2 Stm32的RS485硬件電路圖

圖3 Stm32的電源硬件電路圖

圖4 硬件構(gòu)架圖
系統(tǒng)主程序主要包括系統(tǒng)初始化程序(I/O口初始化,就地液晶屏初始化),傳感器數(shù)據(jù)采集及處理程序(485協(xié)議),液晶屏數(shù)碼管顯示程序,按鍵檢測(cè)和處理程序,主程序以及騰訊云通信存儲(chǔ)運(yùn)算程序,就地遠(yuǎn)程客戶端界面數(shù)據(jù)傳輸及顯示程序等。系統(tǒng)主程序流程如圖5所示。

圖5 主程序流程圖
Stm32的傳感器數(shù)據(jù)采集485通信程序示例如下。
#include "RS485/rs485.h"
uint16_t rs485_len;
uint8_t rs485_buf[20];
void _ST_MAXLED_CMD_CRC(uint8_t* in_dat, uint8_t length, uint8_t* out_dat)
{ uint8_t j;
uint16_t reg_crc=0Xffff;
while(length--){
reg_crc ^= *in_dat++;
for(j=0;j<8;j++){
if(reg_crc &0x01){ /* LSB(b0)=1 */
reg_crc=(reg_crc>>1) ^ 0Xa001;
}else{ reg_crc=reg_crc >>1;}}}
out_dat[0] = reg_crc;
out_dat[1] = reg_crc>>8;}
void _ST_MAXLED_SetNum(uint8_t addr,uint16_t num)
{ uint8_t cmd[8] = {0x01,0x06,0x00,0x00,0x00,0x01,0x00,0x00};
cmd[3] = addr;
cmd[4] = num;
cmd[5] = num>>8;
_ST_MAXLED_CMD_CRC(cmd,6,&cmd[6]);
RS485_SendArray(cmd,8);
osDelay(30);}
void _TEMP_CMD_getNum(void)
{ uint8_t cmd[8] = {0x04,0x03,0x00,0x01,0x00,0x01,0x00,0x00};
_ST_MAXLED_CMD_CRC(cmd,6,&cmd[6]);
RS485_SendArray(cmd,8);
osDelay(50);}
void _WINDSPEED_CMD_getNum(void)
{ uint8_t cmd[8] = {0x02,0x03,0x00,0x00,0x00,0x01,0x00,0x00};
_ST_MAXLED_CMD_CRC(cmd,6,&cmd[6]);
RS485_SendArray(cmd,8);
osDelay(50);}
void _WINDDIR_CMD_getNum(void)
{ uint8_t cmd[8] = {0x03,0x03,0x00,0x01,0x00,0x01,0x00,0x00};
_ST_MAXLED_CMD_CRC(cmd,6,&cmd[6]);
RS485_SendArray(cmd,8);
osDelay(50);}
void get_temp(void);
void get_wind_speed(void);
void get_wind_dir(void);
void update_max_led(void)
{ get_temp();
get_wind_speed();
get_wind_dir();
_ST_MAXLED_SetNum(0,(uint16_t)(sensor_dat.pull_val[0]*10));
_ST_MAXLED_SetNum(1,(uint16_t)(sensor_dat.pull_val[1]*10));
_ST_MAXLED_SetNum(2,(uint16_t)(sensor_dat.pull_val[2]*10));
_ST_MAXLED_SetNum(3,(uint16_t)(sensor_dat.pull_val[3]*10));
_ST_MAXLED_SetNum(4,(uint16_t)(sensor_dat.temp*10));
_ST_MAXLED_SetNum(5,(uint16_t)(sensor_dat.wind_speed*10));
_ST_MAXLED_SetNum(6,(uint16_t)(sensor_dat.wind_dir*10));}
void get_temp(void)
{ RS485_GetData(rs485_buf);
_TEMP_CMD_getNum();
rs485_len = RS485_GetData(rs485_buf);
if(rs485_len>0) {
sensor_dat.temp = (rs485_buf[3]*256+rs485_buf[4])/10.0;}
osDelay(30);}
在“騰訊云”基礎(chǔ)上自制一個(gè)橋梁健康監(jiān)測(cè)平臺(tái),可以實(shí)現(xiàn)多地遠(yuǎn)程檢測(cè)操作。橋梁健康在線監(jiān)測(cè)平臺(tái)如圖6所示。

圖6 在線監(jiān)測(cè)平臺(tái)
經(jīng)過(guò)實(shí)際系統(tǒng)平臺(tái)搭建進(jìn)行測(cè)試,對(duì)采集數(shù)據(jù)多次測(cè)試,根據(jù)現(xiàn)場(chǎng)進(jìn)行溫度等參數(shù)補(bǔ)償,保證測(cè)量的準(zhǔn)確性。在上位機(jī)設(shè)置參數(shù)可以動(dòng)態(tài)調(diào)整,可以實(shí)時(shí)修改報(bào)警值與控制閾值,滿足不同地區(qū)不同天氣情況參數(shù)可調(diào)并能夠?qū)崟r(shí)上傳與寫(xiě)入,確保各設(shè)備與數(shù)據(jù)云的通信確保準(zhǔn)確可靠,不會(huì)發(fā)生丟包延遲情況,最終平臺(tái)搭建如圖7所示。經(jīng)過(guò)多次測(cè)試,系統(tǒng)能夠滿足設(shè)計(jì)要求,在不同情況下,系統(tǒng)能夠檢測(cè)出橋梁異?,F(xiàn)象并進(jìn)行限流控制,實(shí)時(shí)監(jiān)控圖如圖8所示。

圖7 橋面監(jiān)控系統(tǒng)

圖8 實(shí)時(shí)監(jiān)控檢測(cè)出橋面異常并進(jìn)行限流
平臺(tái)運(yùn)行后,實(shí)現(xiàn)了橋梁實(shí)時(shí)安全監(jiān)測(cè)和動(dòng)態(tài)實(shí)時(shí)調(diào)控功能。當(dāng)橋梁兩側(cè)承重不平衡時(shí),系統(tǒng)自動(dòng)啟動(dòng),關(guān)閉相應(yīng)車道,直到在安全的閾值范圍內(nèi)橋梁達(dá)到兩側(cè)受力平衡;當(dāng)橋梁承重超過(guò)了總承重的設(shè)計(jì)要求時(shí),關(guān)閉車道,確保橋梁安全;當(dāng)橋面橫風(fēng)風(fēng)力超過(guò)閾值時(shí),系統(tǒng)啟動(dòng)車流管理,并語(yǔ)音提示及播報(bào),通過(guò)騰訊云服務(wù)器,實(shí)現(xiàn)了遠(yuǎn)程互聯(lián)網(wǎng)組網(wǎng)管理。系統(tǒng)結(jié)合了計(jì)算機(jī)及互聯(lián)網(wǎng)相關(guān)知識(shí),實(shí)現(xiàn)了對(duì)大橋健康數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)監(jiān)控和管理,確保橋梁安全可靠運(yùn)行,從而有力保障了公共交通安全。