ESP8266 -- 串口助手 AT MQTT 指令与阿里云物联网平台建立通信(三)

目录

链接快速定位

前沿

1 AT MQTT指令文档下载

2 AT MQTT指令连接阿里云平台

2.1 AT命令连接wifi

2.2 AT命令连接阿里云平台

2.3 AT命令实现订阅和发布

2.3.1 自定义环回测试

2.3.2 物模型的属性上报和属性设置


链接快速定位

ESP8266 -- 烧录AT固件(一)

ESP8266 -- 搭建阿里云物联网与MQTT.fx通信的平台(二)

安信可固件

AT MQTT命令手册

所有资料也可在顶部进行免费下载,也可通过评论留下邮箱进行发送

前沿

        前面讲解了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与阿里云进行数据交互,敬请期待。。。

  • 24
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

binhaoPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值