聞明 師濤 崔永明
(北京科技大學天津學院 天津 301830)
隨著科技的發(fā)展,機房的監(jiān)控變得越來越重要。使用通信信道進行數據傳輸,首先要決定數據通信的方式,對環(huán)境特點進行了解,結合當地的技術水平和企業(yè)的規(guī)模綜合考慮[7]。監(jiān)控系統由系統總體設計,傳感器硬件設計,服務端軟件設計,實驗測試結果與結果分析幾部分組成。
該系統模型大致如圖1所示。
圖1 監(jiān)控系統的模塊示意圖
圖2 NB-loT模塊的功能示意圖
本系統可分為兩個大塊,硬件的部分和軟件的部分。硬件的部分部署在機房,程序部署在單片機上。硬件的部分又有兩類,一類僅采集原始數據(例如溫度、濕度、氣體濃度等),并以 UDP 協議上傳;另一類則是與圖像監(jiān)控相關,它先從攝像頭讀取數據,然后使用 FPU 運行機器學習的預訓練模型推理,分析出攝像頭捕捉到的圖像中的物體名稱、位置、大小,再將數據以UDP協議上傳到云平臺上。
云平臺上的程序分為這么幾部分。一個程序監(jiān)聽UDP協議的指定端口,等待硬件發(fā)送的數據報。接收到數據報后,進行合法性校驗、鑒權校驗,將數據存入數據庫中。日志分析程序從兩方面分析數據,一方面是根據管理員人工配置的監(jiān)控數據合理范圍,判斷監(jiān)控數據是否已經超標,另一方面是由算法判斷監(jiān)控數據是否出現了持續(xù)的異常,數據的變化是否出現了異常的模式。分析完成后,將日志標記上預警等級,存入數據庫,將高危日志發(fā)送到消息隊列??刂婆_則可以配置程序的參數,進而改變程序的行為。預警程序則監(jiān)聽消息隊列,如果接收到高危日志消息,以短信或者電子郵件的方式通知監(jiān)控平臺的管理員,提醒管理員及時處理。
圖3 使用模塊作為主控芯片集成應用的開發(fā)方案
圖4 客戶端與服務端私有通信協議報文格式
表1 溫度測試表
表2 濕度測試表
表3 監(jiān)控系統測試響應延遲
系統的主要功能是監(jiān)控弱電機房的環(huán)境數據,提供機器自動判斷數據異常對監(jiān)控數據進行處理,提供時間區(qū)間監(jiān)控數據展示方便監(jiān)控平臺管理員回溯監(jiān)控數據。控制臺有三大功能,一是監(jiān)控數據的展示,二是監(jiān)控平臺配置,三是日志分析結果的展示。在控制臺上,管理員可以在網頁上設置一段時間區(qū)間,控制臺上會以曲線圖的形式展示指定時間內數據的化情況。在監(jiān)控平臺配置頁面,管理員可以配置溫度、濕度、氣體濃度的合理變化范圍。如果所監(jiān)控的數據超出了合理變化范圍,系統會通過短信、電子郵件的方式向管理員的通信方式發(fā)送預警。管理員可以在監(jiān)控平臺配置頁面錄入自己的聯系方式。這種方式可以大大降低系統管理員的盯盤負擔,因為如果是以往,管理員必須盯著數據變化的曲線才可以有效地監(jiān)控環(huán)境指標。
而硬件的主要功能則是采集原始數據或對數據進行一定的分析后以UDP協議發(fā)送到云平臺。微控制器先采集溫度、濕度、氣體濃度數據,然后以UART協議與BC260型號的NB-IoT通信模塊與遠端通信。該模塊會將數據發(fā)送到中國移動onenet物聯網云平臺。
NB-IoT[3]通信模塊常見的型號有移遠的BC-26, BC-28, BC-35。其中只有 BC-26 支持 OpenCPU 模式。換句話說,BC-26 不僅可以作為一個通信模塊(從機)使用,也可以作為一個獨立的主機來操控別的元件。因為將它作為主機就不需要額外的主機,例如STM32,整個系統的功耗會更小。我開發(fā)了基于移遠NB模組BC26的NB核心板,也可稱作NB最小系統,2.54間距雙排針,引出BC26全部可用GPIO,支持OpenCPU二次開發(fā)方案,即插即用。
BC-26支持低功耗模式,最小功耗P SM模式下僅40uA,其中BC26自身功耗5uA,BC-26板載LDO降壓芯片靜態(tài)功耗35uA。
考慮到功耗,需要推理機器學習模型的微控制器我選擇了Maix Bit的K210。STM32 的計算性能比較孱弱,更為適合整數運算[5],因此沒有采用這種更為流行的方案。
微控制器在監(jiān)控硬件中扮演的角色是實現監(jiān)控環(huán)境與外部網絡交互的核心要素。被監(jiān)控環(huán)境的現場信息被微控制器采集后發(fā)送到網關上的協調器,在機器視覺上被監(jiān)控環(huán)境的現場信息被微控制器采集后發(fā)送到在機器視覺上被監(jiān)控環(huán)境的現場信息被微控制器采集后發(fā)送到網關上的協調器,采用有線或無線的方式發(fā)送到云端的服務器軟件上[6]。主控芯片K210與BC-26的通信方式是通過UART接口完成通信[4]。
而沒有大的計算需求的場景,我使用 BC-2 6 的 OpenCPU 方案。在傳統方案中,需要一個MCU作為主控制器,控制硬件外設,例如控制路燈的亮或滅,然后使用MCU的UART接口與標準模塊進行AT指令通信,上報當前路燈狀態(tài),或接收來自遠程服務器的開關燈命令。而OpenCPU方案,可以直接在模塊中編寫程序控制路燈,節(jié)約硬件成本,加速應用開發(fā)。
系統軟件主要有兩部分,在用戶的瀏覽器上運行的web端展示軟件和運行在云服務器上的服務端程序[8]。Web端展示軟件的部署方面,我們可以充分發(fā)揮云技術的優(yōu)勢,將展示程序部署在云廠商的CDN網盤平臺上[9]。瀏覽器根據基礎骨架頁面上的資源URL訪問云廠商的服務器動態(tài)加載展示軟件。運行在服務端的程序 則以UDP協議監(jiān)聽1314端口上傳入的UDP數據報。數據報的格式如圖所示。服務端程序以2進制形式分析數據報,連續(xù)的16個0表示數據的結尾。
接收到數據后,服務端程序將程序存入關系型數據庫等待數據分析程序自動抓取。自動分析程序根據預設的配置對數據進行分析,若發(fā)現超出預設范圍的環(huán)境數據,或者顯著的離群點,則轉發(fā)至自動報警信息服務。
自動報警信息服務是該系統的核心功能之一,對弱電機房自動監(jiān)控平臺的自動化效率產生直接影響。自動報警信息服務使用了一套算法來自動監(jiān)控是否監(jiān)控數據出現異常。如果出現異常,根據管理員的設置的聯系方式,自動生成短信或郵件,全天候向管理員自動報警。通過自動報警方式,管理員可以及時發(fā)現問題,并在第一時間進行解決。
簡單地說,有一部分數據不需要與其他數據綜合考慮是否異常,我們可以將這些數據在硬件端進行計算和分析,計算平均值、方差等數據,這樣可以降低帶寬壓力。
算法方面,我們使用孤立森林算法。數據在數據庫或消息隊列等數據倉庫中沉淀后,先用算法進行分析,是否存在局部的異常點。如果發(fā)現,再根據短信模板生成短信,或者根據 Markdown 模板生成郵件,發(fā)送到管理員的聯系方式上。我們對生成的分析報告進行一定的封裝,比如我們同機房的數據,同等級的告警信息封裝在一起,在經過這樣的封裝處理之后,管理員翻閱這些數據和分析報告時不會出現混亂的情況。可以很方便地歸因隱患和問題的源頭。
我們的核心板調試用的 UART 端口是 RDX_DBG 和 TXD_DBG。為了對該弱電機房監(jiān)控系統的實時性、可靠性、功能進行驗證和分析,我們在同等環(huán)境下,對弱電機房監(jiān)控系統進行了實驗,對溫度、濕度、氣體濃度的準確性、響應時間進行了測試。結果如表1, 表2,表3所示。
通過監(jiān)控系統測試響應延遲表表格 3的數據可以看出,平均響應延遲0.98s,響應十分迅速。保證了系統的可靠性和實時性。
通過表格1的數據可以看出,該系統的測量誤差在1.5℃以內。符合DHT11的正負3℃誤差范圍內。
設計了一種基于NB-IoT 窄帶物聯網的弱電機房實時監(jiān)測系統,該系統使用勘智K210和移遠的BC26 物聯網模塊,接入中國移動的 onenet 物聯網云平臺。通過 BC26 將數據傳輸到自主研發(fā)的數據分析和監(jiān)控平臺上。在數據展示平臺上,你可以看到硬件實時監(jiān)控的機房溫度、濕度、煙霧濃度等數據。出現數據異常時,可以在第一時間告警管理員。
該系統的功耗較低,所需維護頻率低,安裝成本低廉。提高了我校的經濟效益,推動了我校的電子化、數字化進程。NB-IoT技術優(yōu)勢將極大地促進此技術未來的大規(guī)模商用,其方案特性也完全符合中國未來發(fā)展“創(chuàng)造性、科學性、前瞻性”的要求[2]。