一.概述:
esp32-wroom模塊可以提供wifi,藍牙等功能.本次測試主要使用WiFi功能進行數據的透傳,也是很多項目中經常用到的功能.大體思路是esp模塊設置為station模式(也就是作為一個終端設備,如pc),在該模式下連接到現有路由器網絡.這時路由器網絡中的設備之間便可以通過網絡進行數據的交換,也就是說esp32模塊具有了和其他設備通訊的橋梁.
二.硬體準備:
esp32-wroom模塊一個,
轉接板一個(安信可淘寶店買esp32時贈送),
3.3v電源一個,
usb轉ttl模塊一個
三.硬體接線
首先說明的是,如果有朋友讀過esp32的資料一定認為需要自己焊接外部最小系統電路部分.
其實不用了.
買的安信可esp32-wroom都已經封裝好了,只需要把esp32-wroom模塊焊接到轉接板上,然後
轉接板的3.3v和gnd接外部3.3v電源.
轉接板的io16→usb轉ttl的txd,
轉接板的io17--→usb轉ttl的rxd,
轉接板的GND-→usb轉ttl的gnd.
轉接板的io16和io17是esp32的串口1,專門用於at指令傳輸的.
四.使用AT指令配置模塊
AT指令是控制設置esp32模塊的唯一途徑.因為我沒有購買開發板的緣故,我猜測購買開發板後是可以通過源碼設置esp32模塊的.由於沒有開發板,所以還是at指令吧.
打開串口調試助手,波特率是115200,發送的at不區分大小寫,發指令時後邊加個回車鍵.如發送at,需要在串口調試助手中寫at,然後按下回車鍵,再點擊發送才行.如下圖是示例.具體要查看at指令文檔.
修改wifi名稱,帳號,密碼
AT+CWSAP="esp32","123456789",5,4
其中esp32是wifi名字,1~9是密碼.其他信息查看at文檔
五.設置tcp透傳(重點)
1)TCP 客戶端單連接透傳
以下為 ESP32 作為 Station 實現 TCP 客戶端單連接透傳的舉例。
1. 設置 Wi-Fi 模式:
AT+CWMODE=3 // SoftAP+Station mode
2. 連接路由:
AT+CWJAP="SSID","password" // esp32要連接的路由器wifi的名稱和密碼
響應:
OK
3. 查詢esp32設備 IP 地址:
AT+CIFSR
響應:
192.168.1.106 // device's IP that got from router
4. PC 與 ESP32 連接同一個路由,在 PC 上使用網絡調試工具,創建一個 TCP 伺服器。
- 如,假設 TCP 伺服器的 IP 為 192.168.1.102,端為 8080。
5. esp32作為 TCP 客戶端連接 TCP 伺服器:
AT+CIPSTART="TCP","192.168.1.102",8080 // protocol, server IP & port
響應:
OK
6. 使能透傳模式:
AT+CIPMODE=1
響應:
OK
7. 發送數據:
AT+CIPSEND
響應:
> //開始串口調試助手發送數據,伺服器就可以接收了.
8. 退出發送數據:
在透傳發送數據過程中,若識別到單獨的包數據:+++,則退出透傳發送。
請至少間隔 1 秒,再發下一條 AT 指令。
9. 退出透傳模式:
AT+CIPMODE=0
響應:
OK
10.斷開 TCP 連接:
AT+CIPCLOSE
響應:
CLOSED
OK
經過以上10步你已經知道了測試esp32的透傳功能,我在親自實驗之餘也是非常興奮.接著我就哭了,我測試過後想試試斷電後再上電能否還是進入透傳模式呢.結果讓我哭.不行了.想著esp32這麼牛叉的一個模塊不能沒有保存設置什麼的吧,結果翻查at指令文檔時發現了一條指令.
11.透傳模式的掉電保存
指令:AT+SAVETRANSLINK=1,"192.168.1.102",8080,"TCP"
即可實現斷電再上電,直接進入tcp的透傳模式.上電後大約3秒鐘左右發送數據才可以.估計是esp模塊的準備時間.
這是一張伺服器和客戶端e's'p32的雙向通訊示例圖片.esp32發送:義縣遊學電子科技,伺服器收到.接著伺服器發送:義縣遊學電子科技,客戶端也正常顯示.
六.結論
以上就是我tcp透傳方式進行的雙向通信測試,總體來說還挺順利的.就是一開始查資料發現esp32的下載電路,外圍供電電路還有些器件電阻需要焊接我就有些頭疼了.然後沒有盲目的動手焊接,而是詢問了安信可模塊的客服,得到答案是已經封裝好了,不用自己動手了.希望本文能夠給剛接觸esp32的朋友一點啟發,作為入門使用.謝謝各位!
測試人:義縣遊學電子科技
日期:2019年8月21日