2017年11月17日 星期五

如何使用 AT 指令讓同在 AP+STA 模式下的 ESP8266 互相通訊 ?

網頁最後修改時間:2017/11/17

通常與 ESP8266 通訊都是單方面發送或是接收其他 Wi-Fi 裝置的訊息,比較少機會直接兩顆以上 ESP8266 做通訊,較多是連線到家中路由器取得 IP 之後再做通訊;前者受限於同時最多只有 5 個 linkID,而後者可以很多。而在這篇網頁中,是利用回答網友問題的同時,分享測試的結果,描述同處在 AP+STA 模式下的兩顆 ESP8266 如何成功建立 TCP 通訊。
*********************************************************************************
此網頁所用的材料可自行準備,或選用新版本的升級套件
更多 ESP8266 相關商品,請至分類賣場*********************************************************************************

ESP8266 直接通訊,很多時候都是一個是 STA 模式,而另一個是 AP 或是 AP+STA 模式;最多詢問的還是 ESP8266 與外部連線上的問題。而這次比較不同的是,兩顆 ESP8266 都是在 AP+STA 模式下,其中一方想要與另外一方建立 TCP 連線做透傳,但是幾乎都無法成功連線。他不清楚問題發生的原因,所以私下 e-mail 問我,而我根據他的問題大概試想了出現的問題點就直接先回了他。接著就馬上找了兩組相同 AT 版本的 ESP8266 做了測試,測試結果證明,這個想法是可行的!

廢話先不多說,直接先看影片中的指令操作。

軟體的右側是 AT 指令集,一開始先將之前做的設定什麼的清除到最原始的模組設定參數。1 - 3 列的設定,兩個模組都一樣;從第四列開始左右邊就依照順序下。

兩個同處在 AP+STA 模式下的 ESP8266,AT 韌體預設的 AP IP 地址是 192.168.4.1,因此當 Client 端加入到 Server 端的 AP 網路後,STA 所顯示取得 IP 位址會是 192.168.4.*,所以當 Client 端下 AT+CWJAP 欲與 Server 端連線時會出現錯誤。為了避免兩個 AP 都是相同位址的情況下連線造成混淆,因此可藉由修改其中一方的 AP 位址來免除這種問題;當然,若是 Client 是處在 STA 模式下則這問題應該就不會發生。

早前部落格中的 "操控 ESP8266 無線模組 - 經由 AP、STA 和 AP+STA 三種模式,學習 ESP8266 AT 指令" 這篇網頁所提及的 AT 指令是基本的指令集,後來經過多次版本的升級,現在新增了許多的 AT 指令 (這些新增的指令可以由賣場提供的雲端硬碟裡找到相關的 PDF 文件 ),絕大部分會用到的機會不多,除非是在特殊的場合情況下;像是我想要修改 AP 預設的 IP 位址由 192.168.4.1 改為 192.168.20.1,就可以查查 AT 指令集的 PDF 看看是否有支援的指令可以用;而我們需要的就是 AT+CIPAP 這個指令。藉由這個指令先行修改 AP 的 IP 位址,最後當 Client 端連線時就能正常連線。
AT+CIPAP 指令說明
使用 AT 指令用來學習 ESP8266 是一個不錯的選擇 (建議 AT 指令集隨侍在側),不過一開始需要花一些時間熟悉為數不少的指令,實則是個難熬的過程!希望上面簡單的操作與說明,可以稍稍減輕學習和操作 AT 指令上的負擔與疑惑 。

^_^


<< 部落格相關文章 >>

沒有留言:

張貼留言

留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!

發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?

不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !