准备工作:给ESP12F烧录MQTT固件,可以参考我的上篇文章
《零基础STM32+ESP12F+MQTT连接阿里云服务器完整流程(一、给ESP12F烧写AT/MQTT固件)》
一、创建阿里云平台
登录阿里云物联网平台,自己创建阿里云账号开通物联网平台。
点击公共实例——点击设备管理——点击产品——点击创建产品
设置产品名称(我以TestDevice为例)
点击设备——添加设备(我以STM32F103C8T6为例)
找到我们新建的产品TestDevice——点击查看——点击功能定义——点击编辑草稿
点击添加自定义功能,设置参数如下所示,之后发布上线。
点击设备——找到刚刚创建的设备(STM32F103C8T6)——点击查看——一键复制 设备三元组以便后续步骤进行。
以上 步骤就是创建阿里云平台的所有步骤。
二、使用AT指令使ESP12F连接阿里云平台
利用阿里云物联网平台配置工具生成设备信息。将自己三元组复制到右侧(TimeStamp不填,Clientld填五位数。不然连接阿里云时可能会报错连接不上)点击生成生成相关信息。
配置工具
链接:https://pan.baidu.com/s/1cXLG0MeSnBSy53SeIoqr3g
提取码:hrwc
将连接域名、Clientld、Username、Password四个信息复制粘贴保存下来,以便后续相关步骤的进行。
2. 打开串口调试助手,输入相关AT指令连接阿里云服务器
(2)连接阿里云ESP8266+AT指令
①AT+RST //重启设备
②AT+CWMODE=1 //设置ESP12F为Station模式,可以连接WIFI
③AT+CIPSNTPCFG=1,8,”iot.console.aliyun.com” //开启SNTP服务器,这一步为固定步骤
④AT+CWJAP=“abgo”,“1234567889” //连接WIFI,记得改为自己的手机热点
⑤AT+MQTTUSERCFG=0,1,“NULL”,“Username”,“Password”,0,0,”” //配置 MQTT 用户属性,要将Username、Password改为用配置工具生成的自己的设备信息
⑥AT+MQTTCLIENTID=0,“Clientld” //配置 MQTT 客户端 ID,记得将Clientld改为自己的设备信息,而且在逗号前面要加一个转义符号“\” 可以看我下面的图片
⑥AT+MQTTCONN=0,“连接域名”,1883,1 //连接/查询 MQTT Broker,注意将连接域名改为自己的设备信息
此时打开阿里云服务器,可以看见我们创建的设备此时已经在线,如下图
通过订阅与发布实现通信
订阅与发布是MQTT协议的核心内容,大家可以稍微去学习了解一下。我在这里举一个例子以便大家了解。我们平时无聊时候就会去刷抖音,抖音系统就可以很好解释MQTT协议。我们(客户端)会订阅我们喜欢的博主,而抖音就像 一个服务器,当我们已经订阅过的博主发布新的作品时,抖音就会自动的推送给我们。APP通过阿里云控制单片机的思路如下
(1)我们可以在阿里云平台自己创建的产品中查看topic列表。点击产品——topic列表——物理型通信topic,可以看到很多的topic(注意在我们自己要用topic时要把${devicename}改为自己设备的devicename)
我们也可以自定义topic,点击自定义topic——点击topic类,其中权限和名字都可以自己设置。
进行通信测试——订阅主题(以订阅自定义类topic为例)
//订阅示例代码
AT+MQTTSUB=0,"topic",1 //订阅
- 1
- 2
在串口调试助手中继续发送指令
在阿里云服务器我们的设备中可以看到我们订阅的topic,在阿里云中的topic上发送消息,串口也会打印出接收到的消息
- 进行通信测试——发布主题(以订阅自定义类topic为例)
// 发布示例代码
AT+MQTTPUB=0,"topic","test",1,0
- 1
- 2
- 3
在串口调试助手中继续发送指令可以看到如下结果(因为我们已经订阅该主题,所以发布消息后立即会推送给他自己)
或者也可以在阿里云的日志服务里看到阿里云与ESP12F之间的数据交互
总结
大家需要好好理解MQTT协议的订阅与发布(其实道理很简单),一定要弄懂后边通过订阅与发布实现通信的过程,搞清楚是谁发送给谁的消息。
另外最后我是以自定义topic为例子,大家也可以自己尝试订阅与发布物理型模型,不过发送接收数据要用jason格式,可以参考其他博主文章进行操作理解。
下一步
————————————————
版权声明:本文为CSDN博主「阿冰go」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_47765352/article/details/124935180