前言
人生如逆旅,我亦是行人。
名詞解釋
縮寫 | 意思 |
---|---|
AT(automatic transmission) | 自動變速器 |
WiFi | 無線網(wǎng) |
AP(Access Point) | 無線訪問接入點,無線路由器等類設(shè)備的統(tǒng)稱 |
AP 模式 | 無線接入點模式 |
RST(TCP協(xié)議的 6 個標(biāo)志之一) | 表示重置連接、復(fù)位連接 |
TCP | 傳輸控制協(xié)議 |
UDP | 用戶數(shù)據(jù)報協(xié)議 |
SSL | 安全套接字協(xié)議 |
RF(Radio Frequency) | 射頻,射頻電流 |
Serve | 服務(wù) |
DHCP | 動態(tài)主機配置協(xié)議 |
ESP8266本身就是一個MCU(微型控制單元,可以進(jìn)行編程),具有兩種功能: |
- 做為一個普通的 WIFI 模塊,連接 STM32單片機,通過使用官方集成的 AT 指令進(jìn)行開發(fā);
- 作為一個集成了 WIFI 功能的 MCU(單片機),用平臺提供的 SDK 進(jìn)行深度的開發(fā);
下面記錄一下作為 WIFI 模塊去使用所需要了解的 AT 指令。大致主要分為:
- 基礎(chǔ)
AT
指令 WIFI
功能AT
指令Top/IP
工具箱AT
命令
一、基礎(chǔ) AT 命令
主要需要掌握的有:
命令 | 功能 |
---|---|
AT | 測試 AT 啟動 ,返回 OK |
AT + RST | 重啟模塊,返回 OK |
AT + GMR | 查看版本信息,返回 OK,為8位版本號 |
基礎(chǔ) AT
命令很多,但大部分的使用都不是很多,大多使用的就一個 AT
命令,用于測試 AT
啟動。
二、Wi-Fi AT 命令集
1)AT + CWMODE:查詢/設(shè)置 Wi-Fi 模式
Wi-Fi 的三種模式:
模式 | 功能 | <mode> |
---|---|---|
Station 模式(客戶模式) | ESP8266模塊通過路由器連接互聯(lián)網(wǎng),手機或電腦通過互聯(lián)網(wǎng)實現(xiàn)對設(shè)備的遠(yuǎn)程控制 | 1 |
SoftAP 模式 | ESP8266模塊作為熱點,實現(xiàn)手機或電腦直接與模塊通信,實現(xiàn)局域網(wǎng)無線控制 | 2 |
SoftAP+Station 模式 | 兩種模式的共存模式,即可以通過互聯(lián)網(wǎng)控制可實現(xiàn)無縫切換,方便操作 | 3 |
無 WIFI 模式 | 關(guān)閉 Wi-Fi RF | 0 |
1、查詢命令:查詢 ESP 設(shè)備的 Wi-Fi 模式
命令:
AT+CWMODE?
響應(yīng):
+CWMODE:<mode>
OK
2、設(shè)置命令:設(shè)置 ESP 設(shè)備的 Wi-Fi 模式
命令:
AT+CWMODE=<mode>[,<auto_connect>]
響應(yīng):
OK
示例:
printf("2. CWMODE\r\n"); //查詢/設(shè)置 Wi-Fi 模式:設(shè)置WiFi模式為Station模式
while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK"))
例1:Station 模式下 TCP serve
ESP8266模塊通過路由器連接互聯(lián)網(wǎng),手機或電腦通過互聯(lián)網(wǎng)實現(xiàn)對設(shè)備的遠(yuǎn)程控制 |
AT+CWMODE=1 設(shè)置模組為STA模式(串口助手)
AT+CWJAP 查詢附近 WiFi(串口助手)
AT+CWJAP="WIFI名稱(最好使用英文)","WIFI密碼" 連接WiFi(串口助手)
當(dāng)外面需要再用引號將其括起來時,里面則需要在每個引號的前面加上 / 作為轉(zhuǎn)義字符
AT+CIFSR 查看路由器分配給模組的IP地址,例如:192.168.43.103(串口助手)
AT+CIPMUX=1 打開多連接(串口助手)
AT+CIPSERVER=1,8080 設(shè)置模塊服務(wù)器端口(串口助手)
打開網(wǎng)絡(luò)調(diào)試助手進(jìn)行設(shè)置:
請打開電腦連接路由器的WIFI熱點,并且打開網(wǎng)絡(luò)調(diào)試助手,在網(wǎng)絡(luò)調(diào)試助手上輸入連接模塊的 IP和設(shè)置的端口。
路由器給模塊分配的 IP 為 192.168.43.103,端口為自己設(shè)定的 8899(默認(rèn)的為 333)(網(wǎng)絡(luò)調(diào)試助手)
AT+CIPSEND=0,11 進(jìn)入數(shù)據(jù)發(fā)送模式:11個字節(jié)
例2:SoftAP 模式下 TCP serve
ESP8266模塊作為熱點,實現(xiàn)手機或電腦直接與模塊通信,實現(xiàn)局域網(wǎng)無線控制 |
AT+CWMODE=2 開啟 AP 模式(串口助手)
AT+CWJAP="ESP8266","密碼",11,0 設(shè)置模塊的 wifi 名和 wifi 密碼(串口助手)
當(dāng)外面需要再用引號將其括起來時,里面則需要在每個引號的前面加上 / 作為轉(zhuǎn)義字符
AT+CIPSERVER=1,8080 設(shè)置模塊服務(wù)器端口(串口助手)
打開電腦去連接模塊建立的AP熱點
打開網(wǎng)絡(luò)調(diào)試助手,輸入連接模塊的 ip 和設(shè)置的端口。
AT+CIPSEND=0,11 進(jìn)入數(shù)據(jù)發(fā)送模式:11個字節(jié)
例3:SoftAP+Station 模式下 TCP serve
兩種模式的共存模式,即可以通過互聯(lián)網(wǎng)控制可實現(xiàn)無縫切換,方便操作 |
2)AT+CWDHCP:啟用/禁用 DHCP
查詢命令
命令:
AT+CWDHCP?
響應(yīng):
<state>:狀態(tài)
設(shè)置命令
功能: 啟用/禁用 DHCP
命令:
AT+CWDHCP=<operate>,<mode>
printf("3. AT+CWDHCP\r\n"); //啟用/禁用 DHCP
while(ESP8266_SendCmd("AT+CWDHCP=1,1\r\n", "OK"))
響應(yīng):
OK
參數(shù):
-
<operate>
:0表示禁用;1表示啟用; -
<mode>
:Bit0 表示 Station 的 DHCP;Bit1 表示 SoftAP 的 DHCP; -
<state>
:DHCP 的狀態(tài)- Bit0:
- 0:禁用 Station 的 DHCP
- 1:啟用 Station 的 DHCP
- Bit1:
- 0:禁用 SoftAP 的 DHCP
- 1:啟用 SoftAP 的 DHCP
- Bit2(ESP32 only)
- 0: 禁用 Ethernet 的 DHCP
- 1: 啟用 Ethernet 的 DHCP
- Bit0:
三、TCP/IP AT 命令
1)AT+CIPSTATUS:查詢 TCP/UDP/SSL 連接狀態(tài)和信息
命令:
AT+CIPSTATUS
響應(yīng):
STATUS:<stat>
+CIPSTATUS:<link ID>,<"type">,<"remote IP">,<remote port>,<local port>,<tetype>
OK
參數(shù):
2)AT+CIPSTART:建立 TCP 連接、UDP 傳輸或 SSL 連接
1、建立 TCP 連接
- 命令:
// 單連接 (AT+CIPMUX=0):
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<keep alive>][,<"local IP">]
// 多連接 (AT+CIPMUX=1):
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<keep alive>][,<"local IP">]
- 響應(yīng):
CONNECT
OK
-
參數(shù):
-
連接OneNet 的 MQTT 的實際應(yīng)用:
//連接上OneNet的 MQTT
#define ESP8266_ONENET_INFO "AT+CIPSTART=\"TCP\",\"183.230.40.39\",6002\r\n"
- 示例:
AT+CIPSTART="TCP","iot.espressif.cn",8000
AT+CIPSTART="TCP","192.168.101.110",1000
AT+CIPSTART="TCP","192.168.101.110",1000,,"192.168.101.100"
AT+CIPSTART="TCPv6","test-ipv6.com",80
AT+CIPSTART="TCPv6","fe80::860d:8eff:fe9d:cd90",1000,,"fe80::411c:1fdb:22a6:4d24"
// esp-at 已通過 AT+CWJAP 獲取到 IPv6 全局地址
AT+CIPSTART="TCPv6","2404:6800:4005:80b::2004",80,,"240e:3a1:2070:11c0:32ae:a4ff:fe80:65ac"
2、建立 UDP 傳輸
- 命令:
// 單連接:(AT+CIPMUX=0)
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<local port>,<mode>,<"local IP">]
// 多連接:(AT+CIPMUX=1)
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<local port>,<mode>,<"local IP">]
- 響應(yīng):
CONNECT
OK
- 參數(shù):
文章來源:http://www.zghlxwxcb.cn/news/detail-444523.html
- 示例:
// UDPv4 單播
AT+CIPSTART="UDP","192.168.101.110",1000,1002,2
AT+CIPSTART="UDP","192.168.101.110",1000,,,"192.168.101.100"
// 基于 IPv6 網(wǎng)絡(luò)的 UDP 單播
AT+CIPSTART="UDPv6","fe80::32ae:a4ff:fe80:65ac",1000,,,"fe80::5512:f37f:bb03:5d9b"
// 基于 IPv6 網(wǎng)絡(luò)的 UDP 多播
AT+CIPSTART="UDPv6","FF02::FC",1000,1002,0
3、建立 SSL 連接
- 命令:
AT+CIPSTART=[<link ID>,]<"type">,<"remote host">,<remote port>[,<keep alive>,<"local IP">]
- 響應(yīng):
OK
- 參數(shù):
文章來源地址http://www.zghlxwxcb.cn/news/detail-444523.html
- 示例:
AT+CIPSTART="SSL","iot.espressif.cn",8443
AT+CIPSTART="SSL","192.168.101.110",1000,,"192.168.101.100"
// esp-at 已通過 AT+CWJAP 獲取到 IPv6 全局地址
AT+CIPSTART="SSLv6","240e:3a1:2070:11c0:6972:6f96:9147:d66d",1000,,"240e:3a1:2070:11c0:55ce:4e19:9649:b75"
ESP8266 初始化示例:
void ESP8266_Init(void)
{
ESP8266_Clear();
printf("1. AT\r\n"); //AT:測試AT啟動
while(ESP8266_SendCmd("AT\r\n", "OK"))
HAL_Delay(500);
printf("2. CWMODE\r\n"); //查詢/設(shè)置 Wi-Fi 模式:設(shè)置WiFi模式為Station模式
while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK"))
HAL_Delay(500);
printf("3. AT+CWDHCP\r\n"); //啟用/禁用 DHCP
while(ESP8266_SendCmd("AT+CWDHCP=1,1\r\n", "OK"))
HAL_Delay(500);
printf("4. CWJAP\r\n"); //連接wifi
while(ESP8266_SendCmd(ESP8266_WIFI_INFO, "GOT IP"))
HAL_Delay(500);
printf("5. CIPSTART\r\n"); //連接ONENET的TCP協(xié)議
while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))
HAL_Delay(500);
printf("6. ESP8266 Init OK\r\n");
}
到了這里,關(guān)于<ESP8266>W(wǎng)IFI模塊AT指令淺學(xué)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!