找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10232|回復: 5
打印 上一主題 下一主題
收起左側(cè)

ESP8266調(diào)試全過程指導(補全)

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:396273 發(fā)表于 2018-11-13 00:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ESP8266 調(diào)試全過程 – 使用指導                  
上電:正常工作驗證
本模塊可以工作在三種模式:1. STA  2 .AP  3 .AP+STA,出廠設置為第三種
上電后,藍色燈微弱閃爍后熄滅,紅燈長亮
1. 搜索無線網(wǎng)絡,可見ESP_XXXXXX已經(jīng)處于列表中(后面的數(shù)字是MAC地址后幾位)

連接該網(wǎng)絡以后,查看連接狀態(tài):

手機搜索該網(wǎng)絡,也可連接上:

  • 使用串口軟件進行測試:
軟件配置如下圖:
注意:(1)波特率一般在出廠情況下默認的是115200。如果在115200情況下收到的是亂碼可以試試其他波特率(舊版本的默認波特率可能是其他數(shù)值)。
(2)在輸入命令后必須再按一下回車鍵,然后再按發(fā)送!

  • 使用串口軟件進行測試
注意:勾選上“發(fā)送新行”
發(fā)送命令AT+RST(重啟模塊),返回如下:

三 測試
測試前先閱讀:(1)Espressif IoT AT指令集_v0.1.5.pdf         描述了該模塊支持的AT命令
wwwelectrodragoncom/w/Wi07c該網(wǎng)頁命令描述更清晰一些
(2) ESP8266測試方法匯總.pdf              測試的具體流程
測試過程參照:ESP8266作為TCP服務器端使用心得.pdf     出錯的原因分析及處理
四 測試例程  
原來推薦的測試例程比較粗略,這里放上我自己的測試過程,理解可能有誤,僅供參考。
請勿直接復制指令,部分格式經(jīng)過WORD編輯后有誤!可能導致出錯!
(一)AP模式
1. 建立AP     
  (1)重啟模塊
              發(fā)送命令:AT+RST(執(zhí)行指令)
              指令:AT+RST
    響應:OK
  (2)設置模塊
              發(fā)送命令:AT+CWMODE=3AT+CWMODE=2(設置指令)
              指令:AT+CWMODE=<mode>
              說明:<mode>:1-Station模式,2-AP模式,3-APStation模式
              響應:OK
說明:需重啟后生效(AT+RST)

  (3)配置AP參數(shù)
              發(fā)送命令:AT+CWSAP=TEST,123456123456,1,3(設置指令)            
              指令:AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn>
              說明:指令只有在AP模式開啟后有效
<ssid>:字符串參數(shù),接入點名稱
<pwd>:字符串參數(shù),密碼最長64字節(jié),ASCII
<chl>:通道號
< ecn >:0-OPEN,1-WEP2-WPA_PSK,3-WPA2_PSK4-WPA_WPA2_PSK
              響應:OK

刷新無線網(wǎng)絡列表,可見到SSID為TEST的無線網(wǎng)絡列于其中:

注意:此時連接網(wǎng)絡會可能出現(xiàn)連接不上的情況,請發(fā)送AT+RST命令并等待幾分鐘之后再連接
(4)查看已接入設備的IP
連接上TEST發(fā)送命令:AT+CWLIF(執(zhí)行指令)
指令:AT+CWLIF
說明:查看已接入設備的IP
響應:<ip addr>

OK
說明:<ip addr>:已接入設備的IP地址
            
如果返回命令如下:
表示網(wǎng)絡成功建立,目前無設備連入。
如果無線網(wǎng)絡實際已連接上,請等待幾分鐘后再發(fā)送AT+CWLIF命令進行查詢。
(4)查詢本機IP地址
              發(fā)送命令:AT+CIFSR(執(zhí)行指令)
指令:AT+CIFSR
說明:查看本模塊的IP地址
      注意:AP模式下無效!會造成死機現(xiàn)象!
響應:<ip addr>
說明:<ip addr>:本模塊IP地址

實際測試中并未發(fā)生死機現(xiàn)象。
查看本機配置模式:CWMODE=2,為AP模式。

發(fā)送命令:AT+CIFSR=?(測試指令),返回響應如下:

同樣未出現(xiàn)死機現(xiàn)象。
2. Server方法收發(fā)
(0)查詢此時模塊狀態(tài)(該步驟可省略)
  發(fā)送命令 AT+CWMODE?(查詢指令)
指令:AT+CWMODE?
說明:查看本模塊的WIFI應用模式
響應:+CWMODE:<mode>

OK
說明:<mode>:1-Station模式,2-AP模式,3-APStation模式

              發(fā)送命令AT+CIPMUX? (查詢指令)
指令:AT+CIPMUX?
說明:查詢本模塊是否建立多連接
響應:+ CIPMUX:<mode>

OK
說明:<mode>:0-單路連接模式,1-多路連接模式

              發(fā)送命令AT+CIPMODE? (查詢指令)
指令:AT+CIPMODE?
說明:查詢本模塊的傳輸模式
響應:+ CIPMODE:<mode>

OK
說明:<mode>:0-非透傳模式,1-透傳模式

發(fā)送命令AT+CIPSTO? (查詢指令)
指令:AT+CIPSTO?
說明:查詢本模塊的服務器超時時間
響應:+ CIPSTO:<time>

OK
說明:<time>:服務器超時時間,0~2880,單位為s

(1)開啟多連接模式
發(fā)送命令:AT+CIPMUX=1(設置指令)
指令:AT+CIPMUX=<mode>
說明:<mode>:0-單路連接模式,1-多路連接模式
響應:OK

查詢可知,設置成功

(2)創(chuàng)建服務器
發(fā)送命令:AT+CIPSERVER=1,8080(設置指令)
指令:AT+CIPSERVER=<mode>[,<port>]
說明:<mode>:0-關閉server模式,1-開啟server模式
      <port>:端口號,缺省值為333
響應:OK
說明:(1) AT+ CIPMUX=1時才能開啟服務器;關閉server模式需要重啟
(2)開啟server后自動建立server監(jiān)聽,當有client接入會自動按順序占用一個連接。
開啟server服務如下圖所示:

關閉server服務如下圖所示:

打開USR-TCP232-Test.exe,點擊Connect按鈕連接不上,可知server服務未開啟

重新開啟server服務(注意:之前需要再發(fā)送一遍AT+CIPMUX=1重新開啟多連接模式)。
點擊Connect按鈕

連接成功后,串口收到模塊返回的數(shù)據(jù)串:Link
180S(默認值)后,連接自動斷開,返回Unlink,客戶端的相應按鈕變成灰色。
全過程如下圖:

(3) 設置服務器超時時間
發(fā)送命令AT+CIPSTO=2880 (設置指令)
指令:AT+CIPSTO=<time>
說明:<time>:服務器超時時間,0~2880,單位為s
響應:OK

(4) 建立客戶端

  (5) 查看當前連接
發(fā)送命令AT+CIPSTATUS (執(zhí)行指令)
指令:AT+CIPSTATUS
響應:STATUS:<stat>
+ CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype>

      OK
說明:<id>:連接的id0-4
<type>:字符串參數(shù),類型TCPUDP
<addr>:字符串參數(shù),IP地址
<port>:端口號
<tetype>: 0-本模塊做client的連接,1-本模塊做server的連接

(之前電腦的USB無線網(wǎng)卡發(fā)燙厲害,拔出后重新插上,再次連接后自動分配的端口產(chǎn)生了變化,所以刷出了兩個客戶端,實際中存在的僅有ID=1的客戶端)
  (6) 向某個連接發(fā)送數(shù)據(jù)
發(fā)送命令AT+CIPSEND=1,6(設置指令)  (通過上一條指令AT+CIPSTATUS得知ID=1
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=<length>
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= <id>,<length>
響應:收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當數(shù)據(jù)長度滿length時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明:<id>:需要用于傳輸連接的id
<length>:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為2048

斷開客戶端后再發(fā)送一次,得到以下響應:

發(fā)送數(shù)據(jù)長度大于LENGTH時響應如下(HELLO!為之前一次發(fā)送的數(shù)據(jù))
    此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。
用客戶端向ESP8266發(fā)送數(shù)據(jù),正常。

3. Client方法收發(fā)
(0) 關閉server服務   (如果沒有開啟server服務,可免除此步驟)
發(fā)送命令:AT+CIPSERVER=0(設置指令)
指令:AT+CIPSERVER=<mode>[,<port>]
說明:<mode>:0-關閉server模式,1-開啟server模式
      <port>:端口號,缺省值為333
響應:OK
說明:(1) AT+ CIPMUX=1時才能開啟服務器;關閉server模式需要重啟
(2)開啟server后自動建立server監(jiān)聽,當有client接入會自動按順序占用一個連接。
關閉server服務如下圖所示:

(1) 創(chuàng)建服務器


點擊Listening,創(chuàng)建成功后,該按鈕變?yōu)椋?/font>

(2) 開啟多連接模式
發(fā)送命令:AT+CIPMUX=1(設置指令)
指令:AT+CIPMUX=<mode>
說明:<mode>:0-單路連接模式,1-多路連接模式
響應:OK

(3) 建立TCP連接
發(fā)送命令AT+CIPSTART=2,"TCP","192.168.4.101",8080 (設置指令)
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSTART= <type>,<addr>,<port>
2)多路連接時(+CIPMUX=1),指令為:AT+CIPSTART=<id>,<type>,<addr>,<port>
響應:如果格式正確且連接成功,返回 OK,否則返回 ERROR
如果連接已經(jīng)存在,返回 ALREAY CONNECT
說明:<id>:0-4,連接的id
<type>:字符串參數(shù),表明連接類型,”TCP”-建立tcp連接,”UDP”-建立UDP連接
<addr>:字符串參數(shù),遠程服務器IP地址
<port>:遠程服務器端口號
    如下圖所示:

(4) 向服務器發(fā)送數(shù)據(jù)
發(fā)送命令AT+CIPSEND=2,8(設置指令)  (通過上一條指令AT+CIPSTART設置為ID=2
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=<length>
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= <id>,<length>
響應:收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當數(shù)據(jù)長度滿length時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明:<id>:需要用于傳輸連接的id
<length>:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為2048

接收正確,超過8個字符的部分不接收。
此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。用服務器向ESP8266發(fā)送數(shù)據(jù),正常。

(二)STA模式
1.建立STA
(1) 重啟模塊
發(fā)送命令:AT+RST(執(zhí)行指令)
              指令:AT+RST
響應:OK

(2) 設置模塊
              發(fā)送命令:AT+CWMODE=3AT+CWMODE=1(設置指令)
              指令:AT+CWMODE=<mode>
              說明:<mode>:1-Station模式,2-AP模式,3-APStation模式
              響應:OK
說明:需重啟后生效(AT+RST)

將模塊設置為模式1,此時刷新網(wǎng)絡列表可見由ESP8266建立的網(wǎng)絡從列表中消失了
(3) 查看當前無線路由器列表
發(fā)送命令:AT+CWLAP(執(zhí)行指令)
指令:AT+CWLAP
              響應:正確:(終端返回AP列表)
+ CWLAP: <ecn>,<ssid>,<rssi>
OK
錯誤:ERROR
說明:< ecn >:0-OPEN,1-WEP2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
<ssid>:字符串參數(shù),接入點名稱
<rssi>:信號強度

如搜索不到信號,響應:

請重新上電并嚴格按照AT命令再發(fā)送一遍。
沒有列表返回的時候請耐心等待,否則會出現(xiàn)“busy”
(4) 加入當前無線網(wǎng)絡
發(fā)送命令:AT+CWJAP=MERSAIN”,”XXXXXXXX(設置指令)
指令:AT+CWJAP=<ssid>,< pwd >
說明:<ssid>:字符串參數(shù),接入點名稱
<pwd>:字符串參數(shù),密碼,最長64字節(jié)ASCII
響應:正確:OK
錯誤:ERROR

檢測是否真的連上該路線網(wǎng)絡
發(fā)送命令:AT+CWJAP?(查詢指令)
指令:AT+CWJAP?
響應:返回當前選擇的AP
+ CWJAP:<ssid>

OK
說明:<ssid>:字符串參數(shù),接入點名稱

斷電。上電后發(fā)送AT+CWJAP?,返回同上,系統(tǒng)保持上次的狀態(tài)。
查看模塊IP地址
發(fā)送命令:AT+CIFSR(執(zhí)行指令)
指令:AT+CIFSR
響應:正確:+ CIFSR:<IP address>

OK
錯誤:ERROR
說明:<ssid>:字符串參數(shù),接入點名稱
   
群里(@云海之夢)反映:錯誤的SSID也可以連接上,測試后發(fā)現(xiàn)果然如此,輸入實際不存在的賬號密碼返回也是OK

但發(fā)送AT+CIFSR(查看模塊地址),返回ERROR,可通過此命令來判斷有沒有真正連接上。
2. Server方法收發(fā)
(0)查詢此時模塊狀態(tài)(該步驟可省略)
  發(fā)送命令 AT+CWMODE?(查詢指令)
指令:AT+CWMODE?
說明:查看本模塊的WIFI應用模式
響應:+CWMODE:<mode>

OK
說明:<mode>:1-Station模式,2-AP模式,3-APStation模式

              發(fā)送命令AT+CIPMUX? (查詢指令)
指令:AT+CIPMUX?
說明:查詢本模塊是否建立多連接
響應:+ CIPMUX:<mode>

OK
說明:<mode>:0-單路連接模式,1-多路連接模式

              發(fā)送命令AT+CIPMODE? (查詢指令)
指令:AT+CIPMODE?
說明:查詢本模塊的傳輸模式
響應:+ CIPMODE:<mode>

OK
說明:<mode>:0-非透傳模式,1-透傳模式

發(fā)送命令AT+CIPSTO? (查詢指令)
指令:AT+CIPSTO?
說明:查詢本模塊的服務器超時時間
響應:+ CIPSTO:<time>

OK
說明:<time>:服務器超時時間,0~2880,單位為s

(1)開啟多連接模式
發(fā)送命令:AT+CIPMUX=1(設置指令)
指令:AT+CIPMUX=<mode>
說明:<mode>:0-單路連接模式,1-多路連接模式
響應:OK

查詢可知,設置成功

(2)創(chuàng)建服務器
發(fā)送命令:AT+CIPSERVER=1,8080(設置指令)
指令:AT+CIPSERVER=<mode>[,<port>]
說明:<mode>:0-關閉server模式,1-開啟server模式
      <port>:端口號,缺省值為333
響應:OK
說明:(1) AT+ CIPMUX=1時才能開啟服務器;關閉server模式需要重啟
(2)開啟server后自動建立server監(jiān)聽,當有client接入會自動按順序占用一個連接。
開啟server服務如下圖所示:

關閉server服務如下圖所示:

打開USR-TCP232-Test.exe,點擊Connect按鈕連接不上,可知server服務未開啟

重新開啟server服務(注意:之前需要再發(fā)送一遍AT+CIPMUX=1重新開啟多連接模式)。
點擊Connect按鈕

連接成功后,串口收到模塊返回的數(shù)據(jù)串:Link
180S(默認值)后,連接自動斷開,返回Unlink,客戶端的相應按鈕變成灰色。
全過程如下圖:

(3) 設置服務器超時時間
發(fā)送命令AT+CIPSTO=2880 (設置指令)
指令:AT+CIPSTO=<time>
說明:<time>:服務器超時時間,0~2880,單位為s
響應:OK

(4) 建立客戶端
界面設置如下圖所示:

  (5) 查看當前連接
發(fā)送命令AT+CIPSTATUS (執(zhí)行指令)
指令:AT+CIPSTATUS
響應:STATUS:<stat>
+ CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype>

      OK
說明:<id>:連接的id0-4
<type>:字符串參數(shù),類型TCPUDP
<addr>:字符串參數(shù),IP地址
<port>:端口號
<tetype>: 0-本模塊做client的連接,1-本模塊做server的連接

  (6) 向某個連接發(fā)送數(shù)據(jù)
發(fā)送命令AT+CIPSEND=0,10(設置指令)  (通過上一條指令AT+CIPSTATUS得知ID=0
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=<length>
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= <id>,<length>
響應:收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當數(shù)據(jù)長度滿length時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明:<id>:需要用于傳輸連接的id
<length>:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為2048
發(fā):
收:
斷開客戶端后再發(fā)送一次,得到以下響應:

    此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。
3. Client方法收發(fā)
(0) 關閉server服務   (如果沒有開啟server服務,可免除此步驟)
發(fā)送命令:AT+CIPSERVER=0(設置指令)
指令:AT+CIPSERVER=<mode>[,<port>]
說明:<mode>:0-關閉server模式,1-開啟server模式
      <port>:端口號,缺省值為333
響應:OK
說明:(1) AT+ CIPMUX=1時才能開啟服務器;關閉server模式需要重啟
(2)開啟server后自動建立server監(jiān)聽,當有client接入會自動按順序占用一個連接。
關閉server服務如下圖所示:

(1)創(chuàng)建服務器


點擊Listening,創(chuàng)建成功后,該按鈕變?yōu)椋?/font>

(2) 開啟多連接模式
發(fā)送命令:AT+CIPMUX=1(設置指令)
指令:AT+CIPMUX=<mode>
說明:<mode>:0-單路連接模式,1-多路連接模式
響應:OK

(3) 建立TCP連接
發(fā)送命令AT+CIPSTART=2,"TCP","192.168.1.109",8080 (設置指令)
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSTART= <type>,<addr>,<port>
2)多路連接時(+CIPMUX=1),指令為:AT+CIPSTART=<id>,<type>,<addr>,<port>
響應:如果格式正確且連接成功,返回 OK,否則返回 ERROR
如果連接已經(jīng)存在,返回 ALREAY CONNECT
說明:<id>:0-4,連接的id
<type>:字符串參數(shù),表明連接類型,”TCP”-建立tcp連接,”UDP”-建立UDP連接
<addr>:字符串參數(shù),遠程服務器IP地址
<port>:遠程服務器端口號
    如下圖所示:

(4) 向服務器發(fā)送數(shù)據(jù)
發(fā)送命令AT+CIPSEND=2,10(設置指令)  (通過上一條指令AT+CIPSTART設置為ID=2
指令:1)單路連接時(+CIPMUX=0),指令為:AT+CIPSEND=<length>
2)多路連接時(+CIPMUX=1) ,指令為: AT+CIPSEND= <id>,<length>
響應:收到此命令后先換行返回”>”,然后開始接收串口數(shù)據(jù)
當數(shù)據(jù)長度滿length時發(fā)送數(shù)據(jù)。
如果未建立連接或連接被斷開,返回ERROR
如果數(shù)據(jù)發(fā)送成功,返回 SEND OK
說明:<id>:需要用于傳輸連接的id
<length>:數(shù)字參數(shù),表明發(fā)送數(shù)據(jù)的長度,最大長度為2048

此時連接已建立,可以進行數(shù)據(jù)的雙向收發(fā)。
完整的Word格式文檔51黑下載地址:
ESP8266入門調(diào)試指導(補全).doc (621.12 KB, 下載次數(shù): 85)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:237723 發(fā)表于 2018-11-13 08:17 | 只看該作者
寫的很詳細 贊一個。。
回復

使用道具 舉報

板凳
ID:87000 發(fā)表于 2019-3-19 23:11 | 只看該作者
非常好,就是黑比貴
回復

使用道具 舉報

地板
ID:501991 發(fā)表于 2019-4-21 11:16 | 只看該作者
哇,這個真的寫的非常詳細了,網(wǎng)上也有很多教程,但沒有這個步驟這么詳細,就像那個波特率需要設置成115200還有“發(fā)送新行”就快把我這個小白卡死了。
本來還打算自己寫一篇介紹ESP8266的方法,沒想到這里的這么詳細。
支持一下!
回復

使用道具 舉報

5#
ID:92556 發(fā)表于 2021-5-30 13:24 來自觸屏版 | 只看該作者
西點鐘靈毓秀 發(fā)表于 2019-3-19 23:11
非常好,就是黑比貴

不要做伸手黨,51黑的幣是這么多電子論壇中最容易獲取的,,,
回復

使用道具 舉報

6#
ID:911035 發(fā)表于 2021-6-2 08:45 | 只看該作者
寫的很詳細 贊一個!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表