基于阿里云物联网的APP简单开发
程序员文章站
2023-12-27 15:38:27
...
一. 产品和设备创建
1,登陆物联网平台
2,创建高级版的产品
在数据格式的选择有两种,我选择的是透传,设备接受和发送数据很简单,但是需要在产品下进行数据解析。
3,在产品下创建一个设备
二. 进入iot studio界面
1,点击移动可视化开发
2,发挥想象随意创作布局,发现动不了什么组件
3,在首页添加跳转页,如图
4,进入控制设备开关页面,开始创作布局
5,布局完成,配置数据。如图是开关的配置
6,选择完成后如图
不出意外,你们的界面大致如下
但是如果最初选择的数据格式不是透传,应该验证通过了。
7,接下来开始进行数据解析
三. 数据解析过程
1,在iot studio中打开如下产品界面
2,开始编写脚本
这里有阿里提供的技术文档,可以对照的看细节。而我,只讲怎么处理自己的参数,懂js语言的就不说了。
- 表达方式问题
-
不知道各位有没有遇到,反正拿着阿里云的参考例程放到产品下的脚本编辑会报错。不得已全部把类似
jsonMap['method']
改为jsonMap.method
。 -
对于参数的值设置为如下,如果设备报上来的数据命令是
0x0000000001003201
,试问,对于我用的单片机怎么返回1003前面的这么多的0??懵!
var COMMAND_REPORT = 0x00; //属性上报
var COMMAND_SET = 0x01; //属性设置
var COMMAND_REPORT_REPLY = 0x02; //上报数据返回结果
var COMMAND_SET_REPLY = 0x03; //属性设置设备返回结果
改为:
var COMMAND_REPORT = 0x01; //属性上报
var COMMAND_SET = 0x02; //属性设置
var COMMAND_REPORT_REPLY = 0x03; //上报数据返回结果
var COMMAND_SET_REPLY = 0x04; //属性设置设备返回结果
- 属性的更改
- 把数据字节对齐,弄清楚就差不多了。类似如下,LightStatus为自己的属性
var params = {}; //定义参数params为结构体
// params['prop_int16'] = dataView.getInt16(5); //对应产品属性中 prop_int16 == 0032 (两个字节)
params.LightStatus = uint8Array[5]; //对应产品属性中 prop_bool == 01
// params['prop_float'] = dataView.getFloat32(8); //对应产品属性中 prop_float == 00
jsonMap.params = params; //ALink JSON格式 - params标准字段
3,在线调试模式
如图所示,当发送指令后,设备接收到解析后的一连串十六进制数据,在设备端进行编码,分解字节数据。最后,按照通讯的协议返回正确的十六进制字节数据,如果返回成功,实时日志会显示;否则会有报错代码。
-
另外设备返回的时候,选择的方法是
ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'
,注意分开。 -
且,设备返回的是灯的状态(本例中),而不是成功的代码
code:200
.
若日志报成功,就可以返回到移动开发界面了。
四. 重回app开发界面
再次选择属性,验证数据格式,成功。就可以进行你想要的基本控制了。
后续:对于APP开发,估计阿里云刚推出来,功能很少。望加强!