ESP8266基礎功能除錯
首次使用8266模組請檢查韌體工作完整性,如果韌體不完整或者不存在則不能實現本文中的所有功能
韌體是否存在的檢查方法:將模組通過串列埠模組與電腦連結,在串列埠除錯助手中傳送AT指令(需要換行),若返回OK則說明韌體存在且工作正常。
一、ESP8266模組工作模式
ESP8266模組可以工作在多種模式下實現不同的功能。
(1)SoftAP模式(軟路由模式)
在此模式下,模組本身相當於一個路由器,其他裝置可連結到該模組傳送的訊號,主要應用在主從裝置的主機部分。
(2)station模式(客戶端模式)
在此模式下,模組相當於一個客戶端,可以連結到其他路由器發出的WIFI訊號。主要應用在網路通訊中。
(3)SoftAP+station共存模式(混合模式)
在此模式下,模組可在與其他裝置連結的同時充當路由器,結合上面兩種模式的綜合應用,一般可應用在需要網路通訊且在主從關係中的主機。
二、ESP8266模組的功能
ESP8266在開發中常用以下幾個功能:
(1)透傳功能(TCP資料包傳送)
將串列埠收到的資料轉換成TCP資料包,向指令中指定的主機發送資料。該功能存在與所有工作模式下。ESP8266接受到來自串列埠的資料,然後通過網路將資料傳出去,不對資料進行處理,傳送方和接收方的資料內容、長度完全一致,傳輸過程就好像透明一樣。
透傳首先需要建立連結,包括無線網路連結,模組與Host裝置連結,TCP通訊連結。
(2)省電功能
無資料休眠:可通過資料喚醒
低功耗休眠:可通過IO口指令喚醒
定時啟動休眠:通過內部的定時器喚醒
三、AT指令
AT 即Attention,AT指令一般應用於終端裝置與PC應用之間的連線與通訊。是一種用於終端裝置喝Host裝置連線與通訊的指令。
ESP8266需要通過來自Host的AT指令來完成各項功能,下面以與電腦透傳為例,簡單敘述一個完整的功能測試流程。以下所有指令均需要在指令後加一個換行,且指令對大小敏感,不要混淆大小寫。
1、測試工作情況(AT
)
將模組與電腦連結,開啟串列埠除錯助手,設定波特率為115200,停止位1位,資料位8位,無校驗。
(此設定為預設設定,如果對模組的通訊引數做過調整,以調整的引數為準)
傳送指令為“AT”。
如果正常通訊,返回OK。
2、重啟模組(AT+RST
)
在韌體正常的情況下,發現工作不正常,通過重啟模組可以解決大部分問題。在不方便通過斷電實現重啟的場景中,也可以通過AT指令來重啟模組。指令為:AT+RST
。
重啟成功,則返回重啟資訊,且重啟之前的資料不會丟失。在重啟完成後會返回“ready”,說明此時進入了正常工作模式。
3、檢視版本資訊(AT+GMR
)
通過此指令,可以查詢到wifi模組的版本資訊,韌體版本資訊和模組內的實時時間。
4、恢復出廠設定(AT+RESTORE
)
當WIFI模組因為引數配置錯誤而無法正常工作時,可以通過恢復出廠設定來使模組內儲存的所有配置資訊恢復預設(當然是建立在串列埠模組還能正常通訊的情況下)。
恢復出廠設定完成後,會返回一個OK,然後重啟,並返回啟動資訊。
5、選擇工作模式(AT+CWMODE
)
(1)工作模式查詢(AT+CWMODE=?
)
工作模式可以通過指令查詢,查詢成功後返回可設定的範圍。
(2)Station模式(AT+CWMODE=1
)
通過上指令可以將模組設定為Station模式,設定成功後返回OK。
(3)AP模式(AT+CWMODE=2
)
通過上指令可以將模組設定為AP模式,設定成功後返回OK
(4)混合模式(AT+CWMODE=3
)
通過上指令可以將模組設定為混合模式,設定成功後返回OK
6、將模組連結到wifi(Station模式與混合模式下)
步驟如下:
(1)使用AT+CWLAP
指令查詢範圍內的wifi模組
搜尋成功後,返回範圍內所有wifi模組的資訊,在最後傳回一個OK。
(2)使用AT+CWJAP="<ssid>","<password>"
指令加入到AP
如果沒有密碼,password為空。
在連結成功後,返回圖中的資料。如果沒有返回“WIFI GOT IP”,說明路由可能沒有開啟DHCP服務,需要手動配置IP地址。
在最後會返回一個OK表示操作完成(不代表連結成功),如果返回FAIL說明密碼可能有錯誤。
7、查詢本地IP(AT+CIFSR
)
通過上指令,可以查詢AP的IP和MAC地址,同時也可以查詢到本地的IP和MAC地址。
查詢成功後返回查詢資訊和OK。
8、建立TCP連結
本文中TCP連結使用單鏈接,如需多連結,請參考使用者手冊。
(1)設定為單點連結(AT+CIPMUX=0
)
開啟單鏈接,設定成功後返回OK。
(2)建立TCP連結(AT+CIPSTART="type","addr",port
)
建立TCP或UDP連結,埠開啟後返回OK。
第一個引數是連結型別,可填寫“TCP”或者“UDP”。
第二個引數是目標IP。
第三個引數是埠號。
(3)傳送資料(AT+CIPSEND
)
使用指令:AT+CIPSEND="length"
,之後返回一個“>”表示資料傳輸開始,當長度滿length時,資料傳送出去。
(4)退出透傳模式
傳送一次+++
並換行,退出透傳模式。
(5)關閉傳輸(AT+CIPCLOSE
)
使用上指令關閉TCP埠。