一: ESP和電腦實現串口通信
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
響應 :
OK
2. 連接路路由器?
AT+CWJAP="SSID","password" // SSID and password of router
響應 :
OK
3. 查詢 ESP8266 設備的 IP 地址
AT+CIFSR
響應 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:a5:8d:c6"
+CIFSR:STAIP,"192.168.3.133"
+CIFSR:STAMAC,"18:fe:34:a5:8d:c6"
OK
4. PC 與 ESP8266 設備連接同?一路路由器?,在 PC 端使?用?網絡調試?工具,建?立?一個 TCP 服
務器?。
- 假設,PC 創建的服務器? IP 地址為 192.168.3.116,端?口為 8000。

5. ESP8266 設備作為 TCP client 連接到上述服務器?
AT+CIPSTART="TCP","192.168.3.116",8000
響應 :
OK
6. ESP8266 設備向服務器?發送數據
AT+CIPSEND=4 // set date length which will be sent, such as 4 bytes
>test // enter the data, no CR
響應 :
Recv 4 bytes
SEND OK
7. 當 ESP8266 設備接收到服務器?發來的數據,將提示如下信息:
+IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
? 注意:
? 發送數據時,如果輸?入的字節數超過了了設置?長度(n):
- 系統將提示 busy,并發送數據的前 n 個字節,發送完成后響應 SEND OK。
- 超出?長度的部分數據被認為是?無效數據,不不被接受。

?
?小總結:
基礎 AT 指令
指令 | 功能 | 示例 | 響應 |
---|---|---|---|
AT | 測試模塊連通性 | AT | OK |
AT+RST | 重啟模塊 | AT+RST | OK ?+ 重啟日志 |
AT+GMR | 查詢固件版本 | AT+GMR | AT version:x.x.x SDK version:x.x.x |
AT+UART | 設置串口參數 | AT+UART=115200,8,1,0,0 (波特率,數據位,停止位,校驗,流控) | OK |
WiFi 配置指令
指令 | 功能 | 示例 | 響應 |
---|---|---|---|
AT+CWMODE | 設置 WiFi 模式 | AT+CWMODE=3 (1=STA, 2=AP, 3=STA+AP) | OK |
AT+CWJAP | 連接路由器 | AT+CWJAP="SSID","password" | WIFI CONNECTED WIFI GOT IP OK |
AT+CWLAP | 掃描附近 WiFi | AT+CWLAP | +CWLAP:(ecn,ssid,rssi,mac) OK |
AT+CIFSR | 查詢 IP 地址 | AT+CIFSR | +CIFSR:STAIP,"192.168.1.100" +CIFSR:APIP,"192.168.4.1" |
?
TCP/IP 通信指令
指令 | 功能 | 示例 | 響應 |
---|---|---|---|
AT+CIPSTATUS | 查詢連接狀態 | AT+CIPSTATUS | STATUS:<狀態碼> (2=已連接WiFi,3=TCP連接) |
AT+CIPSTART | 建立 TCP/UDP 連接 | AT+CIPSTART="TCP","192.168.1.116",8000 | CONNECT OK |
AT+CIPSEND | 發送數據 | AT+CIPSEND=4 ?→ 輸入?test | SEND OK |
AT+CIPCLOSE | 關閉連接 | AT+CIPCLOSE | CLOSED |
+IPD | 接收數據 (自動觸發) | - | +IPD,5:hello (收到5字節數據"hello") |
?
多連接配置 (服務器模式)
指令 | 功能 | 示例 | 響應 |
---|---|---|---|
AT+CIPMUX | 設置多連接 | AT+CIPMUX=1 (0=單連接,1=多連接) | OK |
AT+CIPSERVER | 創建 TCP 服務器 | AT+CIPSERVER=1,8080 (1=開啟,端口8080) | OK |
AT+CIPSTO | 設置超時時間 | AT+CIPSTO=300 (300秒) | OK |
?今日問題
為啥我選本地ip選了上面兩個192.168.85.1和192.168.237.1使用AT+CIPSTART="TCP","192.168.237.1",8000
ERROR
CLOSED但選第三個192.168.83.120就可以成功
問題根本原因
IP 地址類型差異:
IP 地址 類型 說明 192.168.83.120
局域網 IP ESP8266 和 PC 在同一子網內,直接可達 192.168.85.1
可能為虛擬網絡 IP VMware/Hyper-V 等虛擬網卡地址 192.168.237.1
可能為Docker/WSL2 IP 容器化環境的虛擬網橋地址 網絡隔離機制:
虛擬網絡(如 WSL2/Docker)默認與物理網絡隔離
ESP8266 只能訪問同一物理交換機下的設備(即?
192.168.83.x
?網段)
虛擬 IP 連通性對比表
IP 地址 | 類型 | 是否可達 | 解決方案 |
---|---|---|---|
192.168.83.120 | 物理網卡 | ? 是 | 直接使用 |
192.168.237.1 | WSL2 虛擬網卡 | ? 否 | 配置端口轉發 |
192.168.85.1 | VMware 虛擬網卡 | ? 否 | 切換為橋接模式 |
127.0.0.1 | 本地環回 | ? 否 | 永遠無法被 ESP8266 訪問 |
?