精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

一張圖讀懂基于微信硬件平臺的物聯網架構

責任編輯:editor005

作者:yueqian_scut

2015-10-16 14:20:37

摘自:CSDN博客

本文從物聯網的核心要素、物聯網的關鍵場景、微信硬件平臺的通信協議分析三個維度去分析基于微信硬件平臺的物聯網架構。微信硬件平臺確保設備的唯一性,微信公眾平臺確保微信用戶的唯一性,兩者通過關注和綁定這個流程建立起完全權利的訪問關系。

本文從物聯網的核心要素、物聯網的關鍵場景、微信硬件平臺的通信協議分析三個維度去分析基于微信硬件平臺的物聯網架構。相關的背景知識請閱讀微信公眾號:嵌入式企鵝圈發布的有關物聯網和微信硬件專題文章。

一、 基于微信硬件平臺的物聯網架構圖示

  上圖涵蓋以下信息:

1. 基于微信硬件平臺的物聯網的架構組成,有微信公眾平臺/硬件平臺、第三方廠商云后端、手機微信/公眾號、微信硬件設備終端(Wifi和藍牙BLE)。

2. 綠色代表騰訊向開發者和公眾提供的基礎平臺和服務,并通過紅色(airsync/airkiss)定義的硬件外設協議供硬件設備接入,紅色(微信硬件平臺接入協議,XML/JSON)供廠商云后端接入;藍牙和紫色區域代表開發者所要完成的任務,其中藍牙是嵌入式硬件設備終端的任務,紫色是第三方廠商云后端的任務。

3. 物聯網各個組成部分之間的通信協議標識。除了紅色標識的協議是微信公眾平臺和硬件平臺制定的協議必須遵循外,其他組成部分的協議都是自定義的協議。

4. Wifi模組的供應商提供的SDK一般都提供socket通信接口,而云后端一般會使用JSP/PHP等web編程技術,因此wifi設備需要模擬HTTP協議跟云終端通信。HTTP是一個標準的公共的通信協議,應用層需要在HTTP之上建立自定義的應用協議來完成設備的控制和交互,而應用協議可以是XML/JSON等等。當然,如果云后端使用底層的socket編程,則wifi設備終端可以不需要模擬http。

5. 藍牙通過airsync協議接入微信,該協議規定了設備發現、綁定、登陸、初始化、接收用戶指令、主動發送消息等過程。

6. Airkiss是通過JSAPI的方式讓用戶可以在微信上輸入路由器的用戶名和密碼,然后告知沒有按鍵輸入和屏幕顯示的wifi設備,讓該設備能夠連上路由器進入網絡在線狀態。除此之外,Airkiss跟之后用戶和廠商、設備的交互完成沒有關系。本質上,Airkiss只是一個配置上網功能,跟物聯網的控制和交互無關。

7. Wifi設備接入微信硬件平臺是遠場控制,設備只要處于聯網在線狀態,那手機用戶無論在哪里,只要能上網都可以對設備進行控制,典型的例子是在公司上班可以通過手機控制家里的智能插座上電;藍牙設備接入微信硬件平臺必須依賴于手機,是近場控制,典型的場景是手機控制家里的燈和空調等。

二、物聯網的核心要素

本文是從開發者的角度去分析整個微信硬件平臺物聯網,不去探討物聯網運營之類等領域。那么,從開發的角度,物聯網的核心要素什么,微信平臺又支持了什么?我的理解是:

1. 設備的合法性和唯一性

微信硬件平臺在物聯網領域做的事情其實不多,只要仔細想想架構圖中的這么多的紫色和藍色都是留給開發者,而且都是要赤裸裸的編程。對于一般的設備商,他們想接入也是勉為其難啊。在這個體系架構中,微信硬件平臺做的最重要的一件事情就是身份認證。

就像一個人出生后要辦一張身份證(出生證明的號碼也是身份證號碼)一樣,設備生產出來要想進入微信硬件領域,它就必須到微信硬件平臺注冊自己的身份,那它拿什么去注冊呢,這個依據自然應該是獨一無二的,就像每個人的指紋,如果我國的小孩辦身份證都以錄指紋為依據,那就不會出現那么多拐賣兒童了。現在公安局的做法是什么,是硬生生地把一串身份證數字跟人名綁在一起,跟自然人的生物特征沒有一丁點關系!!!設備的獨一無二的依據就是48位的MAC地址(或者是MAC地址通過某種加密運算得到的結果)。

接著辦身份證/出生證不是要給小孩起個名字嗎,以后大家交流就叫名字了,公安局也是叫名字的嘛,不可能每次喊話都把指紋的二進制數字讀出來的啊。嗯,那硬件設備注冊時也要報備自己的名字,即設備ID。設備ID也應該在微信硬件平臺唯一啊,不然會亂的。就像MAC地址一樣,有一部分是代表一個設備提供商向世界IETF組織申請的企業識別字段,另一部分是設備商內部的分配。或者像身份證那樣,前面6個字段是代表一個人出生時的縣區行政區劃碼,后面的數字才代表自身,但同時要保證在這個行政區里面的唯一性。那微信硬件平臺怎么規范設備身份?設備身份包括兩個部分,deviceType是設備商/銷售商的微信公眾號的原始ID,deviceID由設備商/銷售商自定義,由設備商保證deviceID在其deviceType中的唯一性。

這就是設備的注冊場景。設備注冊了以后在微信硬件平臺就具有合法性和唯一性了。

2. 設備被訪問的合理性和正當性

設備最終是應該和人/手機用戶交互的,否則就失去了物聯的意義了。那么哪個用戶能夠訪問這個設備呢?

微信用戶要關注設備商的微信公眾號和綁定設備才能對設備進行訪問。如果不綁定就可以訪問,那就是所有用戶都能夠訪問這個設備,這顯然是不合理的。你買的智能插座放家里,另一個人也能控制你的插座,多危險。

微信硬件平臺確保設備的唯一性,微信公眾平臺確保微信用戶的唯一性,兩者通過關注和綁定這個流程建立起完全權利的訪問關系。

微信硬件平臺是微信公眾平臺的一個子集,微信硬件平臺會利用微信公眾平臺已有的功能來完成基礎服務。

3. 設備和用戶交互的消息觸達能力

設備要成為物聯網中的一員,必須能夠聯網,好比人體的神經元,具有能夠和外界交流的能力。

微信硬件平臺主要從云后端接入和硬件接入兩方面作出努力。一是通過airsync協議讓藍牙設備和微信互通,airkiss協議讓簡單的沒有按鍵和UI交互的wifi設備聯網;二是通過制定云后端接入協議來接納廠商云,通過消息接口和API接口使用戶和設備的消息能夠相互觸達。即設備發出的消息經過微信平臺發送到廠商云,廠商云的消息也能主動推送給設備,完成交互。

4. 效率

掃一掃功能對微信的影響是巨大的,加關注,好友,移動支付等等都通過二維碼來完成,設備綁定是二維碼。微信硬件平臺和公眾平臺產生的二維碼關聯了用戶、設備ID等信息,通過掃一掃功能能方便地進行綁定,接入進入公眾號的消息界面。

物聯網涉及到終端、前端和后端等等,是一個大工程,無論從開發的角度,還是從用戶使用的角度,都要始終強調便捷的效率,以讓用戶有足夠好的體驗,才能使得物聯網得以壯大。

5. 消息處理能力—嵌入式系統

這一點并沒有在物聯網架構的圖示中出現。物聯網決不僅僅是一種控制,例如開燈和關燈之類,也不僅僅是簡單的通過各種傳感器來進行數據采集,未來的物聯網一定會讓用戶不斷地提高用戶體驗,例如多媒體、虛擬與實現、數據決策等等,這部分是由高級的嵌入式系統來完成的。嵌入式系統才是設備的大腦,物聯網應該更好地擁抱嵌入式系統。

三、物聯網場景分析和通信協議分析(近場藍牙控制方案)

1.注冊

上面已有說明

2.用戶綁定

上面已有說明

3.連接

用戶在綁定過程中會自動完成對提供設備的廠商的微信公眾號的關注。在以后每次進入公眾號時,會自動通過手機藍牙對藍牙設備進行掃描連接。只有完成airsync協議的藍牙設備才能連上微信。例如藍牙設備廣播的字段里面要聲明自己的MAC地址,這樣微信能識別到這個一個要接入微信的藍牙設備,然后才會主動地連接它。

4.控制(菜單控制)

1)用戶點擊微信公眾號提供的菜單,如開燈。

2)消息通過微信公眾平臺發送給廠商云后端。

3)云后端在自己的數據庫內驗證微信用戶和設備的有效性后,將微信菜單的開燈消息轉化為自定義協議的開燈消息(這個協議只有云后端和外設設備所認識),并根據airsync中的protobuf協議對消息體進行打包封裝,最后通過調用微信硬件平臺提供的API接口主動推送出去。

4)微信硬件平臺收到信息后通過微信公眾平臺回傳給微信用戶所在的公眾號。

5)微信將這個消息根據airsync協議通過手機藍牙發送藍牙外設。

6)藍牙外設收到消息進行相應的處理。

從這個過程來看,直接的菜單控制走的流程太長了,影響效率。下面介紹的JSAPI控制就是直接控制,不需要再通過廠商云來發指令。

5. 控制(H5/JASPI控制)

1)用戶點擊微信公眾號提供的H5網頁鏈接

2)微信瀏覽器通過H5地址向廠商云后端請求響應,返回H5頁面。

3)用戶點擊H5頁面的開燈button

4)button通過JSAPI接口直接向藍牙設備發出自定義的控制消息,JSAPI藍牙接口已經封裝好airsync協議。

5)藍牙設備收到消息進行相應的處理。

四、物聯網場景分析和通信協議分析(遠場wifi控制方案)

1.注冊

上面已有說明

2.用戶綁定

上面已有說明

3.連接

由于用戶和wifi設備并不在一個區域,而是通過網絡來連接,因此用戶是不直接跟wifi設備打交道的,所有的交互都給通過wifi設備商的云后端進行間接交互。(之前已經說了airkiss只是微信提供的一個配置上網功能,wifi設備經過一次配置后,以后會記住這個路由器的ssid和pwd的,所以配置好一次后,airkiss跟物聯網交互一點關系都沒有,因此airkiss不應該算在物聯網的消息觸達協議內)。

用戶進入wifi設備對應的公眾號后,微信公眾號會通過微信公眾平臺向廠商云訂閱和咨詢設備的在線狀態。因此設備一上線時應該主動聯系廠商云后端,告知自己上線了,并不時地發送心跳包維持連接。這樣微信公眾號一訂閱請求,云就返回設備的狀態給它。

假設設備在線,云后端返回在線狀態,微信公眾號就會顯示設備連接上。

4. 控制(菜單控制)

1)用戶點擊微信公眾號提供的菜單,如開燈。

2)消息通過微信公眾平臺發送給廠商云后端。

3)云后端在自己的數據庫內驗證微信用戶和設備的有效性后,將微信菜單的開燈消息轉化為自定義協議的開燈消息(這個協議只有云后端和外設設備所認識),然后直接通過網絡發給wifi設備。

4)wifi外設收到消息進行相應的處理。

5. 控制(H5控制)

1)用戶點擊微信公眾號提供的H5網頁鏈接

2)微信瀏覽器通過H5地址向廠商云后端請求響應,返回H5頁面。

3)用戶點擊H5頁面的開燈button

4)button通過AJAX接口向廠商云后端發出自定義的控制消息。

5)廠商云接收到消息會轉化硬件控制消息,直接通過網絡發給wifi設備。

6)wifi設備收到消息進行相應的處理。

從這點來看,wifi設備接入微信硬件平臺,微信硬件平臺僅僅起到一個入口的作用,消息轉發都不經過微信硬件平臺了。

五、微信硬件平臺的優與劣

回過頭來想想,國內這幾年早已經有多家物聯網平臺,如機智云,yelink等等,它們除了充當公安局的角色確保設備的唯一性,還完成了后端的服務平臺,甚至給用戶提供物聯設備模塊,極大地簡化了物聯設備生產商的開發流程。在這樣的基礎上,微信硬件平臺把那么多的任務丟給了開發者,但還是很多廠商擁抱它,只能說微信是一個超級APP,是一個極佳的入口,掌握了全社會大部分用戶的入口。在移動互聯網領域,用戶數量就是王道。

誠然,用戶量巨大和騰訊體量龐大是微信硬件平臺物聯網的優勢,但要想做得更好,是不是考慮給用戶多做一些像機智云一樣的工作?

呵呵,騰訊又想到了,QQ物聯就是。

不過騰訊什么都做了,那方案開發公司怎么活啊:-)

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 咸宁市| 来宾市| 昌都县| 白河县| 阿拉尔市| 固原市| 平定县| 呼和浩特市| 宜良县| 修武县| 南宫市| 城步| 望城县| 兴隆县| 察雅县| 石林| 吉水县| 盐池县| 连山| 南郑县| 和田县| 米泉市| 德令哈市| 平泉县| 叶城县| 沾益县| 平塘县| 吉隆县| 沙田区| 德钦县| 丰城市| 淮南市| 比如县| 太仓市| 金塔县| 浦北县| 大邑县| 永德县| 玉溪市| 湛江市| 修武县|