亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Node.js的物聯(lián)網(wǎng)網(wǎng)關系統(tǒng)的分層設計方法

        2018-10-15 06:08:20,
        關鍵詞:局域網(wǎng)視圖網(wǎng)關

        ,

        (華中科技大學 自動化學院,武漢 430074)

        引 言

        物聯(lián)網(wǎng)是在傳統(tǒng)互聯(lián)網(wǎng)基礎上進行了衍生和擴展,使生活中的物品可以通過網(wǎng)絡互連,進行數(shù)據(jù)交互。在物聯(lián)網(wǎng)中,設備通過自組織的模式構(gòu)建無線網(wǎng)絡,提供實現(xiàn)人與物、物與物之間的通信。不足的是,物聯(lián)網(wǎng)中通信協(xié)議多種多樣,各種感知技術和通信協(xié)議沒有統(tǒng)一的標準[1],感知網(wǎng)絡與以太網(wǎng)之間很難通信,而且物聯(lián)網(wǎng)中一些通信協(xié)議無法遠距離傳輸數(shù)據(jù)。因而,在物聯(lián)網(wǎng)發(fā)展的過程中,產(chǎn)生了一種新型的網(wǎng)元設備——物聯(lián)網(wǎng)網(wǎng)關。

        物聯(lián)網(wǎng)網(wǎng)關可以實現(xiàn)感知網(wǎng)絡與通信網(wǎng)絡,以及不同類型感知網(wǎng)絡之間的協(xié)議轉(zhuǎn)換,既可以實現(xiàn)廣域互聯(lián),也可以實現(xiàn)局域互聯(lián)。另一方面,物聯(lián)網(wǎng)網(wǎng)關能夠?qū)⒉煌O備收集到的信息整合起來,實現(xiàn)對終端設備的統(tǒng)一管理和控制。此外,物聯(lián)網(wǎng)的一些應用場景(如智能家居),需要點對點連接,不利于數(shù)據(jù)安全傳輸。

        Node.js[2]是一個基于Chrome V8引擎的JavaScript運行環(huán)境。目前,Node.js主要用于構(gòu)建Web應用[3],將Node.js用于物聯(lián)網(wǎng)設備端連接的應用還不多。通過事件驅(qū)動、非阻塞式I/O模型,Node.js可以處理數(shù)萬條連接[11]。而物聯(lián)網(wǎng)中數(shù)據(jù)的顯著特點是海量、周期性強、隨著終端設備數(shù)量的增長而增多[9]。因此,可以使用Node.js構(gòu)建能夠承受大量持續(xù)的并發(fā)訪問請求的網(wǎng)關系統(tǒng),提高系統(tǒng)的吞吐量和執(zhí)行效率。

        Node.js的事件驅(qū)動模型與物聯(lián)網(wǎng)開發(fā)中通常采用的中斷響應模型作用一致,而且Node.js通過單線程異步執(zhí)行程序,相比多進程或者多線程的編程方式,Node.js可以更加高效地使用內(nèi)存資源。

        Node.js是跨平臺的,即同樣的JavaScript代碼可以部署運行在Windows、Linux、OSX等平臺,所以使用Node.js開發(fā)的網(wǎng)關可以很容易部署到嵌入式Linux平臺。JavaScript支持JSON數(shù)據(jù)格式,目前各種云服務和數(shù)據(jù)傳輸都是基于JSON數(shù)據(jù)格式實現(xiàn)的,當物聯(lián)網(wǎng)網(wǎng)關采用JavaScript開發(fā)時,可以對接互聯(lián)網(wǎng)上海量的云服務與云資源[10]。

        目前,JavaScript腳本語言已經(jīng)可以用于物聯(lián)網(wǎng)終端設備的開發(fā)。Espruino 是一個專門為微控制器設計的JavaScript解釋器。Duktape是一個輕量級的嵌入式JavaScript引擎,專注于可移植性和低占用率[4]。JerryScript是由三星開發(fā)的一個小型的適用于嵌入式設備JavaScript引擎[5]。如果使用JavaScript同時進行物聯(lián)網(wǎng)節(jié)點和網(wǎng)關的開發(fā)[8],可以明顯提高開發(fā)效率,緩解當前物聯(lián)網(wǎng)系統(tǒng)開發(fā)周期長、代價大等問題。

        1 網(wǎng)關系統(tǒng)設計

        1.1 網(wǎng)關功能需求分析

        作為物聯(lián)網(wǎng)中感知層和傳輸層的紐帶,物聯(lián)網(wǎng)網(wǎng)關需要滿足以下功能需求[3]:

        ① 數(shù)據(jù)感知功能:網(wǎng)關能夠感知接收物聯(lián)網(wǎng)節(jié)點發(fā)送的數(shù)據(jù);

        ② 廣泛的接入能力:目前物聯(lián)網(wǎng)常用的應用層協(xié)議有多種,網(wǎng)關能夠兼容多種應用層協(xié)議,實現(xiàn)不同物聯(lián)網(wǎng)節(jié)點互聯(lián)互通;

        ③ 協(xié)議轉(zhuǎn)換能力:將下層標準格式的數(shù)據(jù)統(tǒng)一封裝,保證不同協(xié)議變成統(tǒng)一的數(shù)據(jù)和信令,將下發(fā)的數(shù)據(jù)包解析成相應協(xié)議可以識別的控制命令;

        ④ 設備管理能力:物聯(lián)網(wǎng)的節(jié)點數(shù)量多,通過網(wǎng)關對節(jié)點設備進行狀態(tài)查詢、監(jiān)控、配置等;

        ⑤ 云接入能力:通過將網(wǎng)關接入云端,實現(xiàn)遠程控制、數(shù)據(jù)存儲、數(shù)據(jù)分析等功能。

        1.2 網(wǎng)關系統(tǒng)平臺

        物聯(lián)網(wǎng)網(wǎng)關平臺使用Raspberry Pi 3B,由于Linux的內(nèi)核小、效率高,適應多種CPU和硬件平臺,而且Node.js可以很容易部署到Linux上,所以在Raspberry Pi上運行嵌入式Linux操作系統(tǒng)作為實現(xiàn)網(wǎng)關功能的基礎,然后使用Node.js擴展出網(wǎng)關所需要的各個功能模塊,實現(xiàn)網(wǎng)關與互聯(lián)網(wǎng)和傳感器網(wǎng)絡的數(shù)據(jù)信息交互。

        1.3 網(wǎng)關結(jié)構(gòu)設計

        1.3.1 網(wǎng)關系統(tǒng)架構(gòu)

        根據(jù)網(wǎng)關在物聯(lián)網(wǎng)中的作用,采用分層設計方法將網(wǎng)關分為感知層、模型層、視圖層。各層之間的數(shù)據(jù)傳遞是相互的、可控制的[7]。圖1是網(wǎng)關系統(tǒng)的三層架構(gòu)圖。

        圖1 網(wǎng)關系統(tǒng)架構(gòu)圖

        1.3.2 感知層

        感知層主要作用是感知物聯(lián)網(wǎng)節(jié)點設備的工作參數(shù),并根據(jù)需要改變設備的工作狀態(tài)。在物聯(lián)網(wǎng)系統(tǒng)中,數(shù)據(jù)交換主要依靠應用層協(xié)議來解決。目前常見的物聯(lián)網(wǎng)應用層協(xié)議有CoAP[6]、MQTT、LwM2M、AMQP等,因此在感知層需要集成不同應用層協(xié)議的服務端,以感知接收不同設備的請求,同時當網(wǎng)關接收到下達命令時,調(diào)用相應的服務端向設備發(fā)送控制命令。

        1.3.3 模型層

        模型層是整個物聯(lián)網(wǎng)網(wǎng)關的核心,主要完成對上傳數(shù)據(jù)和下達命令的解析,并實現(xiàn)兩者之間的相互轉(zhuǎn)換,以實現(xiàn)對物聯(lián)網(wǎng)節(jié)點的統(tǒng)一控制和管理,同時向上屏蔽底層通信協(xié)議的異構(gòu)型。當視圖層下達控制命令時,模型層解析命令并調(diào)用相應模塊,將命令轉(zhuǎn)換成終端設備能夠理解的數(shù)據(jù)格式。當感知層接收到上傳數(shù)據(jù)時,該層解析消息并將數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)格式。同時,模型層將設備數(shù)據(jù)進行緩存,并周期性地將緩存數(shù)據(jù)存儲到數(shù)據(jù)庫,并清理緩存。

        物聯(lián)網(wǎng)中設備數(shù)據(jù)不間斷地生成,并且數(shù)據(jù)量大,無法將這些數(shù)據(jù)存儲到網(wǎng)關,而且部分數(shù)據(jù)有很大的研究價值。因此,可以利用云技術管理并支撐基于大數(shù)據(jù)的新型智能應用。

        為了實現(xiàn)與視圖層的數(shù)據(jù)交互,在模型層加入HTTP、WebSocket兩個子模塊,其中通過HTTP協(xié)議請求頁面,使用WebSocket協(xié)議實現(xiàn)長連接。此外,在模型層實現(xiàn)了AWS IoT平臺的客戶端,將數(shù)據(jù)上傳到AWS云實現(xiàn)遠程控制、云端數(shù)據(jù)存儲和數(shù)據(jù)分析等功能。圖2是模型層結(jié)構(gòu)圖。

        圖2 模型層結(jié)構(gòu)圖

        1.3.4 視圖層

        視圖層即用戶界面,把物聯(lián)網(wǎng)設備的工作狀態(tài)顯示給用戶,同時用戶可以輸入指令以控制設備。其中,當用戶處于局域網(wǎng)環(huán)境下,可以直接登陸局域網(wǎng)查看數(shù)據(jù);當處于外網(wǎng)時,主要通過云端查看數(shù)據(jù)。視圖層使用Freeboard實現(xiàn),在其中實現(xiàn)了WebSocket和AWS IoT的客戶端。相比傳統(tǒng)的網(wǎng)關系統(tǒng),視圖層可以使網(wǎng)關不受網(wǎng)絡環(huán)境限制,隨時查看網(wǎng)關和設備運行狀態(tài)。

        1.4 物聯(lián)網(wǎng)網(wǎng)關的信息交互流程

        圖3為網(wǎng)關的整體工作流程圖。具體流程如下:

        ① 初始化感知層各個服務端模塊,初始化模型層數(shù)據(jù)緩沖區(qū)。

        ② 感知層接收到物聯(lián)網(wǎng)節(jié)點上傳的數(shù)據(jù),數(shù)據(jù)被緩存到Redis數(shù)據(jù)庫,然后由模型層進行數(shù)據(jù)的解析和轉(zhuǎn)換。最后上傳到AWS IoT和視圖層的WebSocket客戶端。當用戶網(wǎng)關與Freeboard處于同一局域網(wǎng)環(huán)境下,F(xiàn)reeboard通過WebSocket客戶端直接查看數(shù)據(jù)。當處于不同網(wǎng)絡環(huán)境下,F(xiàn)reeboard從AWS IoT提取數(shù)據(jù)顯示。

        ③ 視圖層下達控制命令時,數(shù)據(jù)首先被緩存到Redis數(shù)據(jù)庫,當用戶與網(wǎng)關處于同一局域網(wǎng)環(huán)境下,數(shù)據(jù)由模型層進行解析和轉(zhuǎn)換,然后下發(fā)給物聯(lián)網(wǎng)節(jié)點設備。當處于不同網(wǎng)絡環(huán)境下,視圖層通過AWS IoT的客戶端將命令發(fā)送給云端,然后由云端將命令發(fā)送給模型層,再由模型層進行解析和轉(zhuǎn)換,最后下發(fā)給物聯(lián)網(wǎng)節(jié)點設備。

        ④ 系統(tǒng)周期性讀取Redis數(shù)據(jù)庫緩存的數(shù)據(jù),然后進行處理,最后清除Redis數(shù)據(jù)庫緩存的數(shù)據(jù)。

        2 系統(tǒng)測試和實驗

        在智能家居場景下搭建了一個物聯(lián)網(wǎng)系統(tǒng)。該系統(tǒng)包含兩個節(jié)點:節(jié)點一(CN)是一個臺燈,可以在界面上顯示和控制臺燈的開關狀態(tài);節(jié)點二(WN)有溫度傳感器、運動傳感器、測量心率的傳感器。為了方便驗證網(wǎng)關的功能,實驗中使用Node.js模擬節(jié)點,不斷地向網(wǎng)關發(fā)送數(shù)據(jù)。

        圖3 網(wǎng)關工作流程圖

        根據(jù)用戶所處的網(wǎng)絡環(huán)境,系統(tǒng)測試分別在家庭局域網(wǎng)環(huán)境和外網(wǎng)環(huán)境下進行。首先在家庭局域網(wǎng)環(huán)境下,運行網(wǎng)關程序,訪問地址http://127.0.0.1,即可查看本地設備數(shù)據(jù)。圖4顯示局域網(wǎng)環(huán)境下節(jié)點的工作狀態(tài):其中本地連接是一個可控制按鈕,可以控制本地連接通斷,警報欄顯示的是具體的數(shù)值和狀態(tài)判斷,體征欄顯示的是體溫和心率曲線,睡眠欄顯示的是運動量和根據(jù)運動量計算的睡/醒狀態(tài)。

        圖4 局域網(wǎng)環(huán)境下節(jié)點工作狀態(tài)

        當點擊本地連接按鈕時,可以改變本地連接的狀態(tài)。PC通過PuTTY訪問樹莓派,圖5所示為當點擊本地連接按鈕時網(wǎng)關打印的日志。

        圖5 網(wǎng)關日志

        在外網(wǎng)環(huán)境下,通過云端訪問數(shù)據(jù),其中網(wǎng)頁部署到Github,根據(jù)部署時生成的網(wǎng)址(http://wangnuannuan.github.io/ibaby-python)訪問界面。圖6所示為外網(wǎng)環(huán)境下節(jié)點工作狀態(tài)。

        實驗中虛擬節(jié)點分別采用不同的應用層協(xié)議接入網(wǎng)關,實現(xiàn)與網(wǎng)關的數(shù)據(jù)交互。首先節(jié)點設備向網(wǎng)關發(fā)送數(shù)據(jù),以驗證網(wǎng)關是否能夠接收不同設備的請求,并正確處理數(shù)據(jù),然后在網(wǎng)關的視圖層點擊按鈕,驗證節(jié)點設備是否能接收到網(wǎng)關的命令。

        根據(jù)實驗得出,網(wǎng)關可以感知接收不同設備的數(shù)據(jù)并正確顯示,同時實時顯示更新狀態(tài),并能響應視圖層用戶的控制命令。

        圖6 外網(wǎng)環(huán)境下節(jié)點工作狀態(tài)

        結(jié) 語

        猜你喜歡
        局域網(wǎng)視圖網(wǎng)關
        基于改進RPS技術的IPSEC VPN網(wǎng)關設計
        基于VPN的機房局域網(wǎng)遠程控制系統(tǒng)
        電子制作(2019年16期)2019-09-27 09:35:04
        基于802.1Q協(xié)議的虛擬局域網(wǎng)技術研究與實現(xiàn)
        電子制作(2017年17期)2017-12-18 06:40:48
        5.3 視圖與投影
        視圖
        局域網(wǎng)性能的優(yōu)化
        電子制作(2017年8期)2017-06-05 09:36:15
        Y—20重型運輸機多視圖
        SA2型76毫米車載高炮多視圖
        LTE Small Cell網(wǎng)關及虛擬網(wǎng)關技術研究
        移動通信(2015年18期)2015-08-24 07:45:08
        應對氣候變化需要打通“網(wǎng)關”
        太陽能(2015年7期)2015-04-12 06:49:50
        亚洲精品成人网线在线播放va| 国产精品国产三级国产an不卡| 精品亚洲第一区二区三区| 亚洲第一最快av网站| 男女肉粗暴进来120秒动态图| 亚洲专区一区二区在线观看| 日本美女性亚洲精品黄色| 2020亚洲国产| 日本中文字幕人妻精品| 中文字幕人成人乱码亚洲av| 亚洲av无码久久精品蜜桃| 精品国产一级毛片大全| 午夜香蕉av一区二区三区| 免费视频一区二区三区美女| 伊人中文字幕亚洲精品乱码| 蜜臀av性久久久久蜜臀aⅴ| 亚洲天堂成人在线| 久久亚洲av午夜福利精品西区| 亚洲精品久久区二区三区蜜桃臀 | 国产成人久久精品流白浆| 精品人妻av一区二区三区四区| 亚洲日韩国产av无码无码精品| √天堂中文官网8在线| 国产美女a做受大片免费| 中国亚洲av第一精品| 久久亚洲精品成人av无码网站| 国产亚洲精品久久久久久久久动漫| 亚洲AV秘 无套一区二区三区 | 91国产熟女自拍视频| 国产毛多水多高潮高清| 亚洲av无码乱码国产精品fc2 | 亚洲的天堂av无码| 亚洲24小时在线免费视频网站| 亚洲av综合色区一区二区| 欧美精品黑人粗大免费| 日韩欧美中文字幕公布| 亚洲国产天堂av成人在线播放| 成人av毛片免费大全| 久久婷婷五月综合97色一本一本| 国内精品九九久久久精品| 中国少妇和黑人做爰视频|