本文主要介绍如何调用机智云开放的open api和websocket api来实现javascript网页远程控制设备。
其中,open api用到的接口有匿名登录用户、绑定设备和获取绑定设备列表。而websocket api上的用户登陆、设备上线下线通知、浏览器与云端的数据交互(数据透传)、心跳和非法消息通知。
当设备已经是成功连接上云端,就可使用以下流程来控制设备了:
02准备工作调用open api匿名登录用户和绑定设备
1.获取phone_idphone_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
智能汽车中SOA架构设计方法
减少射频载波干扰的方法
AndroidAuto将摆脱线缆束缚 彻底无线化
i.MXRT系列的ROM API设计
Win10升级烦不胜烦?不如试试这个工具一绝永恒
开发指南|Websocket 网页控制设备
卷积神经网络的七个注意事项
京东方计划推出Micro OLED,布局未来成长市场
【Z站推荐】CANFD CRC段与传统CAN差距有多大?
太阳能发电站
ATX电源针脚定义及电源无主板启动方法
天数智芯吕坚平谈通用GPU创新之路
ESP32-C3:安全、低功耗、低成本的RISC-V MCU
实施SDWAN的七个步骤
台积电TSMC扩大与Cadence在Virtuoso定制设计平台的合作
保障建设高瓦斯隧道安全的各类传感器
HART协议和RS485协议的区别是什么
华为牵手多家日本企业 合作开发物联网与5G技术
ARM9微处理器S3C2410的IP电话通信设计
5G有哪些科技应用未来将如何改变人们的生活