前沿提要:
MQTT是什么不知道?
看这一篇:https://www.cnblogs.com/happybirthdaytoyou/p/10362336.html
阿里云官网玩不转?
看这一篇: https://www.cnblogs.com/happybirthdaytoyou/p/14065294.html
不会用代码连接阿里云?
看这一篇:https://www.cnblogs.com/happybirthdaytoyou/p/14074606.html
1. 打开 https://www.aliyun.com/ 注册账号
2.注册账号登录后点击控制台
3. 在下图1处输入物联网平台,会弹出2处所示物联网平台的入口,点击红色箭头所示处,进入物联网平台页面
4. 在物联网平台页面处 点击该公共实例
5. 选中1处产品这一栏,点击2处的创建产品按钮
6. 填写创建产品所需的参数。 我之后将十使用windows软件MQTT.fx来连接阿里云,我的电脑是通过wifi联网的,所以我在下图的联网方式处选择Wi-Fi 。
下面我创建一个产品,产品名称叫做:我是产品-我负责管理设备们
(产品名称在账号内具有唯一性。例如,可以填写为产品型号。支持中文、英文字母、日文、数字、下划线(_)、短划线(-)、@符号和英文圆括号,长度限制4~30个字符,一个中文或日文占2个字符)
点击确认,我们将进入下图页面
7.
现在我们面临两个选择,通过阅读上图2的文字,我们了解到,物模型是一种抽象的数据结构,我们需要为每个产品定义一个物模型,这是产品下属的设备们的抽象父类。
所以,我们按照由上至下的设计原则,先为产品定义物模型吧! 点击上图2处,前往定义物模型。
8.
再点击编辑草稿
9.
再点击 添加标准功能
10.
选择 其他类型, 我在这里输入 温度,表示我的物联网设备将要上传温度值吧(你不一定要选择温度的,这里的选择仅仅是阿里云对用户数据进行一个粗略的分类而已),
点击3处的搜索按钮, 4处随便选择一个, 我选择的是当前温度--空气盒子。
然后点击确定
还可以点击编辑
我们将其读写类型改为 :读写。 这表示该数据不仅可以上传到云平台(只读),还可以由云平台下发到设备。
再点击 发布上线,勾选:确认已查看当前版本与线上版本的比对结果。 点击确定。
这样,一个物模型就创建好了。
根据上面的提示,一个产品,不仅需要物模型,还需要设备,所以,接下来,我们就添加设备。
11. 在物联网平台 / 设备管理 / 设备 页面, 点击:添加设备
1选择我们刚才创建的产品 2给设备起个英文名字 ,再点击确认
再点击完成
至此,我们又将设备创建好了。PS:当前设备状态可以看到,是未激活。
接下来我们就可以跑起来单片机或者其他什么Linux板子,又或者是上位机软件,又或者是ubuntu内允许的可执行程序,来连接这个阿里云了。
连接需要一些参数,这些参数阿里云已经为我们都提供了,我们通过自己的主页就可以看到, 如下图所示:
上图可以查看设备的参数。
上图可以查看设备模型( 即 产品 )的参数。
12. 后面要用到的时候再来查看相关参数, 我们先下载MQTT.fx吧
MQTT.fx软件的下载路径
https://mqttfx.jensd.de/index.php/download?spm=a2c4g.11186623.2.16.63f75800DlwS9m
我下载的是最新版的1.71版本
打开该软件
接着点击上图的该设置按钮
然后填好相关参数,如下图所示:
这里解释下相关参数
你的Client ID可以和我的配置一样。 后面的securemode也可以设置为3, signmethod也可以跟我一样,设置为sha1(sha1就是上图的hmacsha1)。
Broker Address就是个域名, 你的这个域名可以配置为 “你的ProductKey”+ “iot-as-mqtt.cn-shanghai.aliyuncs.com” 这串字符,
你的ProductKey可以通过下图方式查到:
接着我们来填写User Credentials选项卡
下面介绍下这两行怎么填写:
ProductKey的查看方法前面已经介绍过了,这里介绍下DeviceName的查看方法:
填好它。 现在就只剩一个Password还需要填写了,我们需要借助一个密码计算工具。
在该QQ群进行如下搜索即可下载
QQ群号在此
解压缩下载包后,双击sign文件,即可使用,
下图是我输入的计算密码所需的参数:
productKey、deviceName、clientId都介绍过了,或者我的配图里都展示出来了。method选择为sha1,还记得吧,我们之前配置Client ID的时候配置为了sha1,这里要对应上。
现在只剩一个deviceSecret没介绍了,我们可以通过下图方式查看:
填写好参数以后,点击Genrete,就可以生产password了。
然后把password复制黏贴到MQTT.fx的下图处,再点击OK按钮
然后再点击Connect
如果上面的操作都正确,那么喜迎时刻到了:
小灯变成了绿色,disconnect按钮也可见(白色背景,黑色字体)了。
同时!==》我们可以看到,该设备由原先的 未激活 状态更改为 在线状态。我们已经建立了上位机MQTT.fx软件和阿里云的连接了。
既然连接已经通了,那我们接着来干点收发数据的事情吧。
毕竟仅仅建立个连接不是目的,收发数据去辅助完成业务逻辑才是我们的目的。
13 在下图处,阿里云平台为我们预设了一些Topic(主题), 我们可以借助这些主题来通信。
当然,我们也可以自定义Topic, 都可以的。
这里我们先使用预设好的物模型Topic吧。
这里可以看到,设备属性上报的主题,
我订阅的Topic就是: /sys/a11B0MP4tDp/1st_device_mqttfx/thing/event/property/post 填入下图的3处:
留意一下,红色框内选择最左边一个蓝色的圈即可,这是通信的质量等级Qos, 阿里云好像不支持Qos为2.
现在不确定支不支持不要紧,因为现在是快速体验阿里云,到时候我们写下位机代码来和阿里云通信的时候肯定会设计到这个问题的,所以现在不操心,知道这么回事就行了。
4处我填写的是CurrentTemperature":43, 为什么是CurrentTemperature呢?
因为CurrentTemperature是我们创建的温度数据的标识符。
点击Publish。数据就传到云上去咯。
现在我们可以去云上查看下数据。
至此,我们完成了设备向云发送数据的功能。
接下来我们来完成云下发数据到设备的功能:
先配置MQTT.fx
再次查看阿里云预设好的Topic列表,入下图紫色划线的主题就是我们现在需要的订阅主题。
意思就是,物联网设备订阅这个主题,云平台也可以通过向这个主题发送消息,传递给各个订阅过该主题的物联网设备,以此实现通信。
我下图填入的主题是:/sys/a11B0MP4tDp/1st_device_mqttfx/thing/service/property/set
然后点击Subscribe。
接着在云平台这边来操作:
点击在线调试
点击前往查看
再进行如下配置
在3处填入你要发送的数值,我随便填了个35.
点击发送指令
之后会显示云端下发数据的记录:
回到MQTT.fx
3处可以选择按照JSON格式显示收到的数据。
至此,我们又完成了云端数据下发到设备的功能。
还有自定义Topic,有提到,没涉及,可以自己去尝试尝试。
江湖很大,你我相遇在此有一定缘分,可以考虑加个QQ群聊聊人生,技术离不开生活,生活离不开聊聊。
.