ESP8266硬件接口豐富,可支持UART,IIC,PWM,GPIO,ADC等,適用於各種物聯網應用場合。
//+++++++++++++++++++++++++++++//
基本參數
//--------------------------------------------------- //
模塊 型號 ESP8266-01
主芯片 ESP8266
//--------------------------------------------------- //
無線參數
無線標准 IEEE 802.11b/g/n
頻率范圍 2.412GHz-2.484GHz
發射功率 802.11b: +16 +/-2dBm (@11Mbps)
802.11g: +14 +/-2dBm (@54Mbps)
802.11n: +13 +/-2dBm (@HT20, MCS7)
接收靈敏度 802.11b: -93 dBm (@11Mbps ,CCK)
802.11g: -85dBm (@54Mbps, OFDM)
802.11n: -82dBm (@HT20, MCS7)
//--------------------------------------------------- //
天線形式
外置:郵票孔接口
外置:I-PEX 連接器、SMA 連接器
內置:板載PCB 天線
硬件參數
//--------------------------------------------------- //
硬件接口 UART,IIC,PWM,GPIO,ADC
工作電壓 3.3V
GPIO驅動能力 Max:15ma
工作電流 持續發送下=>
平均值:~70mA,峰值: 200mA
正常模式下=>
平均: ~12mA,峰值: 200mA
待機:<200uA,
工作溫度 -40℃~125℃
存儲環境 溫度:<40℃,相對濕度:<90%R.H.
尺寸 板載PCB天線:14.3mm*24.8mm*1mm;
串口透傳
//--------------------------------------------------- //
傳輸速率 110-921600bps
TCP Client 5個
軟件參數
//--------------------------------------------------- //
無線網絡類型 STA/AP/STA+AP
安全機制 WEP/WPA-PSK/WPA2-PSK
加密類型 WEP64/WEP128/TKIP/AES
固件升級 本地串口,OTA遠程升級
網絡協議 IPv4, TCP/UDP/FTP/HTTP
用戶配置 AT+指令集, Web 頁面 Android/iOS 終端, Smart Link 智能配置APP
表格 2 模塊技術規格
//=================================================================== //
1.1. 主要功能ESP8266可以實現的主要功能包括:串口透傳,PWM 調控,GPIO控制。
串口透傳:數據傳輸,傳輸的可靠性好,最大的傳輸速率為:460800bps。
PWM 調控:燈光調節,三色LED 調節,電機調速等。
GPIO控制:控制開關,繼電器等。
1.1. 工作模式ESP8266模塊支持STA/AP/STA+AP 三種工作模式。
1.2. 應用領域
//=================================================================== //
1.1. 基礎AT指令
3.2.1 測試AT語法規則:
命令類型 |
語法
|
返
回和說明
|
執行命令
|
AT
|
OK
|
//=====================================================================================//
1.2. WiFi功能AT指令3.3.1 選擇WiFi應用模式:AT+CWMODE語法規則:
命令類型 |
語法
|
返回
和說明
|
設置
命令
|
AT
+CWMODE = <mode>
|
OK
|
此指令需重啟后生效
(AT+RST)
|
||
查詢命令
|
AT
+CWMODE?
|
+CWMODE:<mode>
OK |
當前處於哪種模式?
|
||
測試命令
|
AT
+CWMODE?
|
+CWMODE:(<mode>取值列表)
OK |
當前可支持哪些模式?
|
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<
mode
>
|
WiFi應用模式
|
1
|
Station模式
|
2
|
AP模式
|
||
3
|
AP+Station模式
|
3.3.2 列出當前可用接入點:AT+CWLAP語法規則:
命令類型 |
語法
|
返回
和說明
|
執行
命令
|
AT
+CWLAP
|
+CWLAP: <ecn>,<ssid>,<rssi>[,<mode>]
OK |
此指令返回AP列表
|
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<
ecn
>
|
加密方式
|
0
|
OPEN
|
1
|
WEP
|
||
2
|
WPA_PSK
|
||
3
|
WPA
2
_PSK
|
||
4
|
WPA_WPA2_PSK
|
||
<ssid>
|
接入點名稱
|
|
字符串參數
|
<rssi>
|
信號強度
|
|
|
<mode>
|
連接模式
|
0
|
手動連接
|
1
|
自動連接
|
3.3.3 加入接入點:AT+CWJAP語法規則:
命令類型 |
語法
|
返回
和說明
|
設置
命令
|
AT
+CWJAP
=<ssid>,<pwd>
|
OK
或 ERROR
|
加入該AP成功則返回OK,失敗則返回ERROR
|
||
查詢命令
|
AT
+CWJAP?
|
+CWJAP:<ssid>
OK |
返回當前選擇的AP
|
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<
ssid
>
|
接入點名稱
|
|
字符串型
|
<pwd>
|
密碼
|
|
字符串型,最長64字節,ASCII編碼
|
3.3.4 退出接入點:AT+CWQAP語法規則:
命令類型 |
語法
|
返回
和說明
|
執行
命令
|
AT
+CWQAP
|
OK
|
表示成功退出該AP
|
||
測試命令
|
AT
+CWQAP=?
|
OK
|
查詢該命令是否支持
|
3.3.5 設置AP模式下的參數:AT+CWSAP語法規則:
命令類型 |
語法
|
返回
和說明
|
設置
命令
|
AT
+CWSAP=
<ssid>,<pwd>,<chl>, <ecn>
|
OK
|
設置參數成功
|
||
查詢命令
|
AT
+CWSAP?
|
OK
|
查詢當前AP參數
|
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<
ecn
>
|
加密方式
|
0
|
OPEN
|
1
|
WEP
|
||
2
|
WPA_PSK
|
||
3
|
WPA
2
_PSK
|
||
4
|
WPA_WPA2_PSK
|
||
<ssid>
|
接入點名稱
|
|
字符串參數
|
<pwd>
|
密碼
|
|
字符串型,最長64字節,ASCII編碼
|
<chl>
|
通道號
|
|
|
1.3. TCPIP AT指令3.4.1 建立TCP/UDP連接:AT+CIPSTART語法規則:
命令類型 |
語法
|
返回和說明
|
設置命令
|
單 路 連 接 (+CIPMUX=0)
時:
AT+CIPSTART=< type >,< addr >,<port> 多路連接(+CIPMUX=1) 時: AT +CIPSTART=< id >,< type >,<addr>,<port> |
如果格式正確,
返回:
OK 否則返回 : +CME ERROR: invalid input value 連接成功,返回: CONNECT OK (CPIMUX=0) <id>, CONNECT OK (CIPMUX=1) 如果連接已經存在 , 返回 : ALREA D Y CONNECT 連接失敗返回: CONNECT FAIL (CIPMUX=0) <id>, CONNECT FAIL (CIPMUX=1) |
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<id
>
|
L
ink
N
o.
|
0
~4
|
表示連接序號
0 號連接可 client 或 server 連接,其他 id 只能用於連接遠程 server |
<
type
>
|
連接類型
|
“
TCP
”
/
”
UDP
”
|
|
<
addr
>
|
遠程服務器IP地址
|
|
字符串型
|
<port>
|
遠程服務器端口號
|
|
|
3.4.2 獲得TCP/UDP連接狀態:AT+CIPSTATUS語法規則:
命令類型 |
語法
|
返回和說明
|
執行
命令
|
AT+CIPSTATUS
|
如果
是
單路連接(AT+CIPMUX=0)
,返回:
OK STATE: <sl_state> |
如果
是
多路連接 (AT+CIPMUX=1)
,返回:
OK STATE:<ml_state> |
||
如果配置為服務器:
STATE:IP STATUS S: <sid >,<port>,<server state> C:<cid>, <TCP/UDP>, <IP address>, <port>, <client state> |
||
測試命令
|
AT+CIPSTATUS=?
|
返回:
OK |
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<sl_state>
|
單 連接 狀態 |
IP INITIAL
|
初始化
|
IP STATUS
|
獲得本地 IP
狀態
|
||
TCP CONNECTING/UDP CONNECTING
|
TCP 連接中/UDP 端口注冊中
|
||
CONNECT OK
|
連接建立成功
|
||
TCP CLOSING/UDP CLOSING
|
正在關閉 TCP 連接,正在注銷 UDP 端口
|
||
<ml_state>
|
多鏈接狀態
|
IP INITIAL
|
初始化
|
IP STATUS
|
獲得本地 IP
狀態
|
||
<sid>
|
服務器id
|
0~1
|
取值為0和1
|
<server state>
|
服務器狀態
|
OPENING
|
正在打開
|
LISTENING
|
正在監聽
|
||
CLOSING
|
正在關閉
|
||
<cid>
|
客戶端id
|
0~4
|
取值為0,1,2,3,4
|
<IP address>
|
IP 地址
|
-
|
字符串參數(字符串需要加引號)
|
<port>
|
服務器監聽端口號
|
-
|
整數型
|
<client state>
|
客戶端狀態
|
CONNECTED
|
已連接
|
CLOSED
|
已關閉
|
3.4.3 啟動多連接:AT+CIPMUX語法規則:
命令類型 |
語法
|
返回和說明
|
設置命令
|
AT
+CIP
MUX=<mode>
|
OK
如果已經處於多連接模式,則返回 Link is builded |
啟動多連接成功
|
||
查詢命令
|
AT+CIPMUX?
|
+CIPMUX:<mode>
OK |
查詢當前是否處在多連接模式
|
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<
mode
>
|
是否處在多連接模式
|
0
|
單連接模式
|
1
|
多連接模式
|
3.4.4 發送數據:AT+CIPSEND語法規則:
命令類型 |
語法
|
返回和說明
|
|
設置命令
|
單 路 連 接 (+CIPMUX=0)
時:
AT+CIP SEND =< length > 多路連接(+CIPMUX=1) 時: AT +CIPS END =< id >,< length > |
響應
|
模塊收到指令后先換行返回
”>”
,然后開始接收串口數據,當數據長度滿
length
時發送數據
如果未建立連接或連接被斷開,返回 ERROR 如果數據發送成功,返回 SEND OK |
說明
|
發送
指定長度的數據
|
||
測試指令
|
AT+CIPSEND?
|
響應
|
單路連接(AT+CIPMUX=0)返回:
+CIPSEND: <length> OK |
多路連接(
AT
+CIPMUX=1)返回:
+CIPSEND: <0-7>,<length> OK |
|||
執行命令
|
AT+CIPSEND
|
說明
|
AT+CIPMODE
=
1
並且作為客戶端模式下,進入透傳模式(需要支持硬件流控,否則大量數據情況下會丟數據)
模塊收到指令后先換行返回 ”>” ,然后會發送串口接收到的數據。 |
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<
length
>
|
數據長度
|
|
單位:字節
|
<id>
|
L
ink
N
o.
|
0
~4
|
連接序號
|
3.4.5 關閉TCP/UDP連接:AT+CIPCLOSE語法規則:
命令類型 |
語法
|
返回和說明
|
設置命令
|
單路連接時
AT+CIPCLOSE=<id> |
返回:
CLOSE OK |
多路連接時
AT+CIPCLOSE=<n>[ , <id>] |
返回:
<n>,CLOSE OK |
|
執行
命令
|
AT+CIPCLOSE
|
如果關閉成功,返回 : CLOSE OK 如果關閉失敗,返回 : ERROR |
測試命令
|
AT+CIPCLOSE?
|
返回:
OK |
注意事項
|
l 執行命令只對單鏈接有效,多鏈接模式下返回
ERROR
l 執行命令AT+CIPCLOSE
只有在
TCP/UDP CONNECTING
或
CONNECT OK
狀態下才會關閉連接,否則會認為關閉失敗返回
ERROR
l 單路連接模式下,關閉后的狀態為
IP CLOSE
|
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<id>
|
關閉模式
|
0
|
慢關(缺省值)
|
1
|
快關
|
||
<n>
|
L
ink
N
o.
|
0
~7
|
整數型,表示連接序號
|
3.4.6 獲取本地IP地址:AT+CIFSR語法規則:
命令類型 |
語法
|
響應
和說明
|
|
執行
命令
|
AT+CIFSR
|
響應
|
+ CIFSR:<IP address>
OK 或者 ERROR |
測試命令
|
AT+CIFSR=?
|
響應
|
OK
|
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<IP address>
|
本機目前的
IP
地址(station)
|
|
|
3.4.7 配置為服務器:
3.4.8 選擇TCPIP應用模式:AT+CIPMODE語法規則:
命令類型 |
語法
|
返回
|
設置命令
|
AT+CIPMODE=<mode>
|
OK
|
查詢命令
|
AT+CIPMODE?
|
+CIPMODE: <mode>
OK |
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<mode>
|
TCPIP
應用模式
|
0
|
非透明傳輸模式,缺省模式
|
1
|
透明傳輸模式
|
3.4.9 設置服務器主動斷開的超時時間:AT+CIPSTO
[size=9.5000pt]命令類型 |
[size=9.5000pt]語法
|
[size=9.5000pt]返回和說明
|
設置命令
|
AT
+CIP
STO=<
server timeout
>
|
OK
|
查詢命令
|
AT+CIPSTO?
|
+
CIPSTO
:<
server timeout
>
OK |
[size=9.5000pt]
[size=9.5000pt]參數定義:
[size=9.5000pt]參數 |
[size=9.5000pt]定義
|
[size=9.5000pt]取值
|
對取值的說明
|
<
server timeout
>
|
用來設置服務器主動斷開連接的超時時間
|
0
~
28800(s)
|
用本命令設置好超時時間后,服務器到時間就斷開連接。
|
3.4.10 設置波特率:AT+CIOBAUD語法規則:
命令類型 |
語法
|
返回和說明
|
設置命令
|
AT+CIOBAUD=<rate>
|
返回:
OK
|
默認波特率是9600
參數定義:
參數 |
定義
|
取值
|
對取值的說明
|
<
rate
>
|
波特率
,
單位 bps |
0
|
自適應波特率
|
110
|
|
||
300
|
|
||
1200
|
|
||
2400
|
|
||
4800
|
|
||
9600
|
|
||
14400
|
|
||
192
0
0
|
|
||
28800
|
|
||
384
0
0
|
|
||
576
0
0
|
|
||
115
2
00
|
|
||
230400
|
|
||
460800
|
|
||
921600
|
|
[size=18.0000pt]