esp8266模塊介紹:8266片上集成wifi+MCU,使用的是一個M0的內核,而且成本很低,因為片上有wifi和MCU,所以作為網絡終端非常的方便。esp8266也是一個單片機,上電還是得從0地址開始跑,平時我們使用單片機,一般都是使用IDE等軟體編程,然後下載,軟體很多事情已經幫我們做好了,我們的重心放在(LOOP:)函數之後就行了。
所謂的固件,我們可以把它看做一個在模塊內部執行的程序,只不過廠商幫我們寫好了,上電就開始運行,然後一直等待我們給單片機發送指令,我們發送指令後就執行相應的操作。(後面我們會通過視頻教程來說明固件的燒寫方法和步驟)
esp8266系列的便準供電是3.3V電壓,但是可以超過一點,但是絕對不能用5V,否則高溫燒毀!親測5V使用7分鐘內能正常工作,而後冒煙損壞;
1、esp8266 12e接線圖
2、esp8266 -1 接線圖
3、ESP調試AT指令集
測試 AT語法規則:
WiFi功能AT指令
選擇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模式
列出當前可用接入點: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
自動連接
加入接入點:AT+CWJAP語法規則:
語法
返回和說明
設置命令
AT+CWJAP=<ssid>,<pwd>
OK 或 ERROR
加入該AP成功則返回OK,失敗則返回ERROR
查詢命令
AT+CWJAP?
+CWJAP:<ssid>
OK
返回當前選擇的AP
參數定義:
定義
取值
對取值的說明
<ssid>
接入點名稱
字符串型
<pwd>
密碼
字符串型,最長64位元組,ASCII編碼
退出接入點:AT+CWQAP語法規則:
語法
返回和說明
執行命令
AT+CWQAP
OK
表示成功退出該AP
測試命令
AT+CWQAP=?
OK
查詢該命令是否支持
設置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>
通道號
TCPIP AT指令
建立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>
遠程伺服器埠號
獲得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
已關閉
啟動多連接:AT+CIPMUX語法規則:
語法
返回和說明
設置命令
AT+CIPMUX=<mode>
OK
如果已經處於多連接模式,則返回
Link is builded
啟動多連接成功
查詢命令
AT+CIPMUX?
+CIPMUX:<mode>
OK
查詢當前是否處在多連接模式
參數定義:
定義
取值
對取值的說明
<mode>
是否處在多連接模式
0
單連接模式
1
多連接模式
發送數據: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
連接序號
關閉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
整數型,表示連接序號
獲取本地IP位址:AT+CIFSR語法規則:
語法
響應和說明
執行命令
AT+CIFSR
響應
+ CIFSR:<IP address>
OK
或者
ERROR
測試命令
AT+CIFSR=?
響應
OK
參數定義:
定義
取值
對取值的說明
<IP address>
本機目前的IP位址(station)
配置為伺服器:
選擇TCPIP應用模式:AT+CIPMODE語法規則:
語法
返回
設置命令
AT+CIPMODE=<mode>
OK
查詢命令
AT+CIPMODE?
+CIPMODE: <mode>
OK
參數定義:
定義
取值
對取值的說明
<mode>
TCPIP應用模式
0
非透明傳輸模式,預設模式
1
透明傳輸模式
設置伺服器主動斷開的超時時間:AT+CIPSTO
[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]取值
對取值的說明
<server timeout >
用來設置伺服器主動斷開連接的超時時間
0~28800(s)
用本命令設置好超時時間後,伺服器到時間就斷開連接。
設置波特率:AT+CIOBAUD語法規則:
語法
返回和說明
設置命令
AT+CIOBAUD=<rate>
返回:
OK
默認波特率是9600
參數定義:
定義
取值
對取值的說明
< rate >
波特率,
單位bps
0
自適應波特率
110
300
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
230400
460800
921600
在智聯開發板上盡情的實踐自已的想法吧!
剩下的可能只有是我們想不到的了!
更多專業資訊與學習教程敬請關注智聯開發公眾號!