通过不断的测试,基本捋顺了设备和阿里云物联网平台的通信,阿里云物联网平台内部的数据流转,云平台和微信小程序之间的通信。
2、进入控制台,并点击进入公共实例(如果还没有的需要先申请)
3、创建新的产品,上面有一个基本流程;
创建产品(设备模型)的初步配置;
4、添加设备,不管是微信端还是NB的设备,对于阿里云来说都是设备,这个是添加设备的路径;
添加第一个设备,设备名称是自定义的,方便查找就可以,微信小程序端起名为IEMEWeChat;
第二个设备暂定为NB设备,起名为IEME_NB;
设备创建完成后,这里有个非常重要的数据就是设备的三元组信息,一机一码。
5、接下来就是添加自定义Topic,路径如下:
自定义微信端的Topic,如下图:
6、进入云产品流转,创建规则(旧版),这一部分放到数据通信中具体去讲;
二、微信小程序配置流程
对于一个没有小程序开发经验的人来说,希望可以记录开发过程,问题及解决办法。本次的工程是通过“指针阿飞”的小程序工程修改。
1、首先通过网页版微信公众平台根据提示注册账号,一定要是用一个没有绑定任何微信的邮箱进行注册;
2、下载微信开发者工具,直接把小程序工程所在的文件夹拖到微信开发者工具中后就可以打开。
3、编译,并根据提示修改错误。
这时候提示的第一个开发问题,缺少阿里云三元组信息,将我们创建的微信端阿里云设备的三元组信息添加即可,如下:
aliyunInfo: {
productKey: 'a1DBaGcnm0S', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
deviceName: 'IEMEWeChat', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
deviceSecret: '*********', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
regionId: 'cn-shanghai', //阿里云连接的三元组 ,请自己替代为自己的产品信息!!
pubTopic: '/a1DBaGcnm0S/IEMEWeChat/user/IEME', //发布消息的主题
subTopic: '/a1DBaGcnm0S/IEMEWeChat/user/IEME', //订阅消息的主题
第二个错误提示“合法域名问题”,这个在微信开发者工具中可以在“详情-本地设置”中勾选【不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书】。
修改后提示连接成功,这个时候模拟器已经和阿里云的网络连接成功。
虽然显示连接成功,不过观看阿里云物联网平台中的微信端设备依然没有注册成功,实际就是没有收到过任何数据,可以通过点击“开灯”或者“关灯”向'/a1DBaGcnm0S/IEMEWeChat/user/IEME'发布消息实现设备的上线,返回到物联网平台查看微信端设备上线了,不过在对应设备中的“Topic列表”中并没有发现对应的订阅,通过测试发现不是物联网平台的问题,这个时候通过微信开发者工具重新连接后,在第一次发送消息时订阅成功,阿里云也能查看到相应的订阅 Topic 。我们通过相应的订阅 Topic发布消息,例如:
{"currentTemperature":"35","read":"10.2"}
可以看到小程序工程中的模拟器数据刷新了。这个时候阿里云与微信小程序端的数据已经跑通,不过这个只是第一步。
对于新版和旧版数据流转的体验,感觉对于傻瓜式配置的人来说旧版更亲和,可以自行生成脚本代码,而新版需要自行编写。
2)编写数据处理,点击“编写SQL”,如下图进行配置:
这里需要注意,编写SQL的目的就是确定数据源(新版是需要创建一个数据源与自定义Topic关联),“字段”的选择,如果不需要筛选,直接转发请填写*。
3)转发数据添加操作(新版就是创建数据目的),实际就是转发的去向;
测试开始,下面就是NB设备与阿里云物联网平台的数据通信,这里使用下图(设备模拟器)进行测试:
几个概念需要明晰一下,自定义Topic是阿里云平台提供的可以发送随意消息的主题,物模型Topic是阿里云平台提供了一个用网页展示设备端数据的模型。一开始使用的是属性上报功能,虽然可以刷新阿里云设备中的“物模型数据”,但是在进行数据流转时总是有问题,不管是使用新版(调试时数据没有问题,但是一运行就会报错)还是旧版(最终导致微信端收到了一个空数据)都没有解决,当然也可能是对于新手来说,对于语法的掌握还不太理解。
强烈建议使用自定义Topic进行数据流转,通过上图的界面测试,如果你不知道怎么写测试的内容,可以在属性上报中随便填写一些看一看,回到自定义Topic中数据填写,如下:
{"id":1673789264618,"currentTemperature":15,"read":40,"version":"1.0","method":"thing.event.property.post"}
注意小程序工程中的显示字段与发送的字段要一致才能正常获取出来,还有一个就是如果不熟悉小程序开发,发送的信息中尽量不要使用多层嵌套。
下面就是将微信小程序上传了,注意在网页版微信公众号平台中需要配置服务器域名,而且只支持https协议,将a1DBaGcnm0S.iot-as-mqtt.cn-shanghai.aliyuncs.com添加,注意a1DBaGcnm0S根据你自己的设备修改,实际并没有通信成功,这里是通过添加IP地址白名单实现的数据通信。