1. 環境准備
硬件准備
- 小熊派開發板
- ESP8266通信模組
軟件准備
- QCOM串口助手
- 網絡調試助手
文檔准備
此文檔來自於樂鑫官方!閱讀本教程時,關於AT指令的詳細說明請參考該文檔!
切換開關
小熊派開發板右上角的開關撥到AT-PC一端,則模組直接與PC相連,方便調試。
所有工具和文檔均在『小熊派開源社區』公眾號回復“通信模組”獲取!
2. 基礎AT指令
AT
指令:AT
功能:測試AT指令功能是否正常
示例:
AT
OK
AT+GMR
指令:AT+GMR
功能:查詢模組固件版本信息
示例:
AT+GMR
AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(5a875ba)
v1.0.0.3
Mar 13 2018 09:37:06
OK
AT+RST
指令:AT+RST
功能:軟復位模組
示例:
AT+RST
OK
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8
2nd boot version : 1.6
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000
WIFI DISCONNECT
3. 基於 TCP 協議連接遠程服務器通信實例
3.1. 配置WIFI模式
使用下面的命令設置模組的工作模式為 softAP 與 Station 模式共存:
AT+CWMODE=3
示例:
AT+CWMODE=3
OK
softAP模式下,ESP8266模組自身作為一個WIFI熱點,允許其他設備連接此熱點;Station模式下,ESP8266模組作為一個設備去連接其他的WIFI熱點。
3.2. 連接可以上網的路由器
使用下面的命令將模組連接到一個可以上網的無線路由器上,或者可以正常上網的手機熱點也可以,其中SSID
是熱點名稱,password
是熱點密碼:
AT+CWJAP="SSID","password"
示例:
AT+CWJAP="FAST_88A6","12345678"
WIFI CONNECTED
WIFI GOT IP
OK
3.3. 查詢設備的ip地址
連接路由器成功之后,使用下面的命令查詢模組獲取的ip地址,查詢出的ip有兩種,APIP
是模組自身作為熱點提供的網關ip,另一個STAIP
就是模組連接路由器自動獲取到的ip地址:
AT+CIFSR
示例:
AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"de:4f:22:5e:90:b7"
+CIFSR:STAIP,"192.168.0.101"
+CIFSR:STAMAC,"dc:4f:22:5e:90:b7"
OK
3.4. 連接遠程TCP服務器
首先我們需要搭建一個TCP服務器,有兩種方式:
- 在服務器上使用Python、Java、C#等語言自行編寫服務器程序;
- 在本地PC上使用網絡調試助手開啟TCP服務器;
這里我們使用第二種方式,使用網絡調試助手工具開啟一個TCP服務器,具體步驟如下:
首先保證PC與模組連接到的是同一台路由器,在cmd命令行中使用Ping命令測試網絡是否是通的:
ping <第3.3步獲取到的模組ip地址>
示例:
確保模組與PC之間可以ping通之后,開啟TCP服務器:
接下來填寫TCP服務器的監聽端口,范圍0-65535,注意避開21(FTP)、22(SSH)、80(HTTP)、431(HTTPS)端口即可,這里我使用9999作為測試:
創建成功之后,如圖:
接下來還需要關閉Windows Defender 的網絡防火牆,否則模組不能訪問到PC。在桌面左下角搜索“防火牆”,選擇“防火牆和網絡保護”,關閉三種網絡的防火牆:
接下來還有最后一步,查詢PC的ip地址,可以在網絡設置中查看:
最后,使用AT命令連接TCP服務器,其中第一個參數是協議類型,“TCP”則表示使用TCP協議,第二個參數是TCP服務器ip地址,也可以使用域名,最一個參數是TCP服務器開啟監聽的端口(注意:沒有引號):
AT+CIPSTART="TCP","192.168.0.102",9999
示例:
AT+CIPSTART="TCP","192.168.0.102",9999
CONNECT
OK
連接之后,在網絡調試助手中也可以看到:
3.5. 模組主動發送消息
使用如下的命令即可向TCP服務器發送消息,首先設置要發送數據的字節數,等待模組返回>
后,輸入要發送的數據即可,如果發送的數據超過了設置的n個字節,則只發送前n個字節,后面的數據被認為是無效數據,不會發送:
AT+CIPSEND=5
>hello
示例:
AT+CIPSEND=5
OK
>
Recv 5 bytes
SEND OK
發送成功看PC端的網絡調試助手是否收到:
3.6. 模組接收消息
當網絡調試助手作為TCP服務器向模組發送數據時,模組會打印出收到的信息:
在串口助手中模組會輸出收到的信息:
+IPD,13:hello,esp8266
3.7. 關閉TCP連接
通信完畢之后,可以使用下面的命令關閉TCP連接:
AT+CIPCLOSE
示例:
CLOSED
OK