本文主要介紹如何調(diào)用機(jī)智云開放的Open API和WebSocket API來實現(xiàn)JavaScript網(wǎng)頁遠(yuǎn)程控制設(shè)備。
其中,Open API用到的接口有匿名登錄用戶、綁定設(shè)備和獲取綁定設(shè)備列表。而WebSocket API上的用戶登陸、設(shè)備上線下線通知、瀏覽器與云端的數(shù)據(jù)交互(數(shù)據(jù)透傳)、心跳和非法消息通知。
當(dāng)設(shè)備已經(jīng)是成功連接上云端,就可使用以下流程來控制設(shè)備了:
02準(zhǔn)備工作調(diào)用OPEN API匿名登錄用戶和綁定設(shè)備
1.獲取phone_id
phone_id 可以是手機(jī)的唯一識別碼?;蛘吣呀?jīng)有了自己的用戶系統(tǒng),不希望用戶再次注冊一次機(jī)智云帳號,您也可以使用該接口,為您的每一個用戶創(chuàng)建一個對應(yīng)的機(jī)智云匿名帳號。這時,phone_id 可以是用戶在您的系統(tǒng)中的唯一識別碼。如在與微信應(yīng)用做對接時,phone_id 可以設(shè)置成微信用戶的 openid。
2.創(chuàng)建用戶
http://swagger.gizwits.com/doc/index/openapi_apps
2.1.填寫appid
2.2.填寫body
2.3.登錄匿名用戶,獲取token
03綁定設(shè)備
3.1.填寫appid
3.2.填寫剛才匿名登錄回調(diào)的token
3.3.填寫Timestamp、Signature和body
備注:時間戳計算鏈接,
MD5計算鏈接,如下圖:
04Websocket網(wǎng)頁控制界面
4.1.websocket API封裝起來的sdk
4.2.運(yùn)行index.html
4.3.Websocket網(wǎng)頁控制界面
如下:
05控制設(shè)備分兩種方式
5.1.V4版本的標(biāo)準(zhǔn)數(shù)據(jù)點(diǎn)協(xié)議
5.1.1.初始化Gizwits WS對象
上面使用的參數(shù)有:初始化,如下:
5.1.2.獲取綁定列表
如果該用戶要獲取綁定設(shè)備列表,先要確認(rèn)該用戶(就是該openid)是否有對要控制設(shè)備的已進(jìn)行綁定了。
5.1.3.創(chuàng)建Websocket連接
選擇一個要進(jìn)行控制的設(shè)備did,創(chuàng)建websocket連接
5.1.4.讀取設(shè)備當(dāng)前狀態(tài)
選擇已連接的設(shè)備,讀取設(shè)備的當(dāng)前狀態(tài)
5.1.5.控制設(shè)備
選擇已連接的設(shè)備,下發(fā)控制指令
如下發(fā)控制指令{“Swicth”:true},如下圖:
- 如要設(shè)置擴(kuò)展類型的字段 binary 為16進(jìn)制 616263 ,補(bǔ)齊后每組byte換成一個十進(jìn)制數(shù)組的值
- 設(shè)置布爾型需要是true和false:
{ "boolean":true, "binary": [97,98,99,0,0,0,0,0,0,0] } |
控制模擬設(shè)備效果:
5.2.V4版本的自定義格式協(xié)議
V4版本的自定義格式協(xié)議(就是無法數(shù)據(jù)點(diǎn)透傳)
5.2.1.初始化Gizwits WS對象
上面用的的參數(shù)有:
5.2.2.獲取綁定列表
5.2.3.創(chuàng)建websocket連接
選擇一個要進(jìn)行控制的設(shè)備did,創(chuàng)建websocket連接:
5.2.4.讀取設(shè)備的當(dāng)前狀態(tài)
選擇已連接的設(shè)備,讀取設(shè)備的當(dāng)前狀態(tài):
5.2.5.下發(fā)控制指令
選擇已連接的設(shè)備,下發(fā)的控制指令:[0,0,0,3,9,0,0,144,1,0,1,2,3,4] (注意:下發(fā)數(shù)據(jù)的格式為十進(jìn)制的,每個位端的表示為0,0,0,3為header、9為len、0為flag、0,144為cmd、1為action、0,1,2,3,4為業(yè)務(wù)指令),如下:
模擬mcu收到命令,如下:
FF FF 00 0B 03 1E 00 00 01 00 01 02 03 04 37
-
控制設(shè)備
+關(guān)注
關(guān)注
0文章
131瀏覽量
10696
發(fā)布評論請先 登錄
相關(guān)推薦
評論