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?

下載完畢之后,選擇對應模塊的型號。?

接線方式如下所示。?

選擇剛剛下載的固件,配置好對應的串口,點擊下載即可。?

下載成功如下所示。?

若出現(xiàn)這種情況8-download data fail,則是flash大小不夠,需要更換nor flash。?

創(chuàng)建阿里云產品
阿里云官網:https://www.aliyun.com/?選擇物聯(lián)網平臺,開始創(chuàng)建產品。?

選擇公共實例,點擊進入。?

創(chuàng)建產品。?

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

添加設備。?

這里可以輸入自己喜歡的設備名字,也可以點擊確認自動生成。?

生成設備之后,將溫濕度上報添加進來。?

添加標準功能。?

添加所需功能。?

添加完畢之后點擊上線。?

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 服務器,設置中國時區(qū) (UTC+08:00)?

AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
查看MQTT參數(shù),這里面包含MQTT三元組信息:clientld,username,password?

設置登錄密碼?

對應的MQTT參數(shù)如下所示。?

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參數(shù)如下所示。?

注意:需要在每個逗號前面加上\
AT+MQTTCLIENTID=0,"a1ZCbJN0kQB.4WpGE15ik3MbGt0lEiIj|securemode=2\,signmethod=hmacsha256\,timestamp=1679562771636|"
連接 MQTT Broker?

對應的MQTT參數(shù)如下所示。?

設置指令:
AT+MQTTCONN=0,"a1ZCbJN0kQB.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883,1
此時可以查看設備,可以看到已經是在線狀態(tài)。?

訂閱
訂閱Topic是指在一個訂閱服務中,用戶可以選擇關注或訂閱感興趣的話題或主題。?

通過訂閱Topic,用戶可以更加精準地獲取自己的內容,提高信息的質量和效率。?

發(fā)送AT指令,訂閱Topic?

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

訂閱成功會在阿里云進行顯示。?

上報數(shù)據
這里定義了溫濕度的功能。?

可以使用AT+MQTTPUBRAW發(fā)布 MQTT 消息?

例如發(fā)送溫度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
實際情況如下所示:?

下發(fā)數(shù)據
下發(fā)數(shù)據可以按照如下操作進行。?

實際情況如下所示。?

斷開連接

使用下列指令可以斷開連接
AT+MQTTCLEAN=0