寫在前面:
當你遇到一件麻煩事的時候,你要做的就是乖乖聽它的話,別再自找麻煩。
1.參考資料
2.下載IDF和IDE
不推薦使用esclipse和vscode插件,除非你經常用這兩個,對它們很熟悉,而且下載插件時可能需要外部上網
推薦使用樂鑫官方的IDF和IDE,參考見 https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32c6/get-started/windows-setup.html
·
首先下載一個 ESP-IDF 工具安裝器
第一個很小那個只是一個下載器,第二個是已經把庫一起下好的,建議下載第二個,然后按照步驟安裝就行了
下載安裝好以后你的桌面上應該會有三個圖標

3.下載at固件庫
一般是去樂鑫的github下載,詳情見 https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32c6/AT_Binary_Lists/index.html
如果沒有官方的固件庫發布版,只有去github下載臨時固件,這種方法不能夠設置固件且只能使用串口下載,但使用更方便,見 https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32c6/Compile_and_Develop/How_to_download_the_latest_temporary_version_of_AT_from_github.html
我使用的是另一種方法,詳情見 https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32c6/Compile_and_Develop/How_to_clone_project_and_compile_it.html
這種方法比第一種簡單,但需要已經安裝好IDF,先執行ESP-IDF 5.1 PowerShell,再用ESP-IDF CMD以管理員身份打開,最好把下載路徑設置成IDF同一個父級,需要用cd命令跳轉到下載好的esp-at文件夾,在其中執行指令。它這個是自帶python環境,不需要你下載安裝python
第一次使用需要配置工程,在cmd中用python build.py menuconfig指令調出圖形界面,按需配置,一般保持默認就好了,直接load
使用python build.py build建立工程文件
下載固件庫一般經過USB或者UART0連接電腦,你需要找到連接的COM口,然后使用python build.py -p COM15 flash 命令,這里以COM15為例。當調試信息出現Serial port COM15,你應該按住板子上的boot按鍵,再按一下復位鍵,進入下載模式,否則將會出現以下提示:

刷固件庫只會寫入部分設置,比如波特率不會恢復默認,如果需要全部清除,則使用python build.py erase_flash來擦除全片flash,重新下載固件庫
配置AT串口波特率、引腳需要打開esp-at\components\customized_partitions\raw_data\factory_param文件,在對應欄修改即可

修改后還需要使用python build.py build重新建立工程,再下載固件庫
4.使用AT指令
樂鑫的下載固件的口和AT通信的口不是同一個,你需要去這里查看
或者當你連接下載固件庫的口上電復位板子,它會打印一串信息,其中就有AT cmd port:uart1 tx:7 rx:6 cts:5 rts:4 baudrate:115200,其中tx:7和rx:6表示p7口是tx、p6口是rx,需要自己準備一個UART-USB轉接板,一端uart連樂鑫板子,一端usb連pc

如果上電后從調試UART口讀到waiting for download,而你已經下載好了固件庫,可能是因為供電不足,只需要同時連接串口和USB并復位即可。
5.使用AT建立TCP連接
1.設置模塊為AP模式(接收)或STA模式(發送)
AT+CWMODE=<mode>[,<auto_connect>]
AP命令:AT+CWMODE=2
STA命令:AT+CWMODE=1
2.啟用DHCP動態主機配置協議(STA端)
如果不啟用DHCP,你需要手動配置網關、子網掩碼等,很麻煩
AT+CWDHCP=1,1
3.連接AP
AP端既可以是wifi模塊,也可以是路由器,連接指令都是一樣的。
AT+CWJAP=[<ssid>],[<pwd>][,<bssid>][,<pci_en>][,<reconn_interval>][,<listen_interval>][,<scan_mode>][,<jap_timeout>][,<pmf>]
可選的配置很多,但只需要ssid和pwd即可
如連接模塊:AT+CWJAP="ESP","1234567890"
如連接路由器:AT+CWJAP="ssid","123456789"
當你選擇模塊作為AP時,你可能需要設置或查詢它的AP信息
查詢:AT+CWSAP?
響應:+CWSAP:<ssid>,<pwd>,<channel>,<ecn>,<max conn>,<ssid hidden>
設置:AT+CWSAP=<ssid>,<pwd>,<channel>,<ecn>,[,<max conn>][,<ssid hidden>]
例如:AT+CWSAP="ESP","1234567890",5,3
<>內是必需,[ ]內是可選
4.建立TCP連接
TCP Servicer 既可以是PC,也可以是wifi模塊
- 如果是PC,你需要在PC上創建TCP,用cmd的ipconfig查詢你的IP地址,使用網絡調試助手可以建立TCP Servicer并設置你的端口號;
- 如果是wifi模塊,你需要發送AT指令來查詢或設置
設置連接模式
單連接:AT+CIPMUX=0
多連接:AT+CIPMUX=1
查詢地址:AT+CIFSR
響應第一個為SoftAP 的 IPv4 地址
設置端口號:AT+CIPSERVER=<mode>[,<param2>][,<"type">][,<CA enable>]
如:AT+CIPSERVER=1,80
上例1為建立服務器,80為端口號
STA端連接的方式是一樣的,命令參數為類型+IP地址+端口號
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<keep_alive>][,<"local IP">]
多接點需要使用AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<keep_alive>][,<"local IP">]
如:AT+CIPSTART="TCP","192.168.11.62",8089
5.發送數據
透傳:AT+CIPSEND
退出透傳:+++
規定字節發送:AT+CIPSEND=<length>
多連接:AT+CIPSEND=<link ID>,<length>
6.其他
啟用TCP_NODELAY可以禁用Nagle算法,當你發送的數據包比較小且連續發送時,可以使用AT+CIPTCPOPT=-1,1,0,0命令
你還可能需要更改串口波特率AT+UART_DEF=1000000,8,1,0,0
浙公網安備 33010602011771號