丁承君, 胡 博, 劉云帆, 賈麗臻
(1.河北工業大學 機械工程學院,天津 300130;2.中國民航大學 航空工程學院,天津 300130)
進入21世紀后,中國經濟的快速發展使得城鎮化的進程加快,我國的建筑工程量不斷增長。建筑施工過程中造成的污染問題日益嚴峻,建筑工地揚塵污染的治理問題是大氣污染防治的重要內容[1]。對施工現場揚塵的污染情況進行實時監測可以及時發現揚塵濃度的超標情況并通知相關部門進行治理。但傳統的揚塵監測系統需要人工定點巡查,不僅采集范圍小,準確性和實時性差,還浪費了大量的人力和物力[2]。
隨著嵌入式、物聯網(Internet of Things,IoT)、無線傳感技術的發展,建筑工地揚塵監測的智能在線監測方案越來越多。郭玉明采用C/S與B/S相結合的體系結構,設計了一種風沙天氣下建筑施工的揚塵監測系統[3]。武風波等人設計了一種基于嵌入式的建筑工地環境監測系統,可以實現對建筑工地環境的實時監測[4]。陳雁冰等人設計一種基于低功耗無線傳感網的工地揚塵監測系統,在實現了全面監控工地的同時還能控制微灌噴霧系統的開啟[5]。
上述研究雖然在局部范圍內解決了建筑工地揚塵監測的問題,但不能同時解決建筑工地揚塵監測中存在的監測面積廣、網絡布線難、監測環境惡劣且傳感器易受干擾等問題。因此,本文設計了基于物聯網的建筑工地揚塵監測系統,以LoRa和以太網作為通信技術,解決了監測面積廣、網絡布線難等問題,同時使用卡爾曼濾波算法對數據采集節點的數據進行處理,可以有效地消除環境噪聲對傳感器感知數據的干擾,使得系統的準確性和實時性更高。
基于常見的物聯網架構,設計系統的總體架構圖如圖1所示。

圖1 系統總體架構
作為物聯網的神經末梢,感知層主要由傳感器組成,用來采集PM2.5、PM10、溫濕度、風力風向等揚塵監測中需要采集的重要參數,并對數據進行存儲和預處理。
作為物聯網架構的神經傳遞介質,傳輸層由通信網絡組成。LoRa技術的傳輸距離遠、網絡覆蓋廣、功耗低等優勢使得其可以在交通監管、農業管維、城市建設、環境監測等多個物聯網應用場景中使用[6]。因此,選用LoRa技術搭建本文中的揚塵監測系統。建筑工地揚塵監測終端通過自行搭建的LoRa網關與云端服務器進行通信,各個數據采集節點通過各自的LoRa模塊將測量數據傳輸給LoRa網關,LoRa網關再將這些數據通過以太網模塊傳輸至云服務器進行數據融合、分析和展示[7]。
作為物聯網架構的大腦,應用層面向相關的環境監管部門。應用層主要由數據庫,Web平臺、終端配置單元和數學運算模型等組成,其主要任務是對采集的數據進行智能分析處理并通知相關部門及時處理污染超標等情況。
本系統采用模塊化設計,硬件電路結構圖主要由數據采集節點硬件結構圖和LoRa網關硬件結構圖組成。
數據采集節點主要依靠微處理器進行數據處理,由于STM32具有高性能、低功耗、低成本的特點,本系統選用STM32F103C8T6作為數據采集節點的主控芯片。該芯片內核基于ARM32位的Cortex—M3 CPU,具有休眠、停止、待機模式三種低功耗模式,主頻為72 MHz,程序儲存器為64 kB,SARM為20 kB供電電壓為2~3.6 V。具有多種外設接口,如定時器、ADC、SPI、I2C和USART ,具備串行線調試和JTAG接口。
數據采集硬件結構圖如圖2所示。其中,電源模塊的作用是將外部直流電源轉換為適合主控芯片的電壓進行供電;調試模塊可以在對硬件設備調試時打印相關的調試信息;傳感器通過RS—485接口將采集到的數據傳輸到采集終端;GPS模塊通過UART接口與主控芯片進行通信從而實現定位功能;LoRa模塊通過UART接口與主控芯片通信從而實現與LoRa網關的數據傳輸功能;OLED顯示模塊可以實時顯示傳感器采集到的數據;指示燈通過GPIO與中控芯片進行通信可以在數據異常時亮起報警。

圖2 數據采集節點硬件結構
建筑工地揚塵監測系統中的LoRa網關不同于數據采集節點,其無需進行傳感器的采集工作,但需要處理由各個采集節點傳輸上來的大量數據,所以,對網關的的內存和處理器有較高要求。本系統選用三星公司推出的S3C2440A開發板作為主控核心,它基于ARM v9系列的ARM920T核心,可以運行嵌入式Linux操作系統,主頻為400 MHz,搭配256MB NAND Flash和64MB SDRAM,并且配有SPI,GPIO,UART等接口,可以滿足本系統對LoRa網關的需求。LoRa網關硬件結構圖如圖3所示。數據采集節點通過LoRa模塊將數據傳輸到LoRa網關,LoRa網關將接收到的數據通過以太網模塊傳輸到云端服務器。

圖3 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~60 m/s。
GPS模塊用來為監測數據提供位置屬性,用于監測平臺端對數據采集節點的定位。本系統選用的GPS模塊為NEO—M8N,它具有靈敏度高、功耗低、性能卓越、功能全面等特點,其依靠NAME—0183協議獲取施工地點的經緯度信息,通過UART串口與主控芯片進行通信,便于監管人員隨時定位到發出異常數據的施工地點。
LoRa模塊選用億佰特電子科技公司的E22—400T22S,該模塊采用SX1268主芯片,最大發射功率22 dBm,通信距離4 000 m,工作頻率410~493 MHz。該模塊采用了全新一代的LoRa擴頻技術,具有體積更小、速度更快、功耗更低、傳輸距離更遠的特點。
以太網模塊選用W5500,該模塊是WIZNET主推的高性價比以太網模塊,集成了全硬件TCP/IP協議棧,支持休眠模式和網絡喚醒,內部集成32K的TX/RX緩存。與傳統軟件協議棧不同,W5500內嵌的8個獨立硬件Socket可以進行8路獨立通信,支持高速標準4線SPI接口與主機進行通信,內部集成以太網數據鏈路層和10BaseT/100BaseTX以太網物理層,具有可靠性高、安全性好的顯著優勢。
數據采集節點軟件采用C語言來進行開發,利用KEIL進行程序的編寫、編譯、調試和下載。同時為了對數據進行濾波處理,將FreeRTOS實時操作系統移植到該節點上進行多線程任務,保證數據處理算法的穩定運行。
系統上電后,首先進行系統初始化和設備初始化,成功連接LoRa網關后進行數據采集。在采集過程中,STM32F103主控芯片以輪詢方式進行數據采集并通過RS—485總線與揚塵傳感器通信,固定采樣周期設置為60 s/次,按照傳感器相應的數據規則完成電信號到揚塵數據信息的轉換。當主控芯片接收到數據之后,對數據進行卡爾濾波算法以消除環境噪聲對數據的影響,然后將處理后的數據打包上傳至LoRa網關。
LoRa網關軟件通過在Vmware Workstation上安裝Ubuntu16.04虛擬機進行開發,網關與嵌入式Linux系統通過串口通信工具minicom進行通信,在Ubuntu系統中使用Sublime text3進行程序編寫,通過交叉編譯工具鏈ARM-Linux-GCC生成。LoRa網關的主要作用是將各個數據采集節點采集到的數據進行儲存和管理,再將這些數據上傳到服務器。系統初始化之后,首先判斷LoRa網關是否組成成功,成功后開始接收各個數據采集節點傳輸過來的數據,將數據在本地存儲之后,通過以太網模塊將數據上傳到服務器。
由于建筑施工現場環境復雜,環境噪聲使得傳感器測量的數據存在誤差,導致監測系統獲得的數據無法準確反應出施工現場揚塵數據的真實情況。
本系統采用卡爾曼濾波算法對節點收集到的數據進行濾波降噪處理,可以有效消除測量噪聲和環境噪聲對監測結果的影響,并且可以壓縮數據傳輸量,避免了大量冗余數據的傳輸,提高了數據采集的準確性和實時性[8]。
卡爾曼濾波是一種通過線性系統狀態方程對系統進行最優化估計的方法。其以最小均方誤差為準則,利用現時刻的觀測值和前一時刻的估計值來更新對狀態變量的估計,得到現時刻的估計值[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)分別為系統噪聲和測量噪聲,且兩者均為均值為零的高斯白噪聲。
卡爾曼濾波過程是一個遞歸過程,每次遞歸都分為預測和修正兩步執行。預測主要包括狀態預測和協方差預測[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)計算卡爾曼增益
(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)]
(6)
根據測量值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為單位矩陣。
為了測試監測系統監測數據的準確性,將揚塵監測系統放置于環保局環境監測站附處,對數據精度要求較高的PM2.5和PM10兩項數據進行監測。監測時間為上午9點至下午5點,連續監測8 h,將監測數據轉換為所測時間段整點對應的小時平均數據并與監測站點發布的小時平均數據進行對比,對比圖如圖4所示。

圖4 實驗數據對比
由圖4實驗數據比對圖可知,監測系統連續運行7 h,通過數據的走勢可以直觀地看到本系統采集的數據與監測站發布的數據基本一致,且經計算PM2.5和PM10的平均誤差均在2 %內。試驗結果表明,本系統所采集到的揚塵數據的準確性較高,可滿足揚塵監測的實際需求。
通信時延會影響各節點間的信息傳輸,實驗中終端的時延是指一條完整的數據從讀取到完整發送至服務器間的時間間隔[14]。從監測終端發出數據的時刻算起,到客戶端接收到數據為止,通過標記的時間戳,可以計算得到系統的響應時間。連續做1 h的數據傳輸實驗,共測試60組數據,終端發送數據時刻、客戶端接收數據時刻以及時間差如表1所示。

表1 響應實時性測試表 ms
測試的60組數據中,響應時間差最大為46 ms,最小為28 ms,響應平均時間差為36.6 ms。測試結果表明,監測系統的實時性較高,可以滿足揚塵監測的實際需求。
建筑施工工地揚塵的污染情況對人類的身體健康和城市的空氣質量有著顯著的影響。本文設計的基于物聯網的建筑工地揚塵監測系統,以LoRa和以太網作為通信技術,結合卡爾曼濾波算法對采集節點的數據進行處理,實現了對揚塵數據的采集、傳輸和處理。實際測試結果表明系統穩定性好,準確性和實時性高。本系統可以提高相關部門的監管效率,具有一定的實用價值。