崔遠
(蘭州職業(yè)技術(shù)學(xué)院 電子信息工程系,甘肅蘭州,730070)
隨著“智慧生活”觀念的深入人心以及“中國制造2025”[1]的持續(xù)推進,監(jiān)控系統(tǒng)以及工業(yè)互聯(lián)網(wǎng)廣泛的應(yīng)用在日常生活和工業(yè)領(lǐng)域中。2010年國務(wù)院發(fā)布的文件,將物聯(lián)網(wǎng)提升為國家發(fā)展戰(zhàn)略的重要組成部分[2]。2016年國家在“十三五”規(guī)劃中提出“發(fā)展物聯(lián)網(wǎng)開環(huán)應(yīng)用”,加強物聯(lián)網(wǎng)實現(xiàn)互聯(lián)互通,數(shù)據(jù)共享和協(xié)同化引用[3]。同年NB-IoT(Narrow Band Internet of Things,窄帶物聯(lián)網(wǎng))標(biāo)準(zhǔn)[4]的確立,為物聯(lián)網(wǎng)的廣泛推廣鋪平了道路。2018年,國家印發(fā)了《工業(yè)互聯(lián)網(wǎng)發(fā)展行動計劃(2018-2020年)》,強調(diào)了物聯(lián)網(wǎng)在工業(yè)應(yīng)用中的重要性[5]?,F(xiàn)階段,物聯(lián)網(wǎng)活躍設(shè)備已達到100億臺以上,預(yù)估2025年該數(shù)量會增加到1000億臺。
監(jiān)控系統(tǒng)廣泛的應(yīng)用于人們的日常生活中,傳統(tǒng)監(jiān)控系統(tǒng)大部分本地采集,本地存儲,然而隨著監(jiān)控設(shè)備數(shù)量的增加以及數(shù)據(jù)采集類型的擴充,本地存儲既無法實現(xiàn)長期存儲,也不利于后續(xù)數(shù)據(jù)的分析。云平臺經(jīng)過多年的發(fā)展,無論在數(shù)據(jù)存儲還是數(shù)據(jù)處理方面都展現(xiàn)出強大的優(yōu)勢,將云平臺引入監(jiān)控系統(tǒng)已經(jīng)成為一種可能。提出的基于云平臺的物聯(lián)網(wǎng)監(jiān)控系統(tǒng)通過物聯(lián)網(wǎng)實現(xiàn)監(jiān)控系統(tǒng)的低功耗運行,并使用云端實現(xiàn)數(shù)據(jù)的高性能存儲,以及監(jiān)控數(shù)據(jù)的統(tǒng)一處理和分析,可有效提高系統(tǒng)的安全和拓展性能,便于實現(xiàn)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的穩(wěn)定運行。
物聯(lián)網(wǎng)云平臺是物聯(lián)網(wǎng)與云平臺結(jié)合的產(chǎn)物,其中物聯(lián)網(wǎng)負責(zé)數(shù)據(jù)的采集和傳輸,而云平臺負責(zé)數(shù)據(jù)的存儲和分析處理等。云平臺有效降低了應(yīng)用的搭建和應(yīng)用的后續(xù)開發(fā)升級的成本?;谠破脚_的物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的架構(gòu)如圖1所示。
圖1 基于云平臺的物聯(lián)網(wǎng)監(jiān)控系統(tǒng)架構(gòu)
為了簡化設(shè)計,系統(tǒng)采用分層結(jié)構(gòu),主要包括:感知控制層,網(wǎng)絡(luò)傳輸層,平臺服務(wù)層以及應(yīng)用服務(wù)層。
(1)感知控制層:主要包括主控單元,數(shù)據(jù)采集單元和動作執(zhí)行單元。其中主控單元負責(zé)數(shù)據(jù)采集頻率,采集類型,采集時間等的控制,以及執(zhí)行單元控制命令的轉(zhuǎn)發(fā)。主控單元以主控芯片為控制核心,實現(xiàn)設(shè)備和環(huán)境信息的采集,同時根據(jù)預(yù)先設(shè)定的程序應(yīng)對環(huán)境參數(shù)的變化,如溫度上升到一定的數(shù)值,開啟降溫設(shè)備,發(fā)現(xiàn)明火時自動開啟消防設(shè)備等。
(2)網(wǎng)絡(luò)傳輸層:負責(zé)物聯(lián)網(wǎng)數(shù)據(jù)的傳輸,該層包括多種網(wǎng)絡(luò)協(xié)議的實現(xiàn)。以低能耗為基本要求,以數(shù)據(jù)傳輸可靠性為底線,以保證系統(tǒng)穩(wěn)定性為目標(biāo),選用合適的網(wǎng)絡(luò)數(shù)據(jù)傳輸方式實現(xiàn)數(shù)據(jù)的傳輸。針對不同環(huán)境不同類型的數(shù)據(jù)采集設(shè)備,選用不同的網(wǎng)絡(luò)傳輸協(xié)議實現(xiàn)數(shù)據(jù)穩(wěn)定可靠的傳輸。
(3)平臺服務(wù)層:負責(zé)物聯(lián)網(wǎng)設(shè)備的接入,網(wǎng)絡(luò)身份認證以及數(shù)據(jù)解析,安全管理,數(shù)據(jù)模型和數(shù)據(jù)的分析規(guī)則,同時向上層提供API接口實現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)的讀寫。平臺服務(wù)層以物聯(lián)網(wǎng)云平臺為核心,以消息訂閱的模式實現(xiàn)數(shù)據(jù)向不同的應(yīng)用系統(tǒng)分發(fā),從而保證數(shù)據(jù)可以及時有效的傳輸?shù)綉?yīng)用系統(tǒng),在緊急情況出現(xiàn)時,可以有效的實現(xiàn)精準(zhǔn)調(diào)控。
(4)應(yīng)用服務(wù)層:負責(zé)數(shù)據(jù)的分析處理以及數(shù)據(jù)的展示,以及用戶規(guī)則的制定,緊急預(yù)案的生成。通過web應(yīng)用的方式實現(xiàn)前后端分離,以滿足應(yīng)用層的可靠穩(wěn)定和高并發(fā),后端負責(zé)從平臺服務(wù)層獲取數(shù)據(jù)并進行相應(yīng)的處理,通過與前端建立通信接口,將感知控制層的狀態(tài)信息展現(xiàn)給用戶,同時提供接口給用戶,以便用戶實現(xiàn)對感知控制層執(zhí)行單元的控制。
數(shù)據(jù)傳輸主要是網(wǎng)絡(luò)傳輸層將采集單元獲取的數(shù)據(jù)上傳到平臺服務(wù)層,同時將應(yīng)用服務(wù)層的命令下發(fā)給執(zhí)行單元,也可以將預(yù)定義的處理方案下發(fā)給控制單元。感知控制層內(nèi)采集單元和控制單元的數(shù)量較多,不同設(shè)備由于類型和作用不同,因此使用的通信協(xié)議也各不相同,為了實現(xiàn)數(shù)據(jù)的統(tǒng)一管理和存儲,在網(wǎng)絡(luò)傳輸層實現(xiàn)協(xié)議設(shè)配模塊,并采用統(tǒng)一的數(shù)據(jù)傳輸格式向平臺服務(wù)層發(fā)送數(shù)據(jù)。
為了屏蔽各數(shù)據(jù)之間的差異,降低數(shù)據(jù)解析和處理的難度,制定統(tǒng)一的消息上報格式,以JSON數(shù)據(jù)格式為標(biāo)準(zhǔn),如表1所示,將每個上報數(shù)據(jù)類型定義為一個主題,由“l(fā)ocation:type”構(gòu)成。
表1 數(shù)據(jù)參數(shù)
為了解決物聯(lián)網(wǎng)監(jiān)控系統(tǒng)中大量并發(fā)消息請求而導(dǎo)致數(shù)據(jù)丟失和服務(wù)延遲的問題,系統(tǒng)采用了基于消息中間件kafka[6]以及消息處理工具storm[7]的數(shù)據(jù)接入方案,以采集單元生產(chǎn)數(shù)據(jù),使用kafka實現(xiàn)消息緩存,同時在平臺服務(wù)層設(shè)計storm集群服務(wù)器作為消息的消費者,應(yīng)用服務(wù)層的各個訂閱者從storm集群服務(wù)器獲取實時數(shù)據(jù),經(jīng)過過濾后將數(shù)據(jù)存儲在平臺服務(wù)層中,實現(xiàn)數(shù)據(jù)的持久化存儲?;谠破脚_的物聯(lián)網(wǎng)數(shù)據(jù)接入模型如圖2所示。
圖2 數(shù)據(jù)接入模型
物聯(lián)網(wǎng)監(jiān)控系統(tǒng)中存在大量的各式數(shù)據(jù),且會隨著時間的推移,會有更多的設(shè)備更多的數(shù)據(jù)類型接入系統(tǒng)。本系統(tǒng)中的數(shù)據(jù)主要來自兩個方向三種類型的數(shù)據(jù):設(shè)備產(chǎn)生的由下至上的數(shù)據(jù)和用戶產(chǎn)生的由上至下的數(shù)據(jù)。感知控制層生產(chǎn)的傳感器數(shù)據(jù),應(yīng)用服務(wù)層用戶生產(chǎn)的業(yè)務(wù)數(shù)據(jù)以及用戶制定并下發(fā)的應(yīng)急規(guī)則等。為了實現(xiàn)數(shù)據(jù)的合理快速持久化存儲,需要針對三類數(shù)據(jù)采用不同的存儲方案。
感知控制層的設(shè)備數(shù)據(jù)由傳感器采集,數(shù)據(jù)量隨著時間呈線性增長,且由于監(jiān)控系統(tǒng)的特點,傳感器數(shù)據(jù)都是寫多讀少,為了應(yīng)對這種使用環(huán)境,采用非關(guān)系型數(shù)據(jù)庫MongoDB集群[8]部署方案,物聯(lián)網(wǎng)數(shù)據(jù)由配置節(jié)點,路由節(jié)點和存儲節(jié)點組成,客戶端負責(zé)連接路由節(jié)點,將數(shù)據(jù)分散均勻的保存在各存儲節(jié)點上。數(shù)據(jù)存儲結(jié)構(gòu)如圖3所示。
圖3 分片式數(shù)據(jù)存儲
使用MongoDB存儲物聯(lián)網(wǎng)監(jiān)控數(shù)據(jù),適用于保存結(jié)構(gòu)松散的物聯(lián)網(wǎng)設(shè)備數(shù)據(jù),當(dāng)新的設(shè)備加入或者舊的設(shè)備淘汰,都不會因為數(shù)據(jù)類型的增加或者減少導(dǎo)致數(shù)據(jù)庫結(jié)構(gòu)出現(xiàn)問題。采用集群化部署方式,降低數(shù)據(jù)庫的讀寫壓力,采用分布式存儲的方案,并使用分片存儲,提高系統(tǒng)的吞吐率。對于用戶產(chǎn)生的數(shù)據(jù),采用mysql存儲。
基于云平臺的物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的硬件設(shè)計如圖4所示,主要有控制模塊,通信模塊,傳感器以及執(zhí)行模塊組成,為了提高系統(tǒng)的擴展性,各模塊之間通過Arduino接口[9]進行連接。
圖4 系統(tǒng)硬件設(shè)計
系統(tǒng)各模塊功能如下:
(1)電源模塊:主要負責(zé)向不同模塊提供不同的直流電壓,如向控制模塊提供12V電源,向傳感器和執(zhí)行模塊提供5V和3.3V電壓等。其電路原理如圖5所示。
圖5 電源模塊原理
電源模塊以220V交流電作為輸入,由變壓器將220V電壓直接轉(zhuǎn)換為12V直流電,通過開關(guān)電源這季節(jié)連接12V驅(qū)動板,然后有驅(qū)動板實現(xiàn)動作單元模塊的供電開關(guān)。與此同時,12V電壓還作為MP1584EN模組的輸入電壓,輸出5V電壓供傳感器單元使用,5V電壓也作為模組LM1117K3.3的輸入,轉(zhuǎn)化為3.3V電壓作為輸出。
(2)控制模塊:負責(zé)環(huán)境調(diào)節(jié)器的本地業(yè)務(wù)邏輯以及與云平臺的通信建立和消息傳輸。本系統(tǒng)使用STM32L4作為主控芯片,實現(xiàn)環(huán)境傳感器獲取環(huán)境參數(shù)信息,通過控制執(zhí)行模塊的控制模塊和環(huán)境調(diào)節(jié)器進行工作。在本系統(tǒng)中,使用NB-IoT實現(xiàn)相互連接,進行本地業(yè)務(wù)邏輯進行控制,同時設(shè)定內(nèi)置的應(yīng)急處理程序,實現(xiàn)對系統(tǒng)的自動化處理。
為了實現(xiàn)能耗和性能的平衡,本系統(tǒng)選擇STM32L4 R5ZIT6單片機作為主控系統(tǒng),L4系列主打低功耗特征,特別適用于在大規(guī)模云監(jiān)控平臺中,該單片機使用了ARM Contex-M4內(nèi)核,配備2M的Flash和640K的SRAM空間,基本滿足系統(tǒng)的自主控制程序所需空間。在接口方面,配備了SPI,GPIO,UART等外設(shè),可有效實現(xiàn)與大部分傳感器的通信需求。由于STM32L4系列的高效能耗管理程序,該單片機提供了低功耗的睡眠模式和運行模式,在保證最低功耗的同時基本功能的運行,并且可實現(xiàn)從睡眠模式快速切換為完整功能模式。
(3)通信模塊:使用BC28模塊實現(xiàn)該功能,支持B1/B3/B20/B28等頻段,是一款低功耗的NB-IoT無線通信模塊,可以實現(xiàn)系統(tǒng)與運營商網(wǎng)絡(luò)進行無線通信。BC28通信模塊的功能如圖6所示。
圖6 BC28模塊功能圖
通信模塊通過接收控制模塊發(fā)送過來的AT指令,在運算和處理后,返回響應(yīng)信息到控制模塊,常用的AT指令如表2所示。
表2 NB-IoT模塊常用AT指令
?
(4)執(zhí)行模塊:包括MCU控制的MOS作為控制單元,實現(xiàn)控制模塊的IO輸出等。
對于嵌入式終端來說,所有的控制程序都集中于主控系統(tǒng)中,系統(tǒng)通過NB-IoT模塊進行通信管理,同時使用hash加密的方式建立設(shè)備與云平臺之間的MQTT聯(lián)系,并制定相應(yīng)的Topic,并制定Topic的訂閱消息。
平臺服務(wù)層主要實現(xiàn)設(shè)備接入和數(shù)據(jù)處理相關(guān)工作,主要包括:
(1)設(shè)備接入:在設(shè)備接入之前,需要通過三元組對設(shè)備進行綁定,從而獲取系統(tǒng)認可的設(shè)備證書,設(shè)備的三元組用于與云平臺建立MQTT連接的憑據(jù),其中參數(shù)如表3所示。
表3 MQTT參數(shù)
(2)自定義topic:根據(jù)業(yè)務(wù)內(nèi)容自定義的MQTT通信topic,將各項環(huán)境參數(shù)閾值進行設(shè)定的topic,如報警條件,消除報警條件,啟動環(huán)境調(diào)節(jié)條件,以及其他基礎(chǔ)topic等。
將云平臺引入監(jiān)控系統(tǒng),可有效的解決本地存儲無法實現(xiàn)長期存儲,也不利于后續(xù)分析的問題,提出的基于云平臺的物聯(lián)網(wǎng)監(jiān)控系統(tǒng)通過物聯(lián)網(wǎng)實現(xiàn)監(jiān)控系統(tǒng)的低功耗運行,并使用云端實現(xiàn)數(shù)據(jù)的高性能存儲,以及監(jiān)控數(shù)據(jù)的統(tǒng)一處理和分析,可有效提高系統(tǒng)的安全和拓展性能,便于實現(xiàn)物聯(lián)網(wǎng)監(jiān)控系統(tǒng)的穩(wěn)定運行。