朱家樂
關(guān)鍵詞:工業(yè)互聯(lián)網(wǎng);ThingsBoard;傳感器;環(huán)境監(jiān)測;IoT
0 引言
在工業(yè)生產(chǎn)中,工廠環(huán)境直接影響產(chǎn)品質(zhì)量和產(chǎn)線工人的身體健康,因此需要對工廠環(huán)境比如溫度、濕度等進行實時監(jiān)測。隨著傳感器技術(shù)、工業(yè)互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,在數(shù)據(jù)監(jiān)控領(lǐng)域涌現(xiàn)出豐富的應(yīng)用。文獻[1]設(shè)計并實現(xiàn)一種基于海量異構(gòu)傳感器的物聯(lián)網(wǎng)水質(zhì)監(jiān)測系統(tǒng)。文獻[2]介紹一種基于新大陸AIoT的在線實訓(xùn)仿真平臺,能夠?qū)δ翀鰯?shù)據(jù)進行遠程實時監(jiān)控。文獻[3]提出了一種基于工業(yè)互聯(lián)網(wǎng)平臺的工廠環(huán)境監(jiān)測系統(tǒng)設(shè)計,但并未給出系統(tǒng)實現(xiàn)。這些系統(tǒng)基于工業(yè)互聯(lián)網(wǎng)平臺實現(xiàn)了不同場景的應(yīng)用。為了對工廠環(huán)境進行實時監(jiān)測,提高生產(chǎn)質(zhì)量,本文設(shè)計一種基于工業(yè)互聯(lián)網(wǎng)平臺的工廠環(huán)境監(jiān)測系統(tǒng),能夠?qū)崟r監(jiān)測車間的溫度、濕度等指標,并搭建環(huán)境進行系統(tǒng)驗證。
1 相關(guān)技術(shù)
1.1 傳感器及協(xié)議
傳感器是一種檢測裝置,能感受到被測量的信息,并能將感受到的信息,按一定規(guī)律變換成為電信號或其他所需形式的信息輸出[4]。在現(xiàn)代工業(yè)生產(chǎn)中,要用各種傳感器來監(jiān)視和控制生產(chǎn)過程中的各個參數(shù),使設(shè)備工作在最佳狀態(tài),并使產(chǎn)品達到最好的質(zhì)量。常見的傳感器有溫濕度傳感器、壓力傳感器、位置傳感器等,可以用來環(huán)境監(jiān)測溫濕度、管道壓力、物體位移等。本文采用溫濕度傳感器來監(jiān)測車間環(huán)境的溫濕度指標。
傳感器協(xié)議分為兩大類:1) 傳輸協(xié)議。常見的傳輸協(xié)議包括LoRaWAN和NB-IoT,負責子網(wǎng)內(nèi)設(shè)備間的組網(wǎng)及通信,運行在物理層/數(shù)據(jù)鏈路層[5]。2) 通信協(xié)議。常見的通信協(xié)議包括MQTT、CoAP、LwM2M、HTTP,運行在傳統(tǒng)互聯(lián)網(wǎng)TCP/IP協(xié)議之上,負責設(shè)備通過互聯(lián)網(wǎng)進行數(shù)據(jù)交換及通信。MQTT具有輕量、占用帶寬低的特點,適用于低功率設(shè)備、不可靠的工作網(wǎng)絡(luò)環(huán)境。MQTT使用訂閱/發(fā)布模式,將消息的發(fā)送方和接受方解耦。本文以MQTT協(xié)議作為傳感器上報數(shù)據(jù)的通信協(xié)議。
1.2 工業(yè)互聯(lián)網(wǎng)平臺
工業(yè)互聯(lián)網(wǎng)是新一代信息技術(shù)與工業(yè)系統(tǒng)深度融合形成的新領(lǐng)域、新平臺和新模式,是將工業(yè)系統(tǒng)與信息網(wǎng)絡(luò)高度融合而形成的互聯(lián)互通網(wǎng)絡(luò)。工業(yè)互聯(lián)網(wǎng)的核心是工業(yè)互聯(lián)網(wǎng)平臺,其承載了大量基于各種服務(wù)架構(gòu)的數(shù)字化模型。近年來,我國工業(yè)互聯(lián)網(wǎng)的熱潮涌動,各種工業(yè)互聯(lián)網(wǎng)平臺和新產(chǎn)業(yè)如雨后春筍般冒出,如華為FusionPlant、騰訊WeMake、徐工信息漢云等。同時也出現(xiàn)了比較活躍的開源項目,如ThingsBoard、JetLinks等。ThingsBoard 支持多種通信協(xié)議接入,如MQTT、CoAP、HTTP,采用微服務(wù)架構(gòu),具備較強的擴展性、容錯性和健壯性?;陂_源項目的研究可以快速搭建開發(fā)環(huán)境,代碼開發(fā),功能可控,方便按需求改造系統(tǒng)代碼。本文以ThingsBoard作為工業(yè)互聯(lián)網(wǎng)平臺的基礎(chǔ)開發(fā)框架。
2 系統(tǒng)功能設(shè)計
系統(tǒng)的主要功能包括6個模塊,分別為系統(tǒng)首頁、設(shè)備管理、設(shè)備配置、儀表板管理、賬號管理和系統(tǒng)管理。系統(tǒng)首頁設(shè)計為左菜單右內(nèi)容,用戶點擊菜單進入不同的功能頁面,其中最常用的功能是監(jiān)測大屏,展示各個車間傳感器的實時狀態(tài)。設(shè)備管理是整個系統(tǒng)的基礎(chǔ)數(shù)據(jù)來源,負責展示設(shè)備列表,新建設(shè)備,查看設(shè)備詳情如設(shè)備屬性、遙測數(shù)據(jù)、告警等,和傳感器通信時,需要在設(shè)備管理中配置設(shè)備ID和通信憑據(jù),驗證正確才能正常通信。設(shè)備配置模塊主要負責相同傳感器設(shè)備的通用配置,比如傳輸配置、告警規(guī)則等,避免出現(xiàn)相同設(shè)備重復(fù)配置的情況。設(shè)備配置和設(shè)備管理模塊緊密相連,每一個接入的設(shè)備都默認綁定一個設(shè)備配置。儀表板管理模塊聯(lián)系設(shè)備上報的遙測數(shù)據(jù)和系統(tǒng)大屏,使用內(nèi)置的儀表板直觀地展示遙測數(shù)據(jù),根據(jù)用戶的需要配置在系統(tǒng)大屏上實時展示。賬號管理負責用戶管理,包括用戶的注冊、登錄、退出和認證等,同時支持租戶管理。系統(tǒng)管理模塊主要維護系統(tǒng)的幫助信息、審計日志、API使用統(tǒng)計等。系統(tǒng)功能設(shè)計如圖1所示。
3 系統(tǒng)架構(gòu)
系統(tǒng)整體架構(gòu)包括3個部分:傳感器、工業(yè)互聯(lián)網(wǎng)平臺、應(yīng)用。1) 傳感器。該部分可以采集多種環(huán)境數(shù)據(jù),包括溫度、濕度、光照等,通過不同的傳輸協(xié)議如NB-IoT、Wi-Fi等,發(fā)送到工業(yè)互聯(lián)網(wǎng)平臺。支持常用的傳感器通信協(xié)議,包括MQTT、CoAP、LwM2M、HTTP等,只要是采用標準化通信協(xié)議的傳感器,都可以接入。2) 工業(yè)互聯(lián)網(wǎng)平臺。該部分是整個系統(tǒng)的核心,負責接收并處理傳感器數(shù)據(jù),并進行大屏展示、數(shù)據(jù)監(jiān)控、事件告警。各個服務(wù)采用微服務(wù)架構(gòu),根據(jù)業(yè)務(wù)合理進行服務(wù)拆分,實現(xiàn)服務(wù)的獨立部署、彈性伸縮。平臺接受和處理的消息來源于兩個方面:一方面是傳感器消息,另一方面是應(yīng)用消息。傳感器消息根據(jù)不同的通信協(xié)議,發(fā)送到不同協(xié)議的負載均衡組件,如MQTT負載均衡、HTTP負載均衡等,然后由負載均衡組件分發(fā)到設(shè)備消息服務(wù)處理。應(yīng)用消息分為兩類,一類是訪問靜態(tài)Web 頁面,一類是訪問REST API,也分別由各自的負載均衡組件處理,分發(fā)到UI服務(wù)和核心服務(wù)。需要說明的是,負載均衡是可選組件,在高負載的環(huán)境下使用負載均衡可以分散單個服務(wù)的壓力,而在低負載的環(huán)境下可以取消負載均衡,采用單機的方式部署,降低成本。在存儲方面,平臺采用關(guān)系型數(shù)據(jù)庫存儲設(shè)備列表、設(shè)備配置、儀表板、賬號信息等;采用非關(guān)系型數(shù)據(jù)庫存儲時序類數(shù)據(jù)如遙測數(shù)據(jù),便于數(shù)據(jù)的橫向擴展。3) 應(yīng)用。用戶可以通過瀏覽器方式對系統(tǒng)進行操作,配置傳感器接入,查看儀表盤數(shù)據(jù),并實時監(jiān)控車間環(huán)境數(shù)據(jù)。第三方應(yīng)用也可以使用API數(shù)據(jù)接口訪問平臺的數(shù)據(jù)。系統(tǒng)架構(gòu)設(shè)計如圖2所示。
4 系統(tǒng)開發(fā)及測試
基于上述系統(tǒng)架構(gòu)設(shè)計進行系統(tǒng)開發(fā),主要開發(fā)工具可分為如下幾類:平臺前端、平臺后端、數(shù)據(jù)存儲、容器部署。開發(fā)工具的詳細情況如表1所示。
4.1 工業(yè)互聯(lián)網(wǎng)平臺
開發(fā)工具準備好后,以ThingsBoard開源項目為基礎(chǔ),進行環(huán)境搭建和開發(fā)。參考步驟如下:1) 編譯項目源代碼。在編譯過程中可能會因為軟件版本導(dǎo)致各種編譯問題,可以采用分模塊編譯的方法,逐個模塊編譯解決。2) 特性開發(fā)。針對本項目的場景和需求,在開源項目代碼的基礎(chǔ)上完成項目特性的開發(fā)。3) 項目部署。項目的部署方式有2種:直接部署和容器化部署。為了提高系統(tǒng)部署效率,屏蔽系統(tǒng)部署的環(huán)境差異,本文采用Docker進行容器化部署。參考docker-compose配置文件如下所示:
系統(tǒng)登錄地址為http://${serverIP}:8080/,默認有三類用戶:系統(tǒng)管理員、租戶管理員和租戶,輸入對應(yīng)用戶的賬號和密碼即可登錄平臺。
4.2 創(chuàng)建傳感器
為了進行工廠環(huán)境監(jiān)測,計劃創(chuàng)建四個溫濕度傳感器,分別監(jiān)測四個車間的溫濕度。傳感器使用MQTT協(xié)議進行數(shù)據(jù)上報。首先在平臺側(cè)設(shè)備管理模塊添加四個傳感器設(shè)備,用來接收和展示傳感器的遙測數(shù)據(jù)。注意配置好通信協(xié)議為MQTT,以及協(xié)議參數(shù)如設(shè)備ID和Access-Token。隨后在傳感器側(cè)創(chuàng)建四個溫濕度傳感器,用來測量并發(fā)送溫濕度數(shù)據(jù)。為了便于測試,系統(tǒng)采用開源工具MQTTBox來進行傳感器模擬。MQTTBox 是一個帶有可視化的界面的MQTT協(xié)議的客戶端工具,支持發(fā)布和訂閱多個主題。創(chuàng)建MQTTClient時,需配置MQTT Client Id為平臺的設(shè)備ID,配置MQTT服務(wù)器Host為${serverIP}:1883,配置Username為平臺的Access-Token。配置正確后可以成功連接到平臺的1883端口,模擬的四個傳感器如圖3所示。
4.3 傳感器數(shù)據(jù)上報
工業(yè)互聯(lián)網(wǎng)平臺和傳感器都準備好后,就可以按照MQTT協(xié)議規(guī)范和數(shù)據(jù)格式要求,使用傳感器上傳四個車間的溫濕度數(shù)據(jù)。其中傳感器發(fā)布的主題為v1/devices/me/telemetry,發(fā)送的數(shù)據(jù)格式為Json,樣例數(shù)據(jù)為:{'humidity': 25,'temperature':25}。傳感器上報溫濕度數(shù)據(jù)后,可以在平臺側(cè)查看傳感器上報的數(shù)據(jù)信息,說明傳感器上報數(shù)據(jù)成功,平臺也成功收到了傳感器的上報數(shù)據(jù),如圖4所示。
4.4 查看車間環(huán)境監(jiān)測信息
在系統(tǒng)中定制大屏展示組件,展示所有車間的溫濕度情況。通過搭建ThingsBoard環(huán)境,模擬溫濕度傳感器,配置MQTT協(xié)議等步驟,打通了傳感器數(shù)據(jù)上報、處理、展示等整套流程,實現(xiàn)了對車間環(huán)境的實時監(jiān)控。經(jīng)過對實驗數(shù)據(jù)的分析總結(jié),系統(tǒng)基本功能滿足要求,車間環(huán)境監(jiān)測大屏效果如圖5所示。
5 結(jié)束語
本文在工業(yè)互聯(lián)網(wǎng)蓬勃發(fā)展的背景下,結(jié)合現(xiàn)代工業(yè)對工廠環(huán)境監(jiān)測的要求,設(shè)計一種基于工業(yè)互聯(lián)網(wǎng)平臺的工廠環(huán)境監(jiān)測系統(tǒng),并搭建開發(fā)環(huán)境,完成原型系統(tǒng)的開發(fā)實現(xiàn)。文章討論了系統(tǒng)的主要功能設(shè)計和整體架構(gòu),描述了傳感器和工業(yè)互聯(lián)網(wǎng)平臺的部署方式和交互過程,實現(xiàn)了車間環(huán)境數(shù)據(jù)的實時監(jiān)測和統(tǒng)一展示。系統(tǒng)支持多種通信協(xié)議接入,并具備良好的擴展性。下一步計劃拓展平臺的應(yīng)用場景,完成多種協(xié)議設(shè)備的接入,并實現(xiàn)和其他云平臺如中移動OneNet交互,研究告警推送、數(shù)據(jù)處理規(guī)則引擎配置等。