賈 婷,安 璐,廖 明,劉 瑩
(1.沈陽工學院 信息與控制學院,遼寧 撫順 113122; 2.中鐵九局集團電務工程有限公司,沈陽 110000)
BAS系統由中央監控工作站、現場控制器、其他監控子系統、傳感器及通信網絡構成[1]。中央監控站,設于站房一層消防控制室,由通信前置機、BAS工作站、后臺交換機、網關服務器、UPS電源、打印機等設備組成。中央監控站提供與智能照明、FAS等系統的數據接口。在機電設備相對集中的現場設置現場控制器,完成對空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等設備的監控及監視[2-3]。
基于蜂窩的窄帶物聯網(NB-IoT,narrow band internet of things)是萬物互聯網絡的一個重要分支[4]。NB-IoT構建于蜂窩網絡,只消耗大約180 kHz的帶寬,可直接部署于GSM網絡、UMTS網絡或LTE網絡,以降低部署成本、實現平滑升級。NB-IoT是IoT領域一個新興的技術,支持低功耗設備在廣域網的蜂窩數據連接,也被叫作低功耗廣域網(LPWAN)。NB-IoT支持待機時間長、對網絡連接要求較高設備的高效連接[5-7]。NB-IoT設備電池壽命可以提高至至少10年,同時還能提供非常全面的室內蜂窩數據連接覆蓋。
在車站監控過程中,為了更好地優化BAS系統的可視化界面設計、提高監控質量,以達到節能、安全、提高管理水平的目的,本設計采用STM32作為微控制器,設計溫濕度及光照總控中心和調控節點電路,總控中心通過華為 NB-IoT無線通信模塊與安裝在站內的多個調控節點進行指令和數據的通信,將通過各節點的溫濕度及光照傳感器采集到的數據經STM32單片機處理后,通過NB-IoT無線通信模塊上傳至根據實際要求設計的華為云模型中,實現總控制中心及節點電路的數據可視化及數據分析,并可以由上位機云端模塊直接控制下位機的空調機組,換氣機污水泵等設備,以實現實時的監管與控制站內現場環境。
基于STM32的鐵路運輸站內NB-IoT可視化云智能BAS系統由上位機 Oceanconnect云平臺、 NB-IoT無線傳輸模塊和下位機STM32F411單片機數據采集調控節點組成。利用各STM32F411單片機數據采集調控節點通過傳感器獲取鐵路運輸站內的各數據信息(溫度、濕度、光照等信息),通過NB-IoT無線傳輸模塊構建網絡,最后將各節點數據傳輸到上位機 Oceanconnect云平臺上,實現數據的可視化,并可由上位機Oceanconnect云平臺下發指令來實時完成對各站內空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等設備的監控及監視,其系統組成如圖1所示。

圖1 系統組成框圖
如圖1所示,上位機安放在車站管理中心,為一體機或筆記本電腦,下位機數據采集調控節點及 NB-IoT無線傳輸模塊安放在各個車站監控室,下位機各控制節點將采集到各站內的實時環境數據通過 NB-IoT無線傳輸模塊上傳至 Oceanconnect物聯網云平臺中預先建立好的節點模型中,實時數據在平臺中以數據及圖表形式更加直觀的顯示出來。同時通過上位機Oceanconnect物聯網云平臺中觀測到的數據如果超過相應的閾值范圍,還可以通過上位機頁面中設置的按鈕手動關閉或開啟下位機節點中的執行設備如空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等設備,如預設溫度閾值范圍為20~27 ℃,一旦溫度超過27 ℃或低于20 ℃,可通過Oceanconnect物聯網云平臺中的對應按鈕來控制站內的制冷或加熱設備的開啟,從而實現上下位機的實時通信、數據傳輸與顯示分析及自動安全控制等功能。
根據溫度傳感器、濕度傳感器及光敏傳感器數據綜合來控制電機和繼電器來自動控制車站中的空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等執行設備的開關狀態,同時可通過云平臺遠程監測與控制車站管理系統。各下位機各控制節點由STM32F411單片機、數字型光敏傳感器、溫濕度傳感器、OLED屏幕、按鍵、驅動電機(為開啟空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等設備提供電壓)、繼電器等組成,如圖2所示。

圖2 下位機硬件電路設計框圖
基于STM32F4系列芯片、數字型光敏傳感器、溫度傳感器、濕度傳感器、按鍵、OLED屏幕等硬件設計開發各下位機控制節點,采集并顯示環境溫濕度、光照強度數據的程序,能夠實現通過串口輸出以及OLED顯示光敏傳感器數據功能。設計根據溫度、濕度、光照強度自動控制車站的執行設備,能夠實現根據環境溫濕度、光照強度實時調節車站的各執行設備開關狀態的功能,其中溫濕度、光照強度的閾值可通過鍵盤輸入調節,并在OLED屏幕上顯示設置閾值的過程以及實時溫濕度、光照強度。設計時間控制車站的程序,能夠實現根據設置的時間對車站進行控制,時間設置為24小時制,通過鍵盤進行設置,并在OLED上顯示設置后的時間以及當前時間,為了方便驗證,當前時間也需要設置。基于NB-IoT網絡設計端測設備數據上云程序,能夠實現在Oceanconnect平臺的應用模擬器中查看終端設備上傳的溫濕度、光照強度數據,同時在OLED上顯示當前檢測的光照數據,要求OLED屏幕上當前光照值與oceanconnect上傳的光照值一致。設計完整功能程序,能夠實現底層矩陣鍵盤與云端Oceanconnect平臺實時設置溫濕度、光照強度閾值(底層矩陣鍵盤的輸入優先級最高),OLED屏幕實時更新顯示來自矩陣鍵盤輸入和云端平臺下發的當前時間,根據時間控制車站的時間范圍、當前溫濕度、光照強度、控制車站的溫濕度、光照強度范圍、電機及繼電器(即車站中的空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等執行設備)當前的狀態。
系統中的主控芯片采用的是STM32F4系列的STM32F411芯片,該芯片在同類單片機芯片中性能較好,性價比較高,支持程序執行和數據傳輸并行處理,數據傳輸速率非常快[8-10]。STM32F411芯片具有512 KB的ROM,128 KB的SRAM,以及連接到兩個 APB 總線、兩個 AHB 總線和一個 32 位總線的各種增強型 I/O 和外設多 AHB 總線矩陣,并以100 MHz的工作頻率運行。在系統中同時利用STM32的GPIO端口輸入功能來采集各傳感器中的環境數據,輸出功能來實現根據當前環境數據來實時控制站內設備,以達到系統的平衡與穩定狀態。
系統中采用SHT30溫濕度傳感器來實現對溫度和濕度的采集。SHT30溫濕度傳感器最高支持1 000 k的傳輸速率,有較高的數據通信速率,高集成度電容式測濕元件和能隙式測溫元件,SHT30能夠提供極高的可靠性和出色的長期穩定性,具有功耗低、反應快、抗干擾能力強等優點[11-13]。傳感器內部經過校準、線性化與放大,能夠輸出與溫濕度呈線性關系的模擬電壓,無需額外的驅動庫,使用簡單方便,電路圖連接如圖3(a)所示。系統中采用BH1750光強傳感器來實現對光照度的采集。BH1750是一種用于兩線式串行總線接口的數字型光強度傳感器集成電路。這種集成電路可以根據收集的光線強度數據來調整液晶或者鍵盤背景燈的亮度。利用它的高分辨率可以探測較大范圍的光強度變化。電路圖連接如圖3(b)所示。

圖3 傳感器電路連接圖
系統中的下位機顯示模塊采用0.96寸OLED顯示模塊進行溫濕度和光強數據的實時顯示,OLED顯示的數據與上位機一致能夠證明通信的實時性能較好[14-17]。顯示電路圖連接如圖4所示。

圖4 OLED顯示模塊電路連接圖
系統的執行器包含蜂鳴器、電機和繼電器模塊,當采集到的實時溫度、濕度、光強等信息超過預測的閾值范圍時,執行器進行相應的報警動作:溫度超限時蜂鳴器報警、濕度超限時電機轉動、光強超限時繼電器模塊打開,不同的執行器模塊連接站內實際設備的驅動就可實現設備的自動控制,系統執行器模塊電路連接如圖5所示。

圖5 執行器模塊電路連接圖
系統的下位機軟件設計使用底層嵌入式實時操作系統的開發環境IoT Studio軟件進行設計,IoT Studio 是支持 LiteOS 嵌入式系統軟件開發的工具,支持 C、C++、匯編等多種開發語言,提供開發、構建、調試的一站式全流程開發,使用起來簡潔方便,界面如圖6所示。

圖6 IoT Studio開發界面圖
在IoT Studio軟件中實現下位機C語言程序的編寫、編譯、修改,將無語法錯誤的程序下載到STM32F411單片機中實現軟硬件集成在線調試,根據具體硬件的現象來確定程序的功能是否完善。
下位機在IoT Studio軟件中主要實現對溫度傳感器、濕度傳感器及光敏傳感器的數據采集,將采集到的數據通過OLED屏幕顯示出來,同時利用按鍵控制各傳感器采集數據的閾值范圍的設置,根據實際要求設置溫濕度計光照數據的正常閾值范圍,一旦有傳感器采集到的某一實時數據超過了正常的閾值范圍,通過蜂鳴器、電機、繼電器等執行設備進行報警及控制車站中的電機及繼電器,進而實現對空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等設備的控制。
上位機在IoT Studio軟件中主要實現上下位機的雙工通信,下位機單片機采集到的傳感器數據上傳到上位機Oceanconnect物聯網云平臺,同時上位機Oceanconnect物聯網云平臺的相關指令也可下發到下位機的單片機中來實現站內設備的實時控制。
設計過程采用模塊化程序的設計方法,將系統軟件設計分為溫濕度傳感器的數據采集、光敏傳感器的數據采集、下位機上傳輸數據、上位機下發指令4個子程序模塊的設計。
溫濕度及光敏傳感器的數據采集過程:首先聲明 STH30 溫濕度傳感器及BH1750 光強傳感器的寄存器地址,I2C 總線的地址,SHT30 的 I2C 總線通信地址,BH1750 的 I2C總線通信地址,啟動地址,控制地址,復位地址等,完成寄存器地址的聲明后,定義初始化函數 Init_N3M9_WDMTHI 與數據獲取函數 N3M9_WDMTHI_Read_Data。在N3M9_WDMTHI.c 文件中對傳感器的工作方式進行定義,首先初始化并啟動 BH1750 光強傳感器,即Init_BH1750初始化,對傳感器通電命令 0x01 進行聲明,然后通過 I2C 總線將該命令下發至傳感器,在 Start_BH1750函數中聲明一次性高分辨率工作模式的命令 0x10,并通過 I2C 總線將該命令下發至傳感器。啟動 BH1750 后即可通過 I2C 總線獲取光照強度數據,通過公式將獲取到的二進制數據轉換為十進制數據,編寫數據轉換函數 Convert_BH1750。接著對溫濕度傳感器進行初始化,啟動,復位,獲取數據,轉換數據,數據校驗等功能函數的編寫,首先完成溫濕度傳感器復位函數SHT30_reset及初始化函數 Init_SHT30的編寫,通過I2C 總線給傳感器的寄存器發送相應的命令來控制寄存器來實現復位與初始化,然后由于溫濕度傳感器采集的溫度與濕度數據是分開采集的,但是該傳感器設備在 I2C 總線上只有一個設備地址,其傳輸給 MCU的數據是打包發送的數據,因此需要使用SHT3x_CheckCrc函數對該數據進行校驗。最后對獲取到的溫度、濕度數據分別進行轉換,從而得到十進制的溫度、濕度數據。
下位機上傳輸數據至云平臺及上位機下發指令子程序設計過程:首先由于需要使用云端互通組件,因此在頭文件中包含 oc_lwm2m_al.h、 link_endian.h 及N3M9_WDMTHI 擴展板的驅動頭文件,然后配置 NB 模組與 Oceanconnect平臺對接的相關參數,聲明 NB 模組的唯一標識碼,Oceanconnect服務器對接 IP 地址,端口這三個參數。緊接著聲明 5 種消息的地址域名稱,分別是數據上報,電機控制命令下發,繼電器控制命令下發消息的地址域,底層硬件設備以不同的地址域來區分平臺下發的不同消息。
在編寫平臺命令消息接收函數之前,首先定義數組與信號量變量,其中數據存放平臺下發的數據,信號量同步平臺消息接收與數據處理任務,當平臺下發的命令是正確命令時則釋放信號量,數據處理任務申請到信號量進而執行相應的數據處理任務。在 app_msg_deal平臺命令消息的接收任務中需判斷平臺下發消息的大小是否正確,如正確則將數據存放至數組 中,數據存放成功后釋放信號量,以便于后面的數據處理任務申請信號量。然后編寫平臺下發命令處理函數,先分別實例化兩個下發命令消息結構體,兩個下發命令響應消息結構體,定義一個獲取平臺下發命令中的地址域字段的地址域變量,便于在 while 循環中判斷平臺下發的消息,根據不同的地址域字段來執行不同的操作,在 while 循環中申請信號量,獲取地址域字段的值,通過 switch 語句判斷不同的地址域具體執行的操作。
完成平臺下發命令處理函數后編寫用戶數據上報任務入口函數以實現底層傳感器設備所采集的數據上報至云平臺,實例化 Oceanconnect平臺對接參數結構體 oc_param、上報數據結構體 Agriculture,通過 memset函數將 Oceanconnect對接參數結構體中數據清空一次,然后對Oceanconnect平臺對接參數結構體 oc_param 重新賦值,通過 if 判斷語句來判斷是否賦值成功,通過 while 循環打包需上傳的數據,給結構體 Agriculture 中的對象賦值,通過 oc_lwm2m_report 函數將結構體發送至OC云平臺,然后任務休眠 2 s 后繼續上傳。完成數據上報任務入口函數后編寫數據采集任務入口函數,通過調用 N3M9_WDMTHI初始化函數啟動數據采集,通過 while 循環連續調用 N3M9_WDMTHI_Read_Data 函數讀取傳感器數據,任務休眠 2 s 后繼續采集。然后用visio軟件畫出流程圖,最后在IoT Studio集成開發環境下,用C語言編程在主程序中調用各個節點采集到的相關數據,根據按鍵設置的閾值來實現車站執行器控制的程序設計,主程序流程如圖7所示。

圖7 主程序流程圖
軟件工作流程為:STM32F411單片機先對其內部資源以及與之相連接的NB-IoT無線通信模塊、溫度傳感器、濕度傳感器及光敏傳感器的數據采集模塊、A/D模塊、顯示模塊和按鍵模塊進行初始化;然后判斷是否收到上位機指令,如果接收到上位機指令,則根據指令進行操作;如果沒有接收到上位機指令,調用溫度傳感器、濕度傳感器及光敏傳感器的數據采集子程序進行下位機數據獲取,并將獲取到的數據通過OLED屏幕實現下位機顯示,同時通過NB-IoT無線傳輸模塊上傳劇上位機 Oceanconnect物聯網云平臺。然后判斷是否有按鍵,如果按鍵按下,對閾值范圍進行自動調整,并將自動采集到的溫度、濕度和光照強度與設置的閾值范圍進行對比,如果超過設定閾值范圍,則產生有蜂鳴器產生報警信號并控制相應的電機和繼電器工作,進而驅動站內空調機組、新風換氣機、送/排風機、風幕機、潛污泵、電/扶梯等設備的,工作來調整環境參數。
系統的上位機軟件設計使用Oceanconnect物聯網云平臺,幫助快速構筑物聯網應用,簡化海量設備管理復雜性,節省人工操作,提升管理效率。使用設備接入控制臺,可以實現對產品的創建、開發、調試,設備的注冊、管理、鑒權、軟固件升級。在設備接入控制臺,可以創建規則引擎,滿足用戶實現設備聯動和數據轉發的需求;還可以存儲產品和設備數據及生成相應統計報表,方便用戶監控設備的各種狀態[18-20]。首先注冊登錄Oceanconnect云平臺,在“模型定義”頁面,單擊“自定義模型”,配置產品的服務,新建服務,其中屬性列表主要為終端模塊上報數據的字段信息,分別對溫度—Temperature、濕度—Humidity、光強—luminance參數進行參數定義及屬性配置,如圖8所示。

圖8 參數配置圖
定義獲取下位機參數后,根據下位機硬件結構及連接方式在線開發建立物聯網模型,設計下位機采集到的溫度、濕度及光照參數通過NB-IoT無線傳輸模塊上傳至Oceanconnect物聯網云平臺,上傳數據模型如圖9所示。

圖9 云平臺上傳數據模型圖
定義執行器為電機-Motor和繼電器-ralay來控制站內實際執行設備,可根據實際需要由上位機按鈕來完成手動操作控制電機和繼電器來實現實際設備的開關,以實現上位機遠程實時應對處理突發狀況,下達命令模型如圖10所示。

圖10 云平臺下發命令模型圖
物聯網模型建立好以后,輸入NB-IoT無線傳輸模塊的唯一序列碼(一塊NB-IoT無線傳輸模塊的序列碼為固定序列,書寫在模塊上方),上下位機實現無線雙工通信,無線通信成功后上位機Oceanconnect物聯網云平臺顯示下位機節點硬件設備在線狀態,如圖11所示。其中,NB-IoT設備上報數據后為狀態為在線,距離上次上報數據25小時內未上報數據,會刷新狀態為離線狀態。

圖11 無線通信成功狀態圖
為了驗證系統能否實現上下位機實時通信、系統穩定性,以及在上位機Oceanconnect云平臺中新建的模型中是否能夠實時接收到數據,系統上位機能否實現對下位機設備的實時控制,做了如下測試。
1)測試系統上下位機能夠實現實時數據通信,并能夠接收到下位機傳感器采集到的溫度、濕度及光強數據,并能都實現數據的實時刷新,刷新速度足以顯示出數據的變化過程,如圖12所示。

圖12 上位機接收到實時數據圖
2)系統上位機能夠實現對下位機真實執行設備的實時控制,如圖13所示,Oceanconnect物聯網云平臺向模型中的“relay”(繼電器)發送“ON”指令,則下位機繼電器立刻打開,發送“OFF”指令,則下位機繼電器立刻關閉。Oceanconnect物聯網云平臺向模型中的“motor”(繼電器)發送“ON”指令,則下位機電機立刻轉動,發送“OFF”指令,則下位機電機立刻停止轉動。上位機命令發送成功后,還會在Oceanconnect物聯網云平臺中顯示“已發送”字樣。

圖13 上位機向下位機發送命令測試圖
3)系統設計制作完成的基于STM32的鐵路運輸站內NB-IoT可視化云智能BAS系統設計按照圖2建立實驗測試電路,光照閾值設置為200~300 Lx,濕度閾值設置為40~60/%rh,溫度閾值設置為20~26 ℃,然后進行上下位機無線通信并根據實際自動調節情況進行實驗測試,得到其部分參數測量結果如表1所示。

表1 NB-IoT可視化云智能BAS系統測量結果表
測試結果表明,該系統無線傳輸質量較高、下位機數據能夠在云模型上實時顯示,上下位機數據顯示一致,且數據刷新速度快,能夠實現數據的準確實時上報及執行器的自動控制,系統可靠性較高能夠滿足鐵路運輸站內現場的需求。
本文以STM32F411單片機微控制器作為控制核心,結合NB-IoT無線通信技 術、傳感器技術、Oceanconnect云平臺技術和自動控制技術,設計了一種基于STM32的鐵路運輸站內NB-IoT可視化云BAS系統。本文闡述了系統的組成原理、軟硬件設計方法、云平臺的搭建方法和無線組網及通信技術,并對該自動監控系統進行了實驗驗證。實驗測試結果表明,系統能夠達到預期的設計要求,可以實現在Oceanconnect云平臺上實時觀測到下位機節點中各傳感器采集到的數據,并對下位機節點的執行器進行控制,初次之外,各節點還能夠根據預設閾值范圍及當前環境數據完成自動控制BAS系統中涉及的真實設備狀態,進而實現對環境的自動控制,達到節約能源、遠程控制、便捷管理、消除安全隱患的目的。
但該鐵路運輸站內NB-IoT可視化云BAS系統也存在不足的地方,比如:由于運用到Oceanconnect云平臺使得系統對網絡依賴度較高等問題,在今后的研究中,需要對系統的網絡問題進一步改進,以遠程調控系統的功能,并提高系統的數據存儲能力,實現在上位機數據的長期累積分析,以達到對系統穩定性的保障。