ThingsCloud与阿里云物联网平台类似,比较重要的特点是可以按照自己的设备实际情况和需求0代码定制APP,包括安卓、IOS以及微信小程序等,对需要做课程设计或者想浅尝远程控制的同学非常友好。
可以看到界面还是很美观的,按钮与数值展示也很多,而制作的过程像做微信推文一样,甚至还要更简单。
目录
1.进入控制台创建项目
2.创建设备类型
3.创建设备
4.设备上云
5.定制APP
我的最近几篇文章介绍通过ESP8266系列WIFI模块通过MQTT透传AT固件上云,所以相应地本篇介绍“设备MQTT接入”,平台官方的B站账号有DTU接入等其他方式的教程
免费用户只能创建一个项目,三种设备类型以及三个设备,我已经创建过项目,这里不能往下演示,接下来直接拿我现成的项目
如果创建过项目但是看不到,在上方选择分区,选择自己项目的区域
进入项目之后左侧有很多入口,跟其他物联网平台一样
其中最常用的就是“所有设备”和“设备类型”,这里面基本能找到所有我们需要用到的所有选项
设备类型和设备都要创建
没有什么注意事项,如果希望通过TCP接入也就是不用MQTT协议的话可以使用自定义数据流
设备类型之下没有包含设备,去创建设备然后添加进来。在设置里可以移除设备类型。
创建设备时就可以顺便将其加入设备类型
免费用户只能拥有三个设备,如果想创建第四个设备需要删除之前的设备,并且设备必须24小数内无上报数据,所以别随便创建好几个来玩
创建设备成功后就可以在“所有设备”中找到刚才创建的设备
现在我们有了自己的设备,但这只是一个空壳,我们需要为它添加属性并与现实世界的设备产生关联:
进入设备页面后, “连接”选项卡下是各自接入点,而MQTT是最常用的,记住这里的设备证书以及接入点地址和端口,这就是现实设备连接云设备的入口。
在“调试”选项卡下开启“调试状态”,这样就可以观察云与设备的“聊天记录”。
那么接下来还要为为设备添加各种属性,我们需要进到“设备类型”页面,选择设备所在的设备类型。
最简单的,直接点击添加属性
属性名称:中文名是给后台的自己或者APP用户看的
属性标识符:这个关乎数据的上传与下发,相当于变量名,之后的数据便是给该变量赋值。
属性类型:
设备上报:诸如温湿度传感器读取的实时温湿度数据,这类数据只需要设备采集上传到云即可,云端下发的话是没有意义的。
云端下发:便是设备不需要上传,只需要要接收,只负责接收云端更改而不需要同步状态到云端的属性。
设备云端共享:既可设备上传到云,也可云端下发到设备,比如开关灯,设备上有实体按键控制开关灯,设备可以将开关灯的状态上传给云,同样的,云端也可以下发开关灯状态给设备,设备处理对应的数据,就达到了云端远程开关灯的效果,并且设备和云端显示的灯开关状态会保持一致。
云端私有:只有云端可见的属性,不下发也不接受上报,比如云端负责监控的温湿度上下限,当然如果设备具有监控和更改温湿度上下限并上传的能力,可以选择“设备云端共享”类型。
数据类型:以灯状态为例,
开关两种状态,便选择开关量,可以选择布尔值、数值或者明文,这里选择了什么数据类型,后面设备上报数据的时候就要按照这个数据类型上报才能被云直接解析
要是灯有开/关/自动(感应自动亮灯)三种状态,就选择枚举值,“枚举值”关乎通信,“枚举描述”支持中文,是给后台的自己或者APP用户看的。
这时我们回到设备页面,就能在“概览”或“属性”选项卡下看到我们刚刚添加的属性定义:
此时还没有初值,所以是空白,接下来我们进入MQTT.fx,假装我们自己有台设备,上报一下。
这里简单演示,官方文档中有详细的接入方式:设备 MQTT 接入 | ThingsCloud 使用文档
点击MQTT.fx的齿轮,左下角+号创建设备,填入信息:
填入刚才提到的MQTT接入点
UserName填入Access Token
Password填入ProjectKey
保存完毕,出去点击Connect,MQTT.fx亮起了绿灯,此时云平台也显示有设备在线了
想要通过MQTT交换数据还需要订阅主题,这个藏在官方文档里,也不太好找
主题一览 | ThingsCloud 使用文档
消息类型 | 主题 |
---|---|
设备上报属性值 | attributes |
设备获取当前属性值 | attributes/get/ |
设备上报事件 | event/report/ |
设备回复命令 | command/reply/ |
设备自定义数据上报 | data/ |
消息类型 | 主题 |
---|---|
接收属性上报的响应 | attributes/response |
接收属性获取的响应 | attributes/get/response/+ |
接收下发的属性 | attributes/push |
接收事件上报的响应 | event/response/+ |
接收下发的命令 | command/send/+ |
接收自定义数据下发 | data/{identifier}/set |
标高亮的是常用的两个主题,一来一回。
输入并订阅这个主题订阅了上图的主题,我们试着从云端下发属性到我们模拟的设备。
在“概览”或“属性”选项卡下可以下发属性。
选择属性点击下发
云端属性显示0,设备也收到了"state":"0",跟我们前面设置的数据类型与标识符一致
设备收到数据之后可以解析了单片机串口接收并解析ESP8266模块MQTT数据及MQTT透传AT固件使用例
上报的话也差不多
复制刚才接收到的云端数据,改一下数值,格式不变,通过发布主题attribute上报到云端
延迟非常低
“调试”选项卡下可以看到历史记录
“属性”选项卡下可以进行更进阶的属性下发等操作
如果数据类型为数值的话可以查看历史数据的图表
进入“设备类型”页面“应用配置”选项卡就能看到“编辑设备面板”
这里拿我之前的项目举例,因为数值多方便演示
0代码页面,只需要负责参数选择、布局与外观
与刚才我们设置的属性类型相关,比如由设备上传的温湿度,云端只负责展示而不负责更改,就选择左边的“数值展示”组件,而温湿度上下限,我选择的是云端设备共享,即可以设备来更改,也可以云端来更改,就选择“数值控制”的组件,既可以展示数值,也可以控制数值。LCD背光有三种状态,便选择“多状态控制”。
右侧可以选择组件需要展示的参数、图标外观等。
点击右上角保存退出后,
还有一步,需要进入“用户”页面创建一个用户账号并绑定设备,好让我们在APP内使用该账号登录
登录即可看见自己的设备,点击进入设备对应的控制页面
最后需要提醒的是,免费用户每天只能通信1000条消息,如果设置自动上报,频率不要太高或者开机时间别太长,不然额度用光当天就不能再上线,所以需要节制。