本文從網(wǎng)絡(luò)營銷的核心要素、物聯(lián)網(wǎng)的關(guān)鍵場景、微信硬件平臺的通信協(xié)議分析三個維度去分析基于微信硬件平臺的物聯(lián)網(wǎng)架構(gòu)。
一、 基于微信硬件平臺的物聯(lián)網(wǎng)架構(gòu)圖示
上圖涵蓋以下信息:
1. 基于微信硬件平臺的物聯(lián)網(wǎng)的架構(gòu)組成,有微信公眾平臺/硬件平臺、第三方廠商云后端、手機微信/公眾號、微信硬件設(shè)備終端(Wifi和藍牙BLE)。
2. 綠色代表騰訊向開發(fā)者和公眾提供的基礎(chǔ)平臺和服務(wù),并通過紅色(airsync/airkiss)定義的硬件外設(shè)協(xié)議供硬件設(shè)備接入,紅色(微信硬件平臺接入?yún)f(xié)議,XML/JSON)供廠商云后端接入;藍牙和紫色區(qū)域代表開發(fā)者所要完成的任務(wù),其中藍牙是嵌入式硬件設(shè)備終端的任務(wù),紫色是第三方廠商云后端的任務(wù)。
3. 物聯(lián)網(wǎng)各個組成部分之間的通信協(xié)議標(biāo)識。除了紅色標(biāo)識的協(xié)議是微信公眾平臺和硬件平臺制定的協(xié)議必須遵循外,其他組成部分的協(xié)議都是自定義的協(xié)議。
4. Wifi模組的供應(yīng)商提供的SDK一般都提供socket通信接口,而云后端一般會使用JSP/PHP等web編程技術(shù),因此wifi設(shè)備需要模擬HTTP協(xié)議跟云終端通信。HTTP是一個標(biāo)準(zhǔn)的公共的通信協(xié)議,應(yīng)用層需要在HTTP之上建立自定義的應(yīng)用協(xié)議來完成設(shè)備的控制和交互,而應(yīng)用協(xié)議可以是XML/JSON等等。當(dāng)然,如果云后端使用底層的socket編程,則wifi設(shè)備終端可以不需要模擬http。
5. 藍牙通過airsync協(xié)議接入微信,該協(xié)議規(guī)定了設(shè)備發(fā)現(xiàn)、綁定、登陸、初始化、接收用戶指令、主動發(fā)送消息等過程。
6. Airkiss是通過JSAPI的方式讓用戶可以在微信上輸入路由器的用戶名和密碼,然后告知沒有按鍵輸入和屏幕顯示的wifi設(shè)備,讓該設(shè)備能夠連上路由器進入網(wǎng)絡(luò)在線狀態(tài)。除此之外,Airkiss跟之后用戶和廠商、設(shè)備的交互完成沒有關(guān)系。本質(zhì)上,Airkiss只是一個配置上網(wǎng)功能,跟物聯(lián)網(wǎng)的控制和交互無關(guān)。
7. Wifi設(shè)備接入微信硬件平臺是遠場控制,設(shè)備只要處于聯(lián)網(wǎng)在線狀態(tài),那手機用戶無論在哪里,只要能上網(wǎng)都可以對設(shè)備進行控制,典型的例子是在公司上班可以通過手機控制家里的智能插座上電;藍牙設(shè)備接入微信硬件平臺必須依賴于手機,是近場控制,典型的場景是手機控制家里的燈和空調(diào)等。
二、物聯(lián)網(wǎng)的核心要素
本文是從開發(fā)者的角度去分析整個微信硬件平臺物聯(lián)網(wǎng),不去探討物聯(lián)網(wǎng)運營之類等領(lǐng)域。那么,從開發(fā)的角度,物聯(lián)網(wǎng)的核心要素什么,微信平臺又支持了什么?我的理解是:
1. 設(shè)備的合法性和唯一性
微信硬件平臺在物聯(lián)網(wǎng)領(lǐng)域做的事情其實不多,只要仔細想想架構(gòu)圖中的這么多的紫色和藍色都是留給開發(fā)者,而且都是要赤裸裸的編程。對于一般的設(shè)備商,他們想接入也是勉為其難啊。在這個體系架構(gòu)中,微信硬件平臺做的最重要的一件事情就是身份認(rèn)證。設(shè)備注冊了以后在微信硬件平臺就具有合法性和唯一性了。
2. 設(shè)備被訪問的合理性和正當(dāng)性
設(shè)備最終是應(yīng)該和人/手機用戶交互的,否則就失去了物聯(lián)的意義了。那么哪個用戶能夠訪問這個設(shè)備呢?
微信用戶要關(guān)注設(shè)備商的微信公眾號和綁定設(shè)備才能對設(shè)備進行訪問。如果不綁定就可以訪問,那就是所有用戶都能夠訪問這個設(shè)備,這顯然是不合理的。你買的智能插座放家里,另一個人也能控制你的插座,多危險。
微信硬件平臺確保設(shè)備的唯一性,微信公眾平臺確保微信用戶的唯一性,兩者通過關(guān)注和綁定這個流程建立起完全權(quán)利的訪問關(guān)系。
微信硬件平臺是微信公眾平臺的一個子集,微信硬件平臺會利用微信公眾平臺已有的功能來完成基礎(chǔ)服務(wù)。
3. 設(shè)備和用戶交互的消息觸達能力
設(shè)備要成為物聯(lián)網(wǎng)中的一員,必須能夠聯(lián)網(wǎng),好比人體的神經(jīng)元,具有能夠和外界交流的能力。
微信硬件平臺主要從云后端接入和硬件接入兩方面作出努力。一是通過airsync協(xié)議讓藍牙設(shè)備和微信互通,airkiss協(xié)議讓簡單的沒有按鍵和UI交互的wifi設(shè)備聯(lián)網(wǎng);二是通過制定云后端接入?yún)f(xié)議來接納廠商云,通過消息接口和API接口使用戶和設(shè)備的消息能夠相互觸達。即設(shè)備發(fā)出的消息經(jīng)過微信平臺發(fā)送到廠商云,廠商云的消息也能主動推送給設(shè)備,完成交互。
4. 效率
掃一掃功能對微信的影響是巨大的,加關(guān)注,好友,移動支付等等都通過二維碼來完成,設(shè)備綁定是二維碼。微信硬件平臺和公眾平臺產(chǎn)生的二維碼關(guān)聯(lián)了用戶、設(shè)備ID等信息,通過掃一掃功能能方便地進行綁定,接入進入公眾號的消息界面。
物聯(lián)網(wǎng)涉及到終端、前端和后端等等,是一個大工程,無論從開發(fā)的角度,還是從用戶使用的角度,都要始終強調(diào)便捷的效率,以讓用戶有足夠好的體驗,才能使得物聯(lián)網(wǎng)得以壯大。
5. 消息處理能力—嵌入式系統(tǒng)
這一點并沒有在物聯(lián)網(wǎng)架構(gòu)的圖示中出現(xiàn)。物聯(lián)網(wǎng)決不僅僅是一種控制,也不僅僅是簡單的通過各種傳感器來進行數(shù)據(jù)采集,未來的物聯(lián)網(wǎng)一定會讓用戶不斷地提高用戶體驗,嵌入式系統(tǒng)才是設(shè)備的大腦,物聯(lián)網(wǎng)應(yīng)該更好地?fù)肀度胧较到y(tǒng)。
三、物聯(lián)網(wǎng)場景分析和通信協(xié)議分析
1.注冊
2.用戶綁定
3.連接
用戶在綁定過程中會自動完成對提供設(shè)備的廠商的微信公眾號的關(guān)注。在以后每次進入公眾號時,會自動通過手機藍牙對藍牙設(shè)備進行掃描連接。只有完成airsync協(xié)議的藍牙設(shè)備才能連上微信。
4.控制(菜單控制)
1)用戶點擊微信公眾號提供的菜單。
2)消息通過微信公眾平臺發(fā)送給廠商云后端。
3)云后端在自己的數(shù)據(jù)庫內(nèi)驗證微信用戶和設(shè)備的有效性后,將微信菜單的消息轉(zhuǎn)化為自定義協(xié)議的消息(這個協(xié)議只有云后端和外設(shè)設(shè)備所認(rèn)識),并根據(jù)airsync中的protobuf協(xié)議對消息體進行打包封裝,最后通過調(diào)用微信硬件平臺提供的API接口主動推送出去。
4)微信硬件平臺收到信息后通過微信公眾平臺回傳給微信用戶所在的公眾號。
5)微信將這個消息根據(jù)airsync協(xié)議通過手機藍牙發(fā)送藍牙外設(shè)。
6)藍牙外設(shè)收到消息進行相應(yīng)的處理。
從這個過程來看,直接的菜單控制走的流程太長了,影響效率。
5. 控制(H5/JASPI控制)
1)用戶點擊微信公眾號提供的H5網(wǎng)頁鏈接
2)微信瀏覽器通過H5地址向廠商云后端請求響應(yīng),返回H5頁面。
3)用戶點擊H5頁面的開燈button
4)button通過JSAPI接口直接向藍牙設(shè)備發(fā)出自定義的控制消息,JSAPI藍牙接口已經(jīng)封裝好airsync協(xié)議。
5)藍牙設(shè)備收到消息進行相應(yīng)的處理。
四、物聯(lián)網(wǎng)場景分析和通信協(xié)議分析(遠場wifi控制方案)
1.注冊
2.用戶綁定
3.連接
由于用戶和wifi設(shè)備并不在一個區(qū)域,而是通過網(wǎng)絡(luò)來連接,因此用戶是不直接跟wifi設(shè)備打交道的,所有的交互都給通過wifi設(shè)備商的云后端進行間接交互。
用戶進入wifi設(shè)備對應(yīng)的公眾號后,微信公眾號會通過微信公眾平臺向廠商云訂閱和咨詢設(shè)備的在線狀態(tài)。因此設(shè)備一上線時應(yīng)該主動聯(lián)系廠商云后端,告知自己上線了,并不時地發(fā)送心跳包維持連接。這樣微信公眾號一訂閱請求,云就返回設(shè)備的狀態(tài)給它。
假設(shè)設(shè)備在線,云后端返回在線狀態(tài),微信公眾號就會顯示設(shè)備連接上。
4. 控制(菜單控制)
1)用戶點擊微信公眾號提供的菜單,如開燈。
2)消息通過微信公眾平臺發(fā)送給廠商云后端。
3)云后端在自己的數(shù)據(jù)庫內(nèi)驗證微信用戶和設(shè)備的有效性后,將微信菜單的開燈消息轉(zhuǎn)化為自定義協(xié)議的開燈消息(這個協(xié)議只有云后端和外設(shè)設(shè)備所認(rèn)識),然后直接通過網(wǎng)絡(luò)發(fā)給wifi設(shè)備。
4)wifi外設(shè)收到消息進行相應(yīng)的處理。
5. 控制(H5控制)
1)用戶點擊微信公眾號提供的H5網(wǎng)頁鏈接
2)微信瀏覽器通過H5地址向廠商云后端請求響應(yīng),返回H5頁面。
3)用戶點擊H5頁面的開燈button
4)button通過AJAX接口向廠商云后端發(fā)出自定義的控制消息。
5)廠商云接收到消息會轉(zhuǎn)化硬件控制消息,直接通過網(wǎng)絡(luò)發(fā)給wifi設(shè)備。
6)wifi設(shè)備收到消息進行相應(yīng)的處理。
從這點來看,wifi設(shè)備接入微信硬件平臺,微信硬件平臺僅僅起到一個入口的作用,消息轉(zhuǎn)發(fā)都不經(jīng)過微信硬件平臺了。
五、微信硬件平臺的優(yōu)與劣
回過頭來想想,國內(nèi)這幾年早已經(jīng)有多家物聯(lián)網(wǎng)平臺,它們除了充當(dāng)公安局的角色確保設(shè)備的唯一性,還完成了后端的服務(wù)平臺,甚至給用戶提供物聯(lián)設(shè)備模塊,極大地簡化了物聯(lián)設(shè)備生產(chǎn)商的開發(fā)流程。在這樣的基礎(chǔ)上,微信硬件平臺把那么多的任務(wù)丟給了開發(fā)者,但還是很多廠商擁抱它,只能說微信是一個超級APP,是一個極佳的入口,掌握了全社會大部分用戶的入口。在移動互聯(lián)網(wǎng)領(lǐng)域,用戶數(shù)量就是王道。