色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Mozilla軟件框架擴展物聯網網關

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-01-17 09:02 ? 次閱讀

網關設備使得云服務與物聯網 (IoT) 終端設備的關系變得更加緊密,加快了處理速度、減少了延時并能保持高利用率。但是,在設計網關時,開發人員很快就發現,他們需要厘清一系列容易混淆的硬件和軟件選項,才能將各種物聯網外設連接到云。

現在,使用來自 Mozilla 的 Raspberry Pi 和開源軟件,開發人員可以快速、高效地實現基于新興物聯網標準的網關。

為指導設計人員了解整個過程,本文首先簡要回顧網關在物聯網網絡中的作用、關鍵要求及相關實現挑戰,然后介紹標準的作用,重點說明萬維網聯盟 (World Wide Web Consortium) 描述物聯網中實體的方法。

最后重點向開發人員介紹如何使用 Mozilla 的 Raspberry Pi 3、無線插件和開源軟件快速部署網關。同時本文將特別介紹開發人員如何使用 Mozilla 軟件框架輕松擴展其網關,以支持任意數量的外設插件,從而滿足特定連接要求。

對網關的需求日益增長

在 Web 上,盡管瀏覽器平臺與服務器平臺的底層硬件和軟件存在很大差異,但通過使用標準協議,用戶能夠利用多種瀏覽器來聯系多種多樣的服務器。物聯網雖然是基于上述許多相同的標準協議而建立,但在實現可持續驅動 Web 的互操作性方面,面臨的挑戰要大得多。正如 Web 瀏覽器在請求標頭中標識自身身份及其功能一樣,物聯網設備也需要標準方法來標識其功能及其所提供數據的性質。

然而,在典型的多層物聯網架構中,實體的數量和類型可能非常復雜,特別是在包含傳感器和致動器的最低層。為了滿足這些設備的不同連接需求,網關設備已成為首選解決方案。憑借其支持多種有線和無線連接選項的能力,網關為復雜的物聯網系統提供關鍵服務。物聯網開發人員不僅利用網關多種多樣的連接能力,而且還通過網關在復雜的物聯網中提供更多實質性的服務,因此網關的作用得以顯著擴展。

網關的角色

網關設備最簡單的作用是緩沖高吞吐量云連接與成百上千的物聯網外圍設備之間的通信,這些外圍設備產生的數據流速率彼此各不相同,甚至相差多個數量級。如果無法連接到云,網關就可以向物聯網設備提供本地版本的云服務。相反,如果物聯網設備出于任何原因離線,網關可以向云提供虛擬物聯網設備,以模擬相應實體物聯網設備的基本功能和已知最新狀態。在任何一種情況下,即使連接中斷,較高級別的物聯網應用也能夠繼續正常運行。

物聯網邊緣設備通常不受物聯網外圍設備的實時和功率限制,因此可以利用高性能處理器架構,提供接近物聯網數據源的強大處理能力。物聯網專家通過將更加先進的云服務甚至是高級機器學習算法遷移到這些設備上,進一步利用這種本地處理能力,為本地進程提供更快的響應循環,或者減少上游流向云應用的數據流的大小。

Amazon Web Services IoT、IBM Watson IoT 和 Microsoft Azure IoT 等商用物聯網平臺在其端到端服務產品中都提供自己的專有接口和協議(圖 1)。然而,由于諸多原因,包括擔心被套牢或基于更廣泛的需求,物聯網應用開發人員繼續尋找能夠簡化更多不同物聯網設備和服務之應用的解決方案。

如何使用Mozilla軟件框架擴展物聯網網關

圖 1:諸如 Amazon Web Services (AWS) IoT 之類商用物聯網平臺使用低層互聯網標準來支持物聯網應用的每一層,但需要針對業界缺乏物聯網特定標準的現狀提供自己的解決方案。(圖片來源:Amazon Web Services)

盡管其他機構也在定義標準物聯網架構的元素,但萬維網聯盟 (W3C) 是定義物聯網標準的領導者。在其不斷演進的規范中,W3C 萬維物聯網 (WoT) 確立了一些關鍵接口,允許單個設備與網關、云服務器、Web 客戶端甚至另一個物聯網設備進行通信(圖 2)。

如何使用Mozilla軟件框架擴展物聯網網關

圖 2:W3C 通過一系列標準接口和數據模型來實現萬維物聯網的互操作性,例如封裝有每個設備信息的事物描述(三角形)。(圖片來源:W3C)

雖然 W3C 架構的細節超出本文范疇,但有幾個關鍵定義值得一提。最重要的其中一項是事物,它同時包含了一個物理設備及其元數據(或事物描述),在圖 2 中用小三角形表示。

事物描述不僅列出名稱和人類可讀描述等基本元數據,還可以憑借各種功能直接支持應用,包括數據分類、驗證以及其他實體可以調用的特定端點以執行該特定事物的獨特功能。

使用標準通信方法(圖 2 中的“WoT 綁定模板 (WoT Binding Templates)”),同一物聯網應用中的不同參與者只需要使用新設備或網關的事物描述,即可了解其使用方法及數據功能。借助其數據模型和應用編程接口 (API) 定義,Mozilla 為開發人員提供了用于構建此類互操作網關的首批可用框架之一。

Mozilla 網關

作為其 W3C WoT 工作的一部分,Mozilla 的事物網關規范包括針對事物描述的數據模型、相關事物類型,以及使用 WebSockets 或基本 REST 機制的簡單 API。Mozilla 的事物描述指定了基本元數據,包括名稱、類型、描述以及各種屬性,例如連網 LED 燈的“開”和“亮度”(列表 1)。

副本

{

"name":"My Lamp",

"type": "thing",

"description": "A web connected lamp",

"properties": {

“on": {

"type": "boolean",

"description": “Whether the lamp is turned on",

"href": "/things/lamp/properties/on"

},

"level" : {

"type": "number",

"description": "The level of light from 0-100",

"minimum" : 0,

"maximum" : 100,

"href": "/things/lamp/properties/level"

}

},

"actions": {

"fade": {

"description": "Fade the lamp to a given level",

"input": {

"type": "object",

"properties": {

"level": {

"type": "number",

"minimum": 0,

"maximum": 100

},

"duration": {

"type": "number",

"unit": "milliseconds"

}

}

},

"href": "/things/lamp/actions/fade"

}

},

"events": {

"overheated": {

"type": "number",

"unit": "celsius",

"description": "The lamp has exceeded its safe operating temperature",

"href": "/things/lamp/events/overheated"

}

},

"links": [

{

"rel": "properties",

"href": "/things/lamp/properties"

},

{

"rel": "actions",

"href": "/things/lamp/actions"

},

{

"rel": "events",

"href": "/things/lamp/events"

},

{

"rel": "alternate",

"href": "wss://mywebthingserver.com/things/lamp"

},

{

"rel": "alternate",

"mediaType": "text/html",

"href": "/things/lamp"

}

]

}

列表 1:Mozilla 網關事物描述使用標準 JSON 格式來描述事物及其功能。(代碼來源:Mozilla)

事物描述中的其他條目包含用于封裝不同操作(例如讓燈變暗)的更復雜對象。通過訪問事物描述中的“漸淡”操作,網關或其他實體就可以找到函數的入口點,以根據指定屬性(例如漸淡級別和持續時間)執行“漸淡”操作。因此,事物描述為識別物聯網設備和執行其設計的各種操作提供了一種標準方法。

為了與事物進行交互,開發人員可以使用熟悉的 REST Web 協議來讀取 (GET) 或寫入(PUT 或 POST)事物描述中定義的事物屬性。正常的 REST 響應進而將為請求的數據提供讀取或寫入操作的狀態。

例如,要在兩秒鐘的過渡時間內使 LED 亮度變淡至 50%,開發人員會將相應的 JSON 主體 POST 到關聯的漸淡端點,進而接收 201 響應和 JSON 主體,確認設備排隊的請求操作的屬性和狀態(列表 2)。

副本

POST https://mythingserver.com/things/lamp/actions/

Accept: application/json

{

"fade": {

"input": {

"level": 50,

"duration": 2000

}

}

}

201 Created

{

"fade": {

"input": {

"level": 50,

"duration": 2000

},

"href": "/things/lamp/actions/fade/123e4567-e89b-12d3-a456-426655"

"status": "pending"

}

}

列表 2:使用事物描述中指定的入口點和屬性,開發人員可以 POST 漸淡請求,進而接收 201 響應和 JSON 主體,確認請求操作的屬性和狀態。(代碼來源:Mozilla)

盡管 Mozilla 說明文檔提供了其數據模型和 API 的詳細描述,但要將此理論轉化為實際運作的網關,開發人員仍要編寫大量軟件包。幸運的是,Mozilla 通過提供設計用于 Raspberry Pi 系列的完整實現方案,解決了其規范在理論方面的問題。

網關平臺

如前所述,網關因其基本角色是提供多種連接選項以混合和匹配不同的物聯網外圍設備,所以網關設計要求相對較簡單。事實上,Raspberry Pi 系列為構建此類設備提供了有效的硬件基礎。最新版本的 Raspberry Pi 3 Model B+ 是該系列的升級版,同時顯著提高了有線和無線網絡的吞吐量。此外,此開發板基于四核 Arm? Cortex?-A53 應用處理器,為探索前文提到的復雜本地處理功能提供一個有效平臺。

無需完全使用 Raspberry Pi 3 Model B+ 的處理潛能,開發人員即可以探索基本的網關功能,只需在開發板上加載一個可從 Mozilla github 資料庫免費下載的固件映像即可。該固件實現了一個基本網關,開發人員只需將無線控制器適配器插入 Raspberry Pi 3 開發板的標準 USB 連接器,即可連接無線外設。Mozilla 軟件實現針對各種無線 USB 適配器(例如 Sigma Designs ACC-UZB3-U-STA Z-Wave USB 控制器)提供開箱即用的支持。

開發板接通電源后,軟件將引導開發人員完成一些基本的初始化步驟,然后立即開始在本地無線環境中搜索設備。通過使用 Web 接口,開發人員只需點擊按鈕即可將發現的設備連接到網關(圖 3A),然后查看或修改相應事物描述中定義的設備屬性(圖 3B)。

圖 3:Mozilla 的事物網關軟件可以讓用戶將事物輕松連接到其網關 (A),并根據其在事物描述中定義的功能,與各個設備進行交互 (B)。(圖片來源:Mozilla)

使用生態系統硬件增強網關

除了易于實現基本網關外,Raspberry Pi 生態系統與 Mozilla 開源代碼的組合還為開發人員提供了用于擴展基本設計的綜合環境。開發人員可以下載設計的完整源代碼包,以更好地了解網關操作,更改特定操作特性,甚至創建定制網關應用。該源代碼旨在運行于 Node.js 之上,展示了復雜網關軟件應用的每個組件的關鍵設計模式。

使用此開發平臺,開發人員可以借助大量可用的硬件擴展板,快速創建能夠支持廣泛連接選項的網關。例如,將 Pimoroni PIM213 Automation HAT 添加到 Raspberry Pi 開發板上,使網關能夠支持工業環境中所需的高電壓和高電流有線連接。

對于互聯網連接欠佳或無連接的操作環境,通過將 Raspberry Pi 開發板連接到配備 NimbleLink NL-SW-LTE-SVZM20 LTE CAT M1 模塊和 Taoglas Limited 4G LTE 天線的 NimbeLink NL-AB-RPI 開發板,為網關添加窄帶 LTE 連接。

開發人員的選擇不只局限于 Raspberry Pi 插件。他們還可以將不同的適配器卡插入其 Raspberry Pi 開發板,以訪問其他接口標準所提供的一系列插件。例如,使用 Seeed Technology 103990079 Arduino 適配器,Digi International XK-WDM 開發板可以將 Digi 的高能效 DigiMesh 網狀網絡連接功能添加到網關。對于需要標準網狀連接選項的應用,可插入 Digi 的 XKB2-Z7T-WZM Zigbee 開發板。

同樣,開發人員可以使用 Seeed 103010002 Grove 適配器,借助 Seeed 113060006 Grove LoRaWAN 開發板來支持 LoRaWAN 網狀網絡,或借助 Seeed 113060000 Grove 射頻鏈路插件來支持擴展覆蓋范圍的 Sub-GHz 網絡。

利用豐富的可用插件,開發人員可以快速擴充其硬件平臺,提供多種連接選項。在軟件方面,Mozilla 項目為實現支持新硬件所需的軟件接口提供了一套明確的要求和示例。

如要為事物網關構建插件,開發人員需要為三類實體提供代碼:設備、屬性和適配器。設備代碼通常會利用特定設備或設備類型所特有的屬性和方法(功能)擴展基本 Device 類。

例如,設備模塊可能包含與基本設備不同變體相關聯的獨立類 – 例如基本 LED 一個類和智能燈泡另一個類。Property(屬性)模塊將擴展基本 Property 類,以提供一組屬性類別,其中包含更新特定設備屬性的方法,例如 LED 的顏色或亮度(列表 3)。

副本

class TPLinkProperty(Property):

"""TP-Link property type."""

def __init__(self, device, name, description, value):

"""

Initialize the object.

device -- the Device this property belongs to

name -- name of the property

description -- description of the property, as a dictionary

value -- current value of this property

"""

Property.__init__(self, device, name, description)

self.set_cached_value(value)

.

.

.

class TPLinkBulbProperty(TPLinkProperty):

"""Property type for TP-Link smart bulbs."""

def set_value(self, value):

"""

Set the current value of the property.

value -- the value to set

"""

try:

if self.name == 'on':

self.device.hs100_dev.state = 'ON' if value else 'OFF'

elif self.name == 'color':

self.device.hs100_dev.hsv = rgb_to_hsv(value)

elif self.name == 'level':

self.device.hs100_dev.brightness = value

elif self.name == 'colorTemperature':

value = max(value, self.description['min'])

value = min(value, self.description['max'])

self.device.hs100_dev.color_temp = int(value)

else:

return

except SmartDeviceException:

return

self.set_cached_value(value)

self.device.notify_property_changed(self)

.

.

.

列表 3:在創建自己的網關插件軟件包時,開發人員可以找出關鍵設計模式,例如在此代碼片段中,展示了基于 Python 的針對 TP-Link 智能設備的事物網關插件中使用的 Property 類。(代碼來源:Mozilla)

最后,適配器模塊將擴展基本 Adapter 類,以提供類來初始化設備通信通道、支持網絡調試以及為其他設備或通信特定功能提供支持。

雖然主要網關包是針對 Node.js 采用 Javascript 實現的,但該平臺也正式支持 Python。不過,從概念上講,開發人員可以用任何合適的語言構建兼容的插件。例如,已有開發人員使用 Rust(Mozilla 類似 C++ 的存儲器安全語言)創建了插件。對于能夠使用現有 Node.js 后端的開發人員而言,這種相對簡單的插件方式提供了一種強大的功能,可快速創建能夠通過不同連接選項連接各種物聯網外圍設備的網關。

總結

對于物聯網網關,開發人員面臨的挑戰是確保不同物聯網設備、網關和服務器之間的互操作性。盡管相應標準機構正在快速制定物聯網互操作性的合適規范,但開發人員在很大程度上需要將規范轉化為可行的解決方案。

如本文所述,通過將 Mozilla 的事物網關軟件與 Raspberry Pi 3 結合使用,開發人員可以快速、高效地評估網關應用,并輕松擴展網關以支持不同的連接選項。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 適配器
    +關注

    關注

    8

    文章

    1960

    瀏覽量

    68100
  • 物聯網
    +關注

    關注

    2910

    文章

    44778

    瀏覽量

    374717
  • 無線
    +關注

    關注

    31

    文章

    5463

    瀏覽量

    173500
收藏 人收藏

    評論

    相關推薦

    干貨 智能網關聯網網關設計大全 精華集錦

    】CC2531 USB 評估模塊套件  【TI】CC2592 2.4GHZ 射頻范圍擴展器  【TI】DP83848J :PHYTER單端口以太網收發器  【Intel】聯網網關解決方案  【Intel
    發表于 09-23 15:51

    聯網網關是智能家居發展的重要支撐

      在無線傳感網中,聯網網關是不可或缺的核心設備。此外物聯網網關還需要具備設備管理功能,運營商通過聯網網關設備可以管理底層的各感知節點,
    發表于 11-18 16:52

    一個高智能化的聯網樞紐--聯網網關

    養殖聯網網關設計從水產養殖聯網架構可以看出網關聯網
    發表于 12-03 15:40

    【Tisan聯網申請】聯網網關

    申請理由:因項目需求,需要制作一個將產品接入互聯網的設備,看到該開發板剛好有該功能,免去了打樣板的過程,所以特申請一個!項目描述:項目:聯網網關方案:通過Tisan
    發表于 11-06 09:49

    工業無線MQTT聯網網關

    通博聯的工業聯網網關中有一款采用 MQTT 的聯網解決方案的工業無線MQTT
    發表于 02-07 14:00

    聯網網關

    聯網網關,將數據傳輸到云端。但是各種設備和云端服務器通信的時候由于協議不同,開發者需要開發各類后臺程序以配合數據的轉化和存儲。新的“支持和Web服務器通信的聯網網關可以直接使用PO
    發表于 10-30 16:40

    淺析Mbed Edge和聯網網關

    Mbed Cloud的聯網設備管理功能現已擴展,支持配置 Mbed Edge的聯網網關實現設備的接入、控制和管理。Mbed Edge具備
    發表于 07-22 07:10

    什么是聯網網關

    在Internet中,網關是一種連接內部網與Internet上其它網的中間設備,也稱“路由器”,而在聯網的體系架構中,在感知層和網絡層兩個不同的網絡之間需要一個中間設備,那就是“
    發表于 10-30 06:17

    聯網網關是什么?聯網網關關鍵技術有哪些?

    聯網網關是什么?聯網網關的形態聯網網關關鍵技術有哪些?
    發表于 04-19 10:03

    聯網網關在未來的聯網中有什么作用?

    聯網的接入方式有哪幾種?聯網網關具備哪幾個功能?聯網網關在未來的
    發表于 06-16 09:36

    求一種基于樹莓派的低功耗聯網聯網設備的解決方案

    如何快速高效地實現一種基于新興聯網標準的網關?如何使用Raspberry Pi 3、無線插件和開源軟件快速部署網關?如何使用
    發表于 06-28 06:38

    工業聯網網關是什么?工業聯網網關有什么作用?

    工業聯網網關聯網系統之中十分重要的一環,對于工業設備來說聯網網關就是和外界溝通的橋梁。工
    發表于 01-21 19:00

    Mozilla宣布開放聯網網關

    蘋果,谷歌,亞馬遜和三星都在努力創建自己的標準來控制家中的所有連接設備。而Mozilla剛剛宣布,現在任何人都可以創建一個開放的網關來控制聯網。該組織還確認,它目前在制定一套
    發表于 03-12 01:22 ?692次閱讀

    什么是聯網網關聯網網關的功能有哪些

    什么是聯網網關? 隨著聯網的發展,企業發現自己面臨著集成多種設備和協議的挑戰,其中許多設備和協議具有不同的功率和連接要求。這種組合還可能包括遺留技術。
    發表于 10-30 14:15 ?3189次閱讀

    聯網網關有什么作用,如何工作?

    聯網網關是用作云和之間的連接點的物理設備或軟件程序控制器,傳感器和智能設備。聯網設備和云之間移動的所有數據都通過
    的頭像 發表于 12-28 09:24 ?2398次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網網關</b>有什么作用,如何工作?
    主站蜘蛛池模板: 国产在线一卡二卡| 99视频在线国产| 九九电影伦理片| xxx性欧美在线| 亚洲理论片在线中文字幕| 全部老头和老太XXXXX| 久久国产加勒比精品无码| 国产精品99久久久久久AV蜜臀| 4455永久在线毛片观看| 亚洲裸舞 hd| 色偷偷男人的天堂a v| 欧美.亚洲.日韩.天堂| 久草色在线| 国产午夜精品理论片在线| 超碰最新网站| 97精品在线播放| 曰本真人00XX动太图| 亚洲黄视频在线观看| 少妇高潮惨叫久久久久久电影| 男总裁憋尿PLAY灌尿BL| 久久久久国产一级毛片高清片| 国产色婷婷精品人妻蜜桃成熟| 成人国产在线24小时播放视频| 最新无码专区在线视频| 亚洲色图激情小说| 亚州中文字幕| 午夜免费啪视频观看视频| 色婷婷综合久久久中文字幕| 日本久久和电影| 青柠在线观看免费播放电影| 男插女高潮一区二区| 李亚男三级| 久久视频这有精品63在线国产| 果冻传媒2021在线观看| 国内精品国内自产视频| 国产一区在线观看免费| 国产午夜免费视频片夜色| 国产乱人伦AV麻豆网| 国产精品免费视频能看| 国产精品久久久久婷婷五月色| 光棍天堂在线a|