ESP32 AT指令模式連接百度云天工物接入
1. 前言
? ESP32是樂(lè)鑫公司的一款 WiFi+藍(lán)牙雙模組,通過(guò)使用ESP32可以輕松快速的將設(shè)備接入物聯(lián)網(wǎng)云平臺(tái)。
? ESP32模組支持 IDF 開發(fā)和 AT 指令開發(fā)兩種方式。
? IDF開發(fā),也即直接片上編程進(jìn)行二次開發(fā),這種方式開發(fā)和普通的MCU開發(fā)十分相似,底層基于FreeRTOS實(shí)時(shí)操作系統(tǒng)+LwIP協(xié)議棧;
? AT指令開發(fā),這種方式開發(fā)更加簡(jiǎn)單,官方提供了一個(gè)AT指令固件,將此固件燒錄在ESP32中,即可通過(guò)串口控制ESP32完成一系列的配網(wǎng)聯(lián)網(wǎng)功能,不用管內(nèi)部細(xì)節(jié)如何實(shí)現(xiàn)。
? 本文主要講解如何采用AT指令的模式快速實(shí)現(xiàn)連接百度云平臺(tái),將設(shè)備接入物聯(lián)網(wǎng),其他云平臺(tái)相差也不大,亦可作為參考。
2. 芯片介紹及資料說(shuō)明
本文采用的芯片是 ESP32-WROOM-32UE,基于 ESP32-DevKitC 開發(fā)板。
關(guān)于芯片選型可以參考:https://products.espressif.com/#/product-selector?language=zh&names=
芯片資料可以參考:https://www.espressif.com.cn/zh-hans/support/documents/technical-documents
ESP32-DevKitC開發(fā)板資料:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/hw-reference/esp32/get-started-devkitc.html
關(guān)于ESP32-DevKitC開發(fā)板,最重要的是這張圖:(注意:根據(jù)esp32-wroom-32e_esp32-wroom-32ue_datasheet_cn.pdf 手冊(cè)上說(shuō)明,最新的ESP32-WROOM-32UE芯片D0 D1 D2 D3 CMD SCK
引腳實(shí)際上是沒(méi)有接出來(lái)的)
ESP32 IDF開發(fā)指南參考:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html#id2
ESP32 AT指令開發(fā)指南參考:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/What_is_ESP-AT.html
綜上,可以看出其實(shí)ESP32在文檔這塊的資料做的還是十分充分的,這也是國(guó)內(nèi)各大芯片廠商所值得學(xué)習(xí)的一個(gè)方面。
3. 連接云平臺(tái)
3.1 下載AT固件
-
下載燒錄軟件:(Flash下載工具 Windows)https://www.espressif.com.cn/zh-hans/support/download/other-tools
-
下載AT固件包:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/AT_Binary_Lists/ESP32_AT_binaries.html
-
硬件連接:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/Hardware_connection.html
- 由于我們這里采用是 ESP32-WROOM-32UE,因此參考 ESP32-WROOM 系列硬件連接
- 注意下載串口和AT指令控制串口為不同的串口
- 由于我們這里采用是 ESP32-WROOM-32UE,因此參考 ESP32-WROOM 系列硬件連接
-
下載指導(dǎo)說(shuō)明:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Get_Started/Downloading_guide.html#at
3.2 AT指令測(cè)試
采用AT指令的串口進(jìn)行AT指令測(cè)試,注意AT指令的串口與下載所使用的串口不一致
-
發(fā)送:
AT
-
回復(fù):
OK
說(shuō)明測(cè)試OK,AT固件燒錄成功,發(fā)送的時(shí)候注意勾選**“發(fā)送新行”**,esp32通過(guò)檢測(cè) \r\n
作為指令結(jié)束
3.3 連接網(wǎng)絡(luò)
連接網(wǎng)絡(luò)采用SmartConfig對(duì)ESP32模組進(jìn)行智能配網(wǎng),當(dāng)然也可以直接將 WiFi 名和 WiFi 密碼發(fā)送給ESP32進(jìn)行指定連接,但是在實(shí)際產(chǎn)品中,每個(gè)客戶的網(wǎng)絡(luò)均不一樣,因此采用智能配網(wǎng)的模式更加通用。
WiFi指令集參考:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/AT_Command_Set/Wi-Fi_AT_Commands.html#at-cwjap-ap
SmartConfig 手機(jī)客戶端(ESP-TOUCH for Android or IOS):https://www.espressif.com.cn/zh-hans/support/download/apps
SmartConfig 相關(guān)資料:https://www.espressif.com.cn/zh-hans/support/documents/technical-documents?keys=ESP-TOUCH
-
設(shè)置 WiFi 模式為 Station 模式,指令:
AT+CWMODE=1
-
開啟SmartConfig進(jìn)行配網(wǎng)(可調(diào)用 AT+CWSTOPSMART 停止 SmartConfig,然后再執(zhí)行其他命令。注意,在 SmartConfig 過(guò)程中請(qǐng)勿執(zhí)行其他命令),指令:
AT+CWSTARTSMART
-
手機(jī)連接對(duì)應(yīng) WiFi,打開對(duì)應(yīng)的配網(wǎng)APK,進(jìn)行配網(wǎng)(注意ESP32只能連接到2.4G網(wǎng)絡(luò)上,無(wú)法連接到5G網(wǎng)絡(luò)),連接成功之后,串口上會(huì)有連接信息確認(rèn)
-
配網(wǎng)完成,關(guān)閉SmartConfig
AT+CWSTOPSMART
-
查詢WiFi連接狀態(tài)和WiFi信息
AT+CWSTATE?
-
查詢Station模式IP信息
AT+CIPSTA?
-
通過(guò)SNTP獲取網(wǎng)絡(luò)時(shí)間
設(shè)置SNTP服務(wù)器AT+CIPSNTPCFG=1,8,“pool.ntp.org”
獲取實(shí)時(shí)時(shí)間
AT+CIPSNTPTIME?
3.4 配置云平臺(tái)
- 登錄百度云服務(wù)器平臺(tái)
- 進(jìn)入物聯(lián)網(wǎng)核心套件IOT Core
- 在百度云物聯(lián)網(wǎng)核心套件創(chuàng)建實(shí)例,創(chuàng)建設(shè)備等操作,具體有關(guān)這塊怎么實(shí)現(xiàn),云平臺(tái)均有詳細(xì)的文檔說(shuō)明,根據(jù)對(duì)應(yīng)的文檔實(shí)現(xiàn)即可,以百度云平臺(tái)為例,可以參考:https://cloud.baidu.com/doc/IoTCore/s/pk7ophcd8,創(chuàng)建完之后如下圖所示:
3.5 配置MQTT連接云平臺(tái)
3.5.1 MQTT.fx 連接云平臺(tái)
-
首先采用
MQTT.fx
上位機(jī)軟件進(jìn)行對(duì)云平臺(tái)進(jìn)行測(cè)試,關(guān)于MQTT.fx軟件的下載可以自行上網(wǎng)搜索 -
根據(jù)云平臺(tái)的數(shù)據(jù),獲取以下幾個(gè)重要連接信息
- Broker 地址
- MQTT 用戶名
- MQTT 密碼
關(guān)于此數(shù)據(jù)的構(gòu)成,每個(gè)云平臺(tái)都不一樣,但是每個(gè)云平臺(tái)的文檔說(shuō)明中均有詳細(xì)描述,以百度云為例,打開對(duì)應(yīng)設(shè)備,查看有關(guān)信息,之后通過(guò)在線生成器生成上述關(guān)鍵信息,在線生產(chǎn)器鏈接地址:在線生產(chǎn)器
-
采用上述信息,使用MQTT.fx軟件接入云平臺(tái)
-
訂閱主題測(cè)試
-
往主題發(fā)布消息,測(cè)試能否接收
3.5.2 ESP32 連接云平臺(tái)
-
采用3.5.1章節(jié)同樣的方式,將云端的ESP32所對(duì)應(yīng)的設(shè)備,通過(guò)在線生產(chǎn)器 工具,計(jì)算對(duì)應(yīng)的連接信息
-
設(shè)置MQTT用戶屬性
AT+MQTTUSERCFG=0,1,“esp32_dev1”,“mqtt_name”,“mqtt_password”,0,0,“”
上述指令內(nèi)有關(guān)信息需要根據(jù)自己的設(shè)備信息進(jìn)行修改,關(guān)于指令格式可以參考:配置 MQTT 用戶屬性
-
連接 MQTT Broker
AT+MQTTCONN=0,<“host”>,<port>,1
上述指令內(nèi)有關(guān)信息需要根據(jù)自己的設(shè)備信息進(jìn)行修改,關(guān)于指令格式可以參考:連接 MQTT Broker
-
訂閱主題
AT+MQTTSUB=<LinkID>,<topic">,<qos>
上述指令內(nèi)有關(guān)信息需要根據(jù)自己的設(shè)備信息進(jìn)行修改,關(guān)于指令格式可以參考:訂閱 MQTT Topi,注意這里訂閱的主題需要是你在云端已經(jīng)配置好的主題,否則會(huì)失敗,這里我們訂閱主題名為
iot/esp32_dev1/user/test
-
往主題發(fā)送數(shù)據(jù)
AT+MQTTPUB=<LinkID>,<“topic”>,<“data”>,<qos>,<retain>
上述指令內(nèi)有關(guān)信息需要根據(jù)自己的設(shè)備信息進(jìn)行修改,關(guān)于指令格式可以參考:發(fā)布 MQTT 消息(字符串)
4. 補(bǔ)充說(shuō)明
如果需要完成多個(gè)設(shè)備之間的通訊,多個(gè)設(shè)備可以訂閱相同的主題,當(dāng)然這些設(shè)備需要在一個(gè)實(shí)例下面,我們可以自己創(chuàng)建一個(gè)主題,由于我們的上位機(jī) Mqtt.fx 和ESP32兩個(gè)云端的設(shè)備都有這個(gè)主題,因此可以通過(guò)此主題實(shí)現(xiàn)上位機(jī) Mqtt.fx 和ESP32的通訊,當(dāng)然還可以使用規(guī)則引擎通過(guò)云端完成數(shù)據(jù)的轉(zhuǎn)發(fā)等處理,以及在上述中我們往iot/esp32_dev1/user/test
主題發(fā)布一條消息,結(jié)果收到了兩條消息,這都是于云平臺(tái)有一定關(guān)系的,不同的云平臺(tái)大體上相差不多,但是細(xì)節(jié)上有些許差異,大家可以通過(guò)查閱對(duì)應(yīng)的平臺(tái)文檔進(jìn)行查看,此外,遇到問(wèn)題,還可以通過(guò)提交工單的方式,后臺(tái)會(huì)有技術(shù)人員進(jìn)行解決。
以上便是關(guān)于如何使用ESP32 AT指令的方式如何接入云平臺(tái)了,希望本文章能真正幫助到有需要的人,在此過(guò)程中你可能遇到各種奇怪的問(wèn)題,發(fā)揮你的主觀能動(dòng)性,通過(guò)各種方法總能找到解決方案,加油!
創(chuàng)作不易,轉(zhuǎn)發(fā)請(qǐng)注明出處,點(diǎn)贊收藏+關(guān)注,找我不迷路!
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-799510.html文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-799510.html
?
到了這里,關(guān)于ESP32 AT指令模式連接百度云天工物接入的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!