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