目录
链接快速定位
ESP8266 -- 搭建阿里云物联网与MQTT.fx通信的平台(二)
所有资料也可在顶部进行免费下载,也可通过评论留下邮箱进行发送
前沿
前面讲解了ESP8266 -- 烧录AT固件(一)和ESP8266 -- 搭建阿里云物联网与MQTT.fx通信的平台(二),这里讲解一下串口助手使用AT命令实现对阿里云物联平台的发布和订阅操作。
1 AT MQTT指令文档下载
进入安信可固件页面,下载MQTT AT命令的使用指导,我这里下载的是固件号为1471的固件版本,他使用的是固件号1030的使用指导。
下载的AT MQTT指令手册,有对每个指令的详细说明,这里主要关注MQTT指令,所以主要关注第九章的内容。
2 AT MQTT指令连接阿里云平台
AT
AT+RESTORE
AT+CWMODE=1
AT+CWJAP="wifi名称","wifi密码"
AT+CIPMUX=0
AT+MQTTUSERCFG=0,1,"client_id","username","password",0,0,""
AT+MQTTCONN=0,"host",port,0
AT+MQTTSUB=0,"topic",0
AT+MQTTPUB=0,"topic","data",0,0
如何烧录AT MQTT固件请参考:ESP8266 -- 烧录AT固件(一)
主要是对上述命令进行验证,上述命令主要是实现:
- 连接wifi热点
- 连接云平台
- 发布和订阅消息
- 数据上报及属性设置
具体AT命令说明这里不做解释,可以自行参考AT MQTT命令手册。
2.1 AT命令连接wifi
- < AT > 命令测试
记得加回车换行(手动换行或者串口助手自动换行),我这里选择串口助手自动换行。
- < AT+RESTORE > 命令测试
- < AT+CWMODE=1 > 命令测试
- < AT+CWJAP="wifi名称","wifi密码" > 命令测试
2.2 AT命令连接阿里云平台
如何搭建阿里云物联网平台请参考:ESP8266 -- 搭建阿里云物联网与MQTT.fx通信的平台(二)
- < AT+CIPMUX=0 > 命令测试
- < AT+MQTTUSERCFG=0,1,"client_id","username","password",0,0,"" > 命令测试
这里使用阿里云物联网平台进行连接,点击<设备>,查看<MQTT连接参数>,把连接参数输入到相应的位置。然后发送AT指令。
按照上面的发送,发现发送的AT指令报错,这是因为client_id有逗号存在,这里的解决方法是在逗号前面增加“\”解决,具体举例如下:
原始的client_id:izi77c2rrrB.TestDevice|securemode=2,signmethod=hmacsha256,timestamp=1703540769510|
修正后的client_id:izi77c2rrrB.TestDevice|securemode=2\,signmethod=hmacsha256\,timestamp=1703540769510|
使用修正后的client_id发送数据,发现回复OK,证明修正成功。
- < AT+MQTTCONN=0,"host",port,0 > 命令测试
查看<MQTT连接参数>,得到“host”和"port"的参数。
2.3 AT命令实现订阅和发布
首先订阅消息,然后在发布消息,发布消息完成,串口界面自动显示订阅的消息及大小。
2.3.1 自定义环回测试
首先找到环回测试的的Topic,进入阿里云物联网平台,进入<产品>--<Topic类列表>--<自定义Topic>,定义一个发布和订阅的Topic,我这里定义了一个名称为LoopTopic的主题。
- < AT+MQTTSUB=0,"topic",0 > 命令测试
定义好自定义的Topic之后,去到<设备>--<Topic列表>页面,把刚才定义好的Topic找到,替换掉< AT+MQTTSUB=0,"topic",0 >里面的“Topic”。
- < AT+MQTTPUB=0,"topic","data",0,0 > 命令测试
同< AT+MQTTSUB=0,"topic",0 > 命令测试一样的操作,然后发送一串字符串,查看正确接收到了数据。最终实现了对指定topic的发布和订阅操作,这里发送的数据是“This is a MQTT test”,大小是19字节,收到的数据是“This is a MQTT loop test”,数据大小是24字节,功能验证正确。
同时也能在云端查看发生和接收的数据及Topic。
2.3.2 物模型的属性上报和属性设置
物模型的创建、Topic及数据的编码格式获取这里不讲,请参考:ESP8266 -- 搭建阿里云物联网与MQTT.fx通信的平台(二)。
- 属性上报
属性上报就是下位机实时上报数据到云端,云端收到下位机上报的数据之后,回复下位机已确认收到消息。
< AT+MQTTSUB=0,"topic",0 > 命令测试
< AT+MQTTPUB=0,"topic","data",0,0 > 命令测试
这里又发现发布的数据出现问题,和上面“< AT+MQTTUSERCFG=0,1,"client_id","username","password",0,0,"" > 命令测试”问题一样,都是逗号前面需要增加“\”符号,不过这里面有存在 " 符号,我们也需要在 " 符号前面增加 "\" 符号(注意字符串前后本身存在""符号。不需要在加"\"),举例说明一下:
原始的命令:AT+MQTTPUB=0,"topic,123"125",55","data",0,0
修正后的命令:AT+MQTTPUB=0,"topic\,123\"125\"\,55","data",0,0
修正之后,发送正常,这里发送给标签为TestTSL的数据为888。同时可以在阿里云物联网平台查看到发布和订阅的数据。
- 属性设置
属性设置就是下位机实时订阅消息,等到云端下发数据,下位机及时响应消息,并进行相应的动作,比如开关灯等。
< AT+MQTTSUB=0,"topic",0 > 命令测试
1. 首先订阅属性设置的主题,进行实时的监控。主题可以通过查看产品的Topic页面找到。
2. 进入阿里云物联网平台的<在线调试>界面,发送数据123,在串口助手界面,查看到接收到的数据为123。
接下来讲解STM32利用ESP8266与阿里云进行数据交互,敬请期待。。。