ESP8266是一款低功耗,便於開發的WIFI模塊,據說其內嵌了32位處理器,並且有自己的操作系統和wi-fi協議棧。
ESP8266具有兩種開發方式,即基於協議棧給出的API接口進行開發和基於AT指令進行簡單開發。
對於新手而言,AT指令開發無疑是最佳選項。
這裏主要講解我使用8266時用到AT指令,詳細的指令解釋可以在網上或者在我博客的資源中下載。開發中用到的工具也可在我的資源中下載
實驗時最好使用USB轉串口模塊先對模塊進行調試,調試後確定沒問題再連接其他微控制器進行開發
本模塊可以工作在三種模式:1. STA(連接到外網,通過外網收發數據) 2 .AP(模塊作爲熱點,其他設備連接模塊的熱點後進行收發數據) 3 .AP+STA
在sscom42.exe中實驗過程:模塊初始波特率好像是115200,可以修改,記得勾選發送新行
首先上電,上電後,藍色燈微弱閃爍後熄滅,紅燈長亮。
在串口工具輸入:AT ,返回OK說明模塊啓動成功
輸入AT指令後一定要有回車作爲結束,否則模塊識別不出命令
一、AP模式
模塊作爲服務器
重啓模塊:AT+RST;響應:OK
設置模式:AT+CWMODE=2;響應:OK
設置後可輸入AT+CWMODE?查詢是否設置成功,不成功就重啓模塊即可
配置熱點參數:AT+CWSAP="名字","密碼",1(通道號),3(加密方式:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK)響應:OK
這時用手機打開WIFI就可以看到模塊的熱點,然後連接熱點
查看接入設備:AT+CWLIF;響應:<ip addr> OK,即返回接入模塊的設備的IP地址
如果沒有ip地址,說明目前無設備連入。如果無線網絡實際已連接上,請等待幾分鐘後再發送AT+CWLIF命令進行查詢。
查詢本機IP:AT+CIFSR;響應:本機IP OK
開啓多連接模式:AT+CIPMUX=1(0:單路連接;1:多路連接);響應:OK
開啓服務器模式:AT+CIPSERVER=1(0:關閉server模式,1:開啓server模式),8080(端口號,缺省值爲333);響應:OK
AT+ CIPMUX=1時才能開啓服務器;關閉server模式需要重啓。開啓server後自動建立server監聽,當有client接入會自動按順序佔用一個連接。
這時就可以用TCP調試助手連接模塊進行通信了(這裏IP地址和端口號選對就能正常通信,模式要選Server)
查看當前連接:AT+CIPSTATUS;響應:+ CIPSTATUS:<id>,<type>,<addr>,<port>,<tetype> OK
<id>:連接的id號0-4
<type>:字符串參數,類型TCP或UDP
<addr>:字符串參數,IP地址
<port>:端口號
<tetype>: 0-本模塊做client的連接,1-本模塊做server的連接
發送數據:AT+CIPSEND=1(ID號,通過上一條指令AT+CIPSTATUS得知),6(數據長度,最大長度爲2048 )
1)單路連接時(+CIPMUX=0),指令爲:AT+CIPSEND=<length>
2)多路連接時(+CIPMUX=1) ,指令爲: AT+CIPSEND= <id>,<length>
響應:收到此命令後先換行返回”>”,然後開始接收串口數據
當數據長度滿length時發送數據。
如果未建立連接或連接被斷開,返回ERROR
如果數據發送成功,返回 SEND OK
此時連接已建立,可以進行數據的雙向收發。
二、STA模式
模塊作爲客戶端
首先要確保模塊不處於服務器模式:AT+CIPSERVER=0
重啓模塊:AT+RST;響應:OK
設置模式:AT+CWMODE=1;響應:OK
查看當前無線路由器列表:AT+CWLAP;響應:返回可接入網絡列表 OK
+ CWLAP: <ecn>,<ssid>,<rssi>
錯誤返回:ERROR 此時請重新上電並嚴格按照AT命令再發送一遍。
說明:< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
<ssid>:字符串參數,接入點名稱
<rssi>:信號強度
加入當前無線網絡:AT+CWJAP="ssid","密碼";響應:OK,錯誤:ERROR
加入網絡後可以檢測下是否加入成功:AT+CWJAP?,返回已加入的網絡的ssid,模塊對已加入的網絡具有記憶功能,即斷電重連後仍默認連接上次加入的網絡(這一點需要特別注意)
連接模式:AT+CIPMUX=(這時0,1都可以)響應:OK
建立TCP連接:AT+CIPSTART=id,"連接方式TCP/UDP","IP地址",8080(端口號)響應:如果格式正確且連接成功,返回 OK,否則返回 ERROR
單路連接時(+CIPMUX=0),指令爲:AT+CIPSTART= <type>,<addr>,<port>
多路連接時(+CIPMUX=1),指令爲:AT+CIPSTART=<id>,<type>,<addr>,<port>
如果連接已經存在,返回 ALREAY CONNECT
<id>:0-4,連接的id號
<type>:字符串參數,表明連接類型,”TCP”-建立tcp連接,”UDP”-建立UDP連接
<addr>:字符串參數,遠程服務器IP地址
<port>:遠程服務器端口號
發數據(向建立TCP/UDP連接的主機發送數據):AT+CIPSEND,這條命令的詳情就不再敘述