一、前期准备
- 产品和设备之间关系:产品包含设备。先创建一个产品,再在产品里添加设备。 一个产品可以有多个设备。
- 每个产品都有Topic列表,如订阅Topic和发布Topic。通过更换Topic中的DeviceName来使用某个设备订阅或发布内容。
- 使用MQTT时要先创建设备,配置好设备相关信息,再使用Topic进行通信。
- MQTT.fx下载。
二、阿里云配置
-
进入官网。
-
点击控制台。
-
支付宝扫码登录。
-
搜索:物联网平台。
-
点击公共实例。
6.进入到物联网平台
三、创建产品
- 创建产品。
- 配置产品信息。
四、定义物模型属性
- 点击前往功能定义。
- 编辑草稿。
- 添加自定义功能。
- 点击发布。
五、添加设备
- 添加设备
- 保存设备证书信息
复制后的内容如下:
{
"ProductKey": "a1XCO1LuKm9",
"DeviceName": "Device0",
"DeviceSecret": "8bd059eeb76d0bc9a9acf2b8ea740872"
}
- 添加完成
六、使用MQTT.fx模拟一个客户端接入物联网平台
- 打开MQTT.fx。
- 创建新的MQTT。
- 查看MQTT连接参数。
在物联网平台的设备处,MQTT连接参数可以直接查看下表参数进行配置。
- 将参数填入到新建的MQTT对应位置进行配置。Profile Name与之前添加的设备名要一致,如这里填Device0。
(4)点击OK即可。
- 连接设备。
连接后发现我们之前在物联网平台创建的设备变为在线状态。
七、MQTT通信
-
基本通信流程。
-
通过产品找到通信Topic。
-
使用Topic进行通信。
(1)订阅/读取物联网平台设置的值。
① 使用订阅Topic进行订阅。
② 使用物联网平台进行在线调试。
③ 接收到物联网平台下发的数据。
(2)设备给物联网平台发布消息。
① 使用属性上报的发布功能的Topic:/sys/a1XCO1LuKm9/Device0/thing/event/property/post。注:备名记得替换。
如:发送hello world。
② 在物联网平台上查看接收到的消息内容。
③通过发送json格式的内容,修改物联网平台上的值。
我们可以通过复制订阅时返回的json数据,进行修改。修改完成后进行发布。如:{"method":"thing.service.property.set","id":"1070847078","params":{"Ev_temp":20,"Ev_temp2":30},"version":"1.0.0"}
将上述内容修改如下:
发布后,物联网平台数据更改如下:
八、补充:配置MQTT的另一种方法
- 配置MQTT的另一种方法:通过网页计算参数。配置MQTT教程。
利用之前复制的信息完成配置。
{
"ProductKey": "a1XCO1LuKm9",
"DeviceName": "Device0",
"DeviceSecret": "8bd059eeb76d0bc9a9acf2b8ea740872"
}
(1)下载网页计算工具。
(2)填写内容计算账号、密码。
(3)将上述结果填入新建的MQTT。
① Profile Name: 之前添加设备的名字,如 Device0。
② Profile Type:MQTT Broker。
③ Broker Address: a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com
。将ProductKey 的 a1XCO1LuKm9 替换a1***。
如: a1XCO1LuKm9.iot-as-mqtt.cn-shanghai.aliyuncs.com
④ Broker Port:固定为 1883。
⑤ Client ID:a1***.device1|securemode=2,signmethod=hmacsha1,timestamp=2524608000000|
。将ProductKey 的 a1XCO1LuKm9替换a1***.device1。其中signmethod为加密算法类型。
如:a1XCO1LuKm9|securemode=2,signmethod=hmacsha1,timestamp=2524608000000|
(4)点击OK。