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

烧录MQTT固件

购买的ESP8266一般没带MQTT固件,所以无法通过MQTT指令与云平台通信,需要烧录固件。
MQTT固件可以在安信可科技进行下载。
交流qun:6_15061293。
https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/index.html

下载器可以使用乐鑫官方的下载器。
https://www.espressif.com.cn/zh-hans/support/download/other-tools

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

接线方式如下所示。

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

下载成功如下所示。

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

创建阿里云产品

阿里云官网:https://www.aliyun.com/
选择物联网平台,开始创建产品。

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

创建产品。

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

添加设备。

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

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

添加标准功能。

添加所需功能。

添加完毕之后点击上线。

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模式

AT+CWMODE=1

连接路由器

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

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

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

AT+CIFSR

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

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

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

设置登录密码

对应的MQTT参数如下所示。

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

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

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

对应的MQTT参数如下所示。

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

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

连接 MQTT Broker

对应的MQTT参数如下所示。

设置指令:

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

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

订阅

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

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

发送AT指令,订阅Topic

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

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

上报数据

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

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

例如发送温度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

实际情况如下所示:

下发数据

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

实际情况如下所示。

断开连接

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

AT+MQTTCLEAN=0
物联沃分享整理
物联沃-IOTWORD物联网 » STM32驱动ESP8266连接阿里云(1)—-使用AT指令连接阿里云

发表评论