STM32驱动ESP8266连接阿里云(1)----使用AT指令连接阿里云

描述

烧录MQTT固件

购买的ESP8266一般没带MQTT固件,所以无法通过MQTT指令与云平台通信,需要烧录固件。 MQTT固件可以在安信可科技进行下载。

[https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/index.html]

STM32

下载器可以使用乐鑫官方的下载器。

[https://www.espressif.com.cn/zh-hans/support/download/other-tools]

STM32

下载完毕之后,选择对应模块的型号。

STM32

接线方式如下所示。

STM32

选择刚刚下载的固件,配置好对应的串口,点击下载即可。

STM32

下载成功如下所示。

STM32

若出现这种情况8-download data fail,则是flash大小不够,需要更换nor flash。

STM32

创建阿里云产品

阿里云官网:https://www.aliyun.com/

选择物联网平台,开始创建产品。

STM32

选择公共实例,点击进入。

STM32

创建产品。

STM32

这里我的基本配置如下所示。

STM32

添加设备。

STM32

这里可以输入自己喜欢的设备名字,也可以点击确认自动生成。

STM32

生成设备之后,将温湿度上报添加进来。

STM32

添加标准功能。

STM32

添加所需功能。

STM32

添加完毕之后点击上线。

STM32

AT指令接入阿里云 AT指令手册:
[https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/AT_Command_Set/MQTT_AT_Commands.html]

设置Wi-Fi模式

STM32

AT+CWMODE=1

连接路由器

STM32

例如WIFI名称66,密码:1234abcd,则输入

AT+CWJAP="66","1234abcd"

可以通过查询IP地址来查看是否连接上wifi。

STM32

AT+CIFSR

使能 SNTP 服务器,设置中国时区 (UTC+08:00)

STM32

AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"

查看MQTT参数,这里面包含MQTT三元组信息:clientld,username,password

STM32

设置登录密码

STM32

对应的MQTT参数如下所示。

STM32

AT+MQTTUSERCFG=0,1,"NULL","4WpGE15ik3MbGt0lEiIj&a1ZCbJN0kQB","0ac7bb4bf8eb2b96ea8ced5760eb72b62238935a5ec42c22849fcee7fe13137d",0,0,""

STM32

配置 MQTT 用户属性 设置指令:

AT+MQTTUSERCFG=< LinkID >,< scheme >,< "client_id" >,< "username" >,< "password" >,< cert_key_ID >,< CA_ID >,< "path" >

对应的MQTT参数如下所示。

STM32

注意:需要在每个逗号前面加上

AT+MQTTCLIENTID=0,"a1ZCbJN0kQB.4WpGE15ik3MbGt0lEiIj|securemode=2,signmethod=hmacsha256,timestamp=1679562771636|"

连接 MQTT Broker

STM32

对应的MQTT参数如下所示。

STM32

设置指令:

AT+MQTTCONN=0,"a1ZCbJN0kQB.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1

此时可以查看设备,可以看到已经是在线状态。

STM32

订阅

订阅Topic是指在一个订阅服务中,用户可以选择关注或订阅感兴趣的话题或主题。

STM32

通过订阅Topic,用户可以更加精准地获取自己的内容,提高信息的质量和效率。

STM32

发送AT指令,订阅Topic

STM32

AT+MQTTSUB=0,"/a1ZCbJN0kQB/4WpGE15ik3MbGt0lEiIj/user/get",1

STM32

订阅成功会在阿里云进行显示。

STM32

上报数据

这里定义了温湿度的功能。

STM32

可以使用AT+MQTTPUBRAW发布 MQTT 消息

STM32

例如发送温度32 湿度66

AT+MQTTPUB=0,"/sys/a1ZCbJN0kQB/4WpGE15ik3MbGt0lEiIj/thing/event/property/post","{params:{"Temperature":32}}",0,0
AT+MQTTPUB=0,"/sys/a1ZCbJN0kQB/4WpGE15ik3MbGt0lEiIj/thing/event/property/post","{params:{"CurrentHumidity":66}}",0,0

实际情况如下所示:

STM32

下发数据

下发数据可以按照如下操作进行。

STM32

实际情况如下所示。

STM32

断开连接

STM32

使用下列指令可以断开连接

AT+MQTTCLEAN=0

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分