本帖最后由 51hei小林 于 2016-9-25 11:52 編輯
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 三種工作模式。
¨ STA 模式:ESP8266模塊通過路由器連接互聯網,手機或電腦通過互聯網實現對設備的遠程控制。 ¨ AP 模式:ESP8266模塊作為熱點,實現手機或電腦直接與模塊通信,實現局域網無線控制。 ¨ STA+AP 模式:兩種模式的共存模式,即可以通過互聯網控制可實現無縫切換,方便操作。 1.2. 應用領域¨ 串口CH340 轉Wi-Fi; ¨ 工業透傳DTU; ¨ Wi-Fi 遠程監控/控制; ¨ 玩具領域; ¨ 色LED 控制; ¨ 消防、安防智能一體化管理; ¨ 智能卡終端,無線POS 機,Wi-Fi 攝像頭,手持設備等。 //=================================================================== //
1.1. 基礎AT指令
3.2.1 測試AT語法規則:
//=====================================================================================//
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
| WPA2_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
| WPA2_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)
如果連接已經存在,返回:
ALREADY CONNECT
連接失敗返回:
CONNECT FAIL (CIPMUX=0)
<id>, CONNECT FAIL (CIPMUX=1)
|
參數定義:
參數
| 定義
| 取值
| 對取值的說明
| <id>
| Link No.
| 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+CIPMUX=<mode>
| OK
如果已經處于多連接模式,則返回
Link is builded
| 啟動多連接成功
| 查詢命令
| AT+CIPMUX?
| +CIPMUX:<mode>
OK
| 查詢當前是否處在多連接模式
|
參數定義:
參數
| 定義
| 取值
| 對取值的說明
| <mode>
| 是否處在多連接模式
| 0
| 單連接模式
| 1
| 多連接模式
|
3.4.4 發送數據:AT+CIPSEND語法規則:
命令類型
| 語法
| 返回和說明
| 設置命令
| 單 路 連 接 (+CIPMUX=0)時:
AT+CIPSEND=<length>
多路連接(+CIPMUX=1)時:
AT+CIPSEND=<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>
| Link No.
| 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>
| Link No.
| 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+CIPSTO=<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>
| |
默認波特率是9600
參數定義:
參數
| 定義
| 取值
| 對取值的說明
| < rate >
| 波特率,
單位bps
| 0
| 自適應波特率
| 110
|
| 300
|
| 1200
|
| 2400
|
| 4800
|
| 9600
|
| 14400
|
| 19200
|
| 28800
|
| 38400
|
| 57600
|
| 115200
|
| 230400
|
| 460800
|
| 921600
|
| [size=18.0000pt]
|