五分鐘讀懂鵝廠物聯網架構佈局 原

本文從物聯網的中心要素、物聯網的關鍵場景、微信硬件平臺的通訊協議剖析三個維度去剖析基於微信硬件平臺的物聯網架構。

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

上圖涵蓋以下信息:

基於微信硬件平臺的物聯網的架構組成,有微信大衆平臺/硬件平臺、第三方廠商雲後端、手機微信/大衆號、微信硬件設備終端(Wifi和藍牙BLE)。

綠色代表騰訊向開發者和大衆提供的根底平臺和效勞,並經過白色(airsync/airkiss)定義的硬件外設協議供硬件設備接入,白色(微信硬件平臺接入協議,XML/JSON)供廠商雲後端接入;藍牙和紫色區域代表開發者所要完成的義務,其中藍牙是嵌入式硬件設備終端的義務,紫色是第三方廠商雲後端的義務。

物聯網各個組成局部之間的通訊協議標識。除了白色標識的協議是微信大衆平臺和硬件平臺制定的協議必需遵照外,其他組成局部的協議都是自定義的協議。

Wifi模組的供給商提供的SDK普通都提供socket通訊接口,而云後端普通會運用JSP/PHP等web編程技術,因而wifi設備需求模仿HTTP協議跟雲終端通訊。HTTP是一個規範的公共的通訊協議,使用層需求在HTTP之上樹立自定義的使用協議來完成設備的控制和交互,而使用協議可以是XML/JSON等等。當然,假如雲後端運用底層的socket編程,則wifi設備終端可以不需求模仿http。

藍牙經過airsync協議接入微信,該協議規則了設備發現、綁定、登陸、初始化、接納用戶指令、自動發送音訊等進程。

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

Wifi設備接入微信硬件平臺是遠場控制,設備只需處於聯網在線形態,那手機用戶無論在哪裏,只需能上網都可以對設備停止控制,典型的例子是在公司下班可以經過手機控制家裏的智能插座上電;藍牙設備接入微信硬件平臺必需依賴於手機,是近場控制,典型的場景是手機控制家裏的燈和空調等。

二、物聯網的中心要素

本文是從開發者的角度去剖析整個微信硬件平臺物聯網,不去討論物聯網運營之類等範疇。那麼,從開發的角度,物聯網的中心要素什麼,微信平臺又支持了什麼?我的瞭解是:

設備的合法性和獨一性

微信硬件平臺在物聯網範疇做的事情其實不多,只需細心想想架構圖中的這麼多的紫色和藍色都是留給開發者,而且都是要光禿禿的編程。關於普通的設備商,他們想接入也是勉爲其難啊。在這集體系架構中,微信硬件平臺做的最重要的一件事情就是身份認證。

就像一團體出生後要辦一張身份證(出生證明的號碼也是身份證號碼)一樣,設備消費出來要想進入微信硬件範疇,它就必需到微信硬件平臺註冊本人的身份,那它拿什麼去註冊呢,這個根據自然應該是無獨有偶的,就像每團體的指紋,假如我國的小孩辦身份證都以錄指紋爲根據,那就不會呈現那麼多拐賣兒童了。如今公安局的做法是什麼,是硬生生地把一串身份證數字跟人名綁在一同,跟自然人的生物特徵沒有一丁點關係!!!設備的無獨有偶的根據就是48位的MAC地址(或許是MAC地址經過某種加密運算失掉的後果)。

接着辦身份證/出生證不是要給小孩起個名字嗎,當前大家交流就叫名字了,公安局也是叫名字的嘛,不能夠每次喊話都把指紋的二進制數字讀出來的啊。嗯,那硬件設備註冊時也要報備本人的名字,即設備ID。設備ID也應該在微信硬件平臺獨一啊,不然會亂的。就像MAC地址一樣,有一局部是代表一個設備提供商向世界IETF組織請求的企業辨認字段,另一局部是設備商外部的分配。或許像身份證那樣,後面6個字段是代表一團體出生時的縣區行政區劃碼,前面的數字才代表本身,但同時要保證在這個行政區外面的獨一性。那微信硬件平臺怎樣標準設備身份?設備身份包括兩個局部,deviceType是設備商/銷售商的微信大衆號的原始ID,deviceID由設備商/銷售商自定義,由設備商保證deviceID在其deviceType中的獨一性。

這就是設備的註冊場景。設備註冊了當前在微信硬件平臺就具有合法性和獨一性了。

設備被拜訪的合感性和合理性

設備最終是應該和人/手機用戶交互的,否則就得到了物聯的意義了。那麼哪個用戶可以拜訪這個設備呢?

微信譽戶要關注設備商的微信大衆號和綁定設備才幹對設備停止拜訪。假如不綁定就可以拜訪,那就是一切用戶都可以拜訪這個設備,這顯然是不合理的。你買的智能插座放家裏,另一團體也能控制你的插座,多風險。

微信硬件平臺確保設備的獨一性,微信大衆平臺確保微信譽戶的獨一性,兩者經過關注和綁定這個流程樹立起完全權益的拜訪關係。

微信硬件平臺是微信大衆平臺的一個子集,微信硬件平臺會應用微信大衆平臺已有的功用來完成根底效勞。

設備和用戶交互的音訊觸達才能

設備要成爲物聯網中的一員,必需可以聯網,好比人體的神經元,具有可以和外界交流的才能。

微信硬件平臺次要從雲後端接入和硬件接入兩方面作出努力。一是經過airsync協議讓藍牙設備和微信互通,airkiss協議讓複雜的沒有按鍵和UI交互的wifi設備聯網;二是經過制定雲後端接入協議來接納廠商雲,經過音訊接口和API接口運用戶和設備的音訊可以互相觸達。即設備收回的音訊經過微信平臺發送到廠商雲,廠商雲的音訊也能自動推送給設備,完成交互。

效率

掃一掃功用對微信的影響是宏大的,加關注,好友,挪動領取等等都經過二維碼來完成,設備綁定是二維碼。微信硬件平臺和大衆平臺發生的二維碼關聯了用戶、設備ID等信息,經過掃一掃功用能方便地停止綁定,接入進入大衆號的音訊界面。

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

音訊處置才能—嵌入式零碎

這一點並沒有在物聯網架構的圖示中呈現。物聯網決不只僅是一種控制,例如開燈和關燈之類,也不只僅是複雜的經過各種傳感器來停止數據採集,將來的物聯網一定會讓用戶不時地進步用戶體驗,例如多媒體、虛擬與完成、數據決策等等,這局部是由初級的嵌入式零碎來完成的。嵌入式零碎纔是設備的大腦,物聯網應該更好地擁抱嵌入式零碎。

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

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,是一個極佳的入口,掌握了全社會大局部用戶的入口。在挪動互聯網範疇,用戶數量就是霸道。

固然,用戶量宏大和騰訊體量龐大是微信硬件平臺物聯網的劣勢,但要想做得更好,是不是思索給用戶多做一些像機智雲一樣的任務?

換作各位小同伴,你們會怎樣做呢?歡送留言~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章