概述
上一部分成功连接阿里云,完成了阿里云的连接与ping操作。
下面介绍使用pahomqtt连接阿里云IOT,完成消息的发布和订阅。完成云端和设备端的通讯。
实现步骤
1.使用MQTT.fx模拟设备端,与阿里云平台进行通讯,验证可行性
2.使用stm32编写代码,完成真机调试
准备工作
硬件准备
使用stm32系列MCU,并有带网络功能的外设
软件准备
- CubeMX用于配置工程
- MDK5编写编译代码
- MQTT.fx作为虚拟设备端完成仿真调试
- 阿里云IOT平台
实现部分
使用MQTT.fx完成仿真
1.根据阿里云的文档创建一个产品,创建一个这个产品的设备,并添加一个自定义功能
为了便于验证,我创建的是一个最简单的属性,一个LED灯的开关
2.根据生成的设备三元组,使用MQTT.fx添加参数连接阿里云
以上参数如何填写在阿里云文档里都能找到,我在前面的内容中也说过,这里不再赘述。见物联网设计 (五)
填写完,点击Connect,连接阿里云,成功后看到阿里云控制台显示在线
2.在MQTT.fx中添加要订阅和发布的话题
在设备的Topic列表中发现,有两个话题分别是我们需要的上报属性的话题和云端设置属性的话题。
根据这个,在MQTT.fx中订阅/sys/a1w0XJbXwh0/SmartLED_01/thing/service/property/set
这个话题
发布sys/a1w0XJbXwh0/SmartLED_01/thing/event/property/post
这个话题
3.在阿里云控制台点击在线运维,选择刚刚我们创建的设备的功能,方法选择:设置
如上图,会自动生成一个JSON格式的数据。点击发送指令。我们会在MQTT.fx端接收到消息。
接收成功,下面我们要向post话题发布消息
发布消息的JSON格式仿照我们接收回来的消息格式
{
"method" : "thing.service.property.post",
"id" : "12345",
"params" : {
"LEDSwitch" : 1
},
"version" : "1.0.0"