- 连接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。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!*
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!