烧录MQTT固件
购买的ESP8266一般没带MQTT固件,所以无法通过MQTT指令与云平台通信,需要烧录固件。 MQTT固件可以在安信可科技进行下载。
[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,0AT+MQTTPUB=0,"/sys/a1ZCbJN0kQB/4WpGE15ik3MbGt0lEiIj/thing/event/property/post","{params:{"CurrentHumidity":66}}",0,0
实际情况如下所示:
下发数据
下发数据可以按照如下操作进行。
实际情况如下所示。
断开连接
使用下列指令可以断开连接
AT+MQTTCLEAN=0