1. 程式人生 > >ESP8266-3種模式用法

ESP8266-3種模式用法

ESP8266有三種工作模式:
1.Station (客戶端模式)
2.AP (接入點模式)
3.Station+AP (兩種模式共存)
就是說模組可以當成一個裝置(client)連線區域網內的路由,也可以設定成是一個路由(sever),也可以既作為局域網裡面的client同時又是其他client的sever。
    下面我們可以嘗試一下配置ESP8266的指令(注意:每條AT指令後面都要加一個回車鍵再發送!!!輸入用串列埠軟體輸入,相當於把電腦想象成微控制器來用。):

一、先玩玩AP(sever)模式
1.輸入:AT+CWMODE=2
 響應:OK
說明:指令原型為:AT+CWMODE=<mode>;其中<mode>:1-Station模式,2-AP模式,3-AP兼Station模式。
2.輸入:AT+RST
 響應: OK
說明:配置好模式後需要重啟生效。
3.輸入:AT+CWMODE?
 響應:+CWMODE:2
       OK
說明:這條指令可以不要,這是查詢當前模式的指令,模式返回是2,說明是AP模式。

4.輸入:AT+CWSAP="ESP8266","0123456789",11,0
 響應:OK
說明:指令原型為:AT+ CWSAP=<ssid>,<pwd>,<chl>, <ecn>;其中<ssid>:字串引數,接入點名稱;<pwd>:字串引數,密碼最長64位元組,ASCII;<chl>:通道號;< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然後現在就可以在你的手機或者是電腦通過無線網絡卡連線到ESP8266上了。
5.輸入:AT+CIPMUX=1
 響應:OK
說明:開啟多連線模式,因為只有在開啟多連線模式的時候才能開啟伺服器模式。注意:透傳只能在單連線模式下進行。
6.輸入:AT+CIPSERVER=1,8080
 響應:OK
說明:設定埠為8080。
最後,我們就可以通過網路除錯助手來通過“TCP Client”模式下新增“IP:192.168.4.1(模組預設的IP),埠8080(第6步設定的)”值得一提的是,ESP8266當伺服器的時候,客戶端如果沒有資料傳輸,隔一段時間會自動斷開連線,可通過AT+CIPSTO=<time>命令設定超時時間(說明:<time>:伺服器超時時間,0~2880,單位為s)。

7.輸入AT+CIPSEND=0,10
             返回:OK
              >
 輸入字串,就可以發到手機上了,0是通道號,10是資料長度。

二、再玩玩Station(client)模式
1.輸入:AT+CWMODE=1
 響應:OK
說明:指令原型為:AT+CWMODE=<mode>;其中<mode>:1-Station模式,2-AP模式,3-AP兼Station模式。
2.輸入:AT+RST
 響應: OK
說明:配置好模式後需要重啟生效。
3.輸入:AT+CWMODE?
 響應:+CWMODE:1
       OK
說明:這條指令可以不要,這是查詢當前模式的指令,模式返回是1,說明是Station模式。再看電腦或者手機wifi連線視窗,剛才的熱點已經消失了,說明已經把模式轉換為了客戶端模式。
4.輸入:AT+CWLAP
 響應:+CWLAP:(4,"呭摜",-84,"78:eb:14:f3:9c:1a",1)
+CWLAP:(4,"509509",-53,"20:dc:e6:d0:3b:3c",1)
+CWLAP:(4,"bing2014",-73,"ec:88:8f:63:40:d4",1)
+CWLAP:(3,"瀵嗙爜鏄?883125",-80,"7e:2f:68:6b:df:5e",11)
OK
說明:可以讓模組搜尋周圍的訊號了,列出可以連線的熱點(中文顯示為亂碼)。
5.輸入:AT+CWJAP="509509","ldzldz509" 
     響應:OK
說明:指令原型為:AT+CWJAP=<ssid>,<pwd>),ssid就是wifi的名字,pwd就是wifi的密碼。
6.輸入:AT+CWJAP?
 響應:+CWJAP:”509509”
       OK
說明:這條指令可以不要,這是查詢一下當前連線的AP。
7.輸入:AT+CIFSR
 響應:192.168.1.104
       OK
8.輸入:AT+CIPSTA_CUR=”192.168.6.100”,"192.168.6.1","255.255.255.0"
     響應:OK
說明:這條指令可以不要,這是分配固定ip。

說明:通過路由器檢視下模組的IP地址。如果模組之前我們設定成了AP和Station共存模式,則會出現兩個IP,上面的APIP是作為無線AP的IP地址。下面的STAIP是它作為客戶端從路由器獲取到的IP 地址。
ESP8266是有暫存器的,所以即使重啟連線資訊也不會丟失,重啟後再查詢,發現會自動連線。使用電腦ping一下這個ip,ip是可以ping通的,說明連線正常。
C:\Users\Administrator>ping 192.168.1.104

正在 Ping 192.168.1.104 具有 32 位元組的資料:
來自 192.168.1.104 的回覆: 位元組=32 時間=65ms TTL=255
來自 192.168.1.104 的回覆: 位元組=32 時間=95ms TTL=255
來自 192.168.1.104 的回覆: 位元組=32 時間=102ms TTL=255
來自 192.168.1.104 的回覆: 位元組=32 時間=18ms TTL=255

192.168.1.104 的 Ping 統計資訊:
資料包: 已傳送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 18ms,最長 = 102ms,平均 = 70ms
通過路由器管理介面檢視到模組的MAC地址為:18-FE-34-9C-8B-9D
可以調整一下路由器的IP分發策略,讓這個mac地址獲得固定的ip,這樣每次連線路由器之後就不用檢視ip了。配置後提示要重啟路由器才生效,沒關係以後有時間再重啟。
8.輸入:我們用來除錯的這臺電腦(電腦也需連線同一個路由器)上建立一個TCP伺服器,然後用我們剛剛連線到路由器的ESP8266模組連線到我們建立的這個TCP伺服器上,然後在這個模組與伺服器之間轉輸資料。用到的工具是網路助手NetAssist.exe,執行後在網路協議型別:TCP Server ,然後點“連線”按扭,成為一臺TCP伺服器。
3.png


9.輸入:AT+CIPSTART="TCP","192.168.1.100",8080
 響應:CONNECT
       OK
說明:192.168.1.100為伺服器IP地址;8080為埠。
10.輸入:AT+CIPSEND=4  
 響應:OK
說明:意思是傳送四個位元組的資料。
11.輸入:ABCD 
 響應:SEND OK
說明:NetAssist會收到ABCD四個字母。

4.png

這裡他以十六進位制顯示出來了。
12.把網路助手的“連線物件”選擇成我們的模組IP地址,在下面輸入:CDEFG,點發送,會在串列埠工具收到+IPD,5:CDEFG。意思是接收到的資料長度為5個位元組,CDEFG為資料內容。

 

三、Station(client)模式下與手機通訊
1.輸入:AT+CWMODE=3
 響應:OK
說明:指令原型為:AT+CWMODE=<mode>;其中<mode>:1-Station模式,2-AP模式,3-AP兼Station模式。
2.輸入:AT+RST
 響應: OK
說明:配置好模式後需要重啟生效。
3.輸入:AT+CWMODE?
 響應:+CWMODE:3
       OK
說明:這條指令可以不要。
4.輸入:AT+CWSAP="ESP8266","0123456789",11,0
 響應:OK
說明:指令原型為:AT+ CWSAP=<ssid>,<pwd>,<chl>, <ecn>;其中<ssid>:字串引數,接入點名稱;<pwd>:字串引數,密碼最長64位元組,ASCII;<chl>:通道號;< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然後現在就可以在你的手機或者是電腦通過無線網絡卡連線到ESP8266上了。
開啟手機上的有人網路助手,TCP server→配置→啟用→能看到此時手機的IP和埠號,要記下,下面要用。
5.輸入:AT+CIPMODE=1
 響應:OK
說明:開啟透傳模式。
6.輸入:AT+CIPMUX=0
 響應:OK

說明:開啟單路模式。
 7.輸入:AT+CIPSTART="TCP","192.168.4.2",8080
 響應:CONNECT
       OK
說明:192.168.4.2為伺服器IP地址;8080為埠。填剛才記下的手機IP和埠號
這時手機已經能向模組發信息了,但模組不能發。 
8.輸入:AT+CIPSEND
 響應:OK
說明:ESP8266傳送資料至手機。

 

這個模組還有很多玩法,就不一一列出了。比如外網通訊:
模組連線路由器後,然後就是設定路由器了。路由器上要做埠對映。意思是:路由器才是掛在外網的電腦,它有一個外網IP,在任何地方都能訪問的外網IP。假設你的外網IP是 111.222.333.444. 你連線這個IP就是連線你的路由器。好。
但路由器通常是作為你從內網連線外部網路,上網用的。如果你直接從外部連線路由器,路由器也不知道你要連線什麼服務。於是你要設定路由器,告訴路由器,如果有人訪問路由器的某個埠,就把這個訪問轉嫁到內網的某個裝置的某個埠,這就是對映。比如你設定路由器的8008埠對映到內部的192.168.0.1的80埠。當你訪問111.222.333.444:8008(開啟IE瀏覽器,輸入http://111.222.333.444:8008)時,就如同在內網訪問192.168.0.1:80一樣。埠對映功能在路由器設定介面有時會叫虛擬服務,虛擬主機服務等等。
你要把收發兩端的都做對映設定,然後就可以調轉來也可以連線。只對映一邊,你只能固定從未對映的一邊去連線已做對映的一邊。
溫馨提示:要做外網通訊測試,不要使用常用埠,如80,8080等等,可能已經被如來佛組遮蔽了。