一圖解讀微信物聯(lián)網(wǎng)平臺(tái)
1. 基于微信硬件平臺(tái)的物聯(lián)網(wǎng)的架構(gòu)組成,有微信公眾平臺(tái)/硬件平臺(tái)、第三方廠商云后端、手機(jī)微信/公眾號(hào)、微信硬件設(shè)備終端(Wifi和藍(lán)牙BLE)
2. 綠色代表騰訊向開(kāi)發(fā)者和公眾提供的基礎(chǔ)平臺(tái)和服務(wù),并通過(guò)紅色(airsync/airkiss)定義的硬件外設(shè)協(xié)議供硬件設(shè)備接入,紅色(微信硬件平臺(tái)接入?yún)f(xié)議,XML/JSON)供廠商云后端接入;藍(lán)牙和紫色區(qū)域代表開(kāi)發(fā)者所要完成的任務(wù),其中藍(lán)牙是嵌入式硬件設(shè)備終端的任務(wù),紫色是第三方廠商云后端的任務(wù)。
基于微信硬件平臺(tái)的物聯(lián)網(wǎng)架構(gòu)圖示
上圖涵蓋以下信息:
3. 物聯(lián)網(wǎng)各個(gè)組成部分之間的通信協(xié)議標(biāo)識(shí)。除了紅色標(biāo)識(shí)的協(xié)議是微信公眾平臺(tái)和硬件平臺(tái)制定的協(xié)議必須遵循外,其他組成部分的協(xié)議都是自定義的協(xié)議。
4. Wifi模組的供應(yīng)商提供的SDK一般都提供socket通信接口,而云后端一般會(huì)使用JSP/PHP等web編程技術(shù),因此wifi設(shè)備需要模擬HTTP協(xié)議跟云終端通信。HTTP是一個(gè)標(biāo)準(zhǔn)的公共的通信協(xié)議,應(yīng)用層需要在HTTP之上建立自定義的應(yīng)用協(xié)議來(lái)完成設(shè)備的控制和交互,而應(yīng)用協(xié)議可以是XML/JSON等等。當(dāng)然,如果云后端使用底層的socket編程,則wifi設(shè)備終端可以不需要模擬http。
5. 藍(lán)牙通過(guò)airsync協(xié)議接入微信,該協(xié)議規(guī)定了設(shè)備發(fā)現(xiàn)、綁定、登陸、初始化、接收用戶指令、主動(dòng)發(fā)送消息等過(guò)程。
6. Airkiss是通過(guò)JSAPI的方式讓用戶可以在微信上輸入路由器的用戶名和密碼,然后告知沒(méi)有按鍵輸入和屏幕顯示的wifi設(shè)備,讓該設(shè)備能夠連上路由器進(jìn)入網(wǎng)絡(luò)在線狀態(tài)。除此之外,Airkiss跟之后用戶和廠商、設(shè)備的交互完成沒(méi)有關(guān)系。本質(zhì)上,Airkiss只是一個(gè)配置上網(wǎng)功能,跟物聯(lián)網(wǎng)的控制和交互無(wú)關(guān)。
7. Wifi設(shè)備接入微信硬件平臺(tái)是遠(yuǎn)場(chǎng)控制,設(shè)備只要處于聯(lián)網(wǎng)在線狀態(tài),那手機(jī)用戶無(wú)論在哪里,只要能上網(wǎng)都可以對(duì)設(shè)備進(jìn)行控制,典型的例子是在公司上班可以通過(guò)手機(jī)控制家里的智能插座上電;藍(lán)牙設(shè)備接入微信硬件平臺(tái)必須依賴于手機(jī),是近場(chǎng)控制,典型的場(chǎng)景是手機(jī)控制家里的燈和空調(diào)等。
本文是從開(kāi)發(fā)者的角度去分析整個(gè)微信硬件平臺(tái)物聯(lián)網(wǎng),不去探討物聯(lián)網(wǎng)運(yùn)營(yíng)之類等領(lǐng)域。那么,從開(kāi)發(fā)的角度,物聯(lián)網(wǎng)的核心要素什么,微信平臺(tái)又支持了什么?我的理解是:
微信硬件平臺(tái)在物聯(lián)網(wǎng)領(lǐng)域做的事情其實(shí)不多,只要仔細(xì)想想架構(gòu)圖中的這么多的紫色和藍(lán)色都是留給開(kāi)發(fā)者,而且都是要赤裸裸的編程。對(duì)于一般的設(shè)備商,他們想接入也是勉為其難啊。在這個(gè)體系架構(gòu)中,微信硬件平臺(tái)做的最重要的一件事情就是身份認(rèn)證。