esp-idf:master分支
Esp32-s3開發(fā)板
TCP介紹:
傳輸控制協(xié)議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。
TCP分為服務(wù)端Server和客戶端Client,服務(wù)端創(chuàng)建服務(wù)等待客戶端連接,客戶端連接后即可與服務(wù)端相互發(fā)送消息,服務(wù)端只有一個(gè),客戶端可以是N個(gè)。
可以同時(shí)連接服務(wù)端,服務(wù)器不能主動(dòng)去連接客戶端,必須客戶端主動(dòng)連接服務(wù)端才能相互發(fā)送消息。
02Tcp_client整體流程:
1、編譯官方tcp_client例程(需要配置下面會(huì)詳細(xì)介紹),燒錄到ESP32-S3開發(fā)板。
2、使用TCP調(diào)試助手創(chuàng)建TCP Server(電腦必須與開發(fā)板在同一路由器下)。
3、重啟ESP32,創(chuàng)建TCP Client,開始連接電腦創(chuàng)建的服務(wù)器。
4、相互發(fā)送數(shù)據(jù)。
一.Tcp_client例程分析
1.初始化NVS、WiFi連接上WiFi后創(chuàng)建一個(gè)tcp_client任務(wù)。
WiFi連接函數(shù):example_connect()WiFi信息通過menuconfig 配置。
idf.py menuconfig 進(jìn)入配置菜單,配置連接的WiFi名稱和密碼(要和服務(wù)器端連接到同一路由)。
2.配置遠(yuǎn)程連接信息
3.通過menuconfig配置服務(wù)器的IP以及端口號(hào)
配置完成后保存退出(服務(wù)器的IP及端口)
4.編譯、燒錄
編譯:idf.py build
燒錄:idf.py -p PORT [-b BAUD] flash
注:只有一個(gè)串口時(shí)可以直接 idf.py flash
5.電腦端或手機(jī)端打開TCP服務(wù)器
6.進(jìn)入窗口監(jiān)視頁面
idf.py-pPORTmonitor
1)從和日志可以看出,WiFi連接成功后,創(chuàng)建一個(gè)sock,sock連接成功。
發(fā)送一條信息給服務(wù)器(Message from ESP32),發(fā)送成功后打印一句 數(shù)據(jù)發(fā)送成功。
2)服務(wù)器編輯內(nèi)容發(fā)送給esp32,在窗口監(jiān)視頁面顯示。
紅色箭頭是接收到的服務(wù)器的消息。
二.tcp_server整體流程:
![dfae0df4-1cf1-11ec-95d1-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/9C/98/wKgaomTnzzOAdvh8AAC0f4xWbKk252.gif)
編譯官方tcp_server例程(需要配置下面會(huì)詳細(xì)介紹),燒錄到ESP32-S3開發(fā)板。
2.打開tcp調(diào)試助手(電腦or手機(jī)必須與開發(fā)板在同一路由器下)。
3.打開tcp調(diào)試助手(電腦or手機(jī)必須與開發(fā)板在同一路由器下)。
4.進(jìn)行通訊發(fā)送數(shù)據(jù)。
Tcp_server例程分析:
1.初始化NVS、WiFi連接上WiFi后創(chuàng)建一個(gè)tcp_server任務(wù)。
![e01a6490-1cf1-11ec-95d1-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9C/98/wKgaomTnzzOATOfLAADpYnq0P1A697.png)
2.新建 socket、 bind、 listen 和 accept, 最后得到了通信的 socket:用于接收/發(fā)送數(shù)據(jù)。
對(duì)應(yīng)log輸出如下:
tcp_server操作流程
![dabe2b62-1cf1-11ec-95d1-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/9C/98/wKgaomTnzzKAbANEAADu1xW2ByI397.gif)
打開tcp_server工程,配置menuconfig WiFi、TCP服務(wù)器相關(guān)信息(服務(wù)器端口號(hào),要連接的WiFi)
2.編譯工程
idf.py build
編譯成功輸出固件信息,及燒錄地址
3.燒錄到開發(fā)板
idf.py -p PORT [-b BAUD] flash
注:只有一個(gè)串口時(shí)可以直接 idf.py flash
![e2c0c4dc-1cf1-11ec-95d1-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/9C/98/wKgaomTnzzSAQT5NAAFYmJnsRdU488.gif)
4.打開窗口監(jiān)視器
idf.py monitor
可以看到esp32-s3上電以后連接到配置的WiFi,創(chuàng)建了一個(gè)tcp_server等待client的連接。
5.打開TCP調(diào)試助手,設(shè)置為client模式 輸入服務(wù)器IP及端口號(hào),點(diǎn)擊連接。
6.編輯文本,向服務(wù)器發(fā)送消息
如下圖所示,服務(wù)器端收到消息。并將收到的信息回發(fā)給client端,
獲取更多方案應(yīng)用
記得關(guān)注我們
關(guān)于我們![dabe2b62-1cf1-11ec-95d1-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/9C/98/wKgaomTnzzKAbANEAADu1xW2ByI397.gif)
深圳市啟明云端科技有限公司(簡(jiǎn)稱“啟明云端”)是國(guó)內(nèi)領(lǐng)先的物聯(lián)網(wǎng)通訊產(chǎn)品和整體解決方案提供商,為全球企業(yè)客戶提供無線通訊產(chǎn)品及場(chǎng)景智能化服務(wù);
公司作為Espressif(樂鑫科技)大中華區(qū)合作伙伴,我們用心整理了你在開發(fā)過程中可能會(huì)遇到的問題以及快速上手的簡(jiǎn)明教程供開發(fā)小伙伴參考。
你可以通過我們8ms.xyz幫助欄查找,也可以在B站或CSDN搜索啟明云端進(jìn)行查看!
隨時(shí)隨地干貨分享,記得關(guān)注我們哦
原文標(biāo)題:?jiǎn)⒚髟贫朔窒韡ESP32-S3如何實(shí)現(xiàn)tcp_client和tcp_server
文章出處:【微信公眾號(hào):?jiǎn)⒚髟贫丝萍肌繗g迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
ESP32
+關(guān)注
關(guān)注
18文章
978瀏覽量
17525
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【AI技術(shù)支持】ESP32-S3芯片重復(fù)異常復(fù)位問題處理
![【AI技術(shù)支持】<b class='flag-5'>ESP32-S3</b>芯片重復(fù)異常復(fù)位問題處理](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
【AI技術(shù)支持】ESP32-S3模組EspBleOTA搜索不到ble_ota例程的藍(lán)牙問題處理
![【AI技術(shù)支持】<b class='flag-5'>ESP32-S3</b>模組EspBleOTA搜索不到ble_ota例程的藍(lán)牙問題處理](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
【新品發(fā)布】啟明云端高性能AI筆筒,基于樂鑫ESP32-S3開發(fā)應(yīng)用
![【新品發(fā)布】<b class='flag-5'>啟明</b><b class='flag-5'>云端</b>高性能AI筆筒,基于樂鑫<b class='flag-5'>ESP32-S3</b>開發(fā)應(yīng)用](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
【AI技術(shù)支持】ESP32-S3 JTAG調(diào)試問題處理
![【AI技術(shù)支持】<b class='flag-5'>ESP32-S3</b> JTAG調(diào)試問題處理](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
ESP8266作Client建立TCP連接出現(xiàn)報(bào)錯(cuò)?
請(qǐng)問esp8266 rtos sdk能否同時(shí)啟動(dòng)tcp socke clent和udp server?
請(qǐng)問ESP32-S3藍(lán)牙是否支持SPP?
ESP32-S3芯片賦能設(shè)備,打造智能交互新體驗(yàn)
![<b class='flag-5'>ESP32-S3</b>芯片賦能設(shè)備,打造智能交互新體驗(yàn)](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
TCP_server例程斷開再次連接會(huì)失敗怎么處理?
請(qǐng)問ESP32的網(wǎng)口與WIFI能否共存?
ESP32-S3使用tcp_server例程,將網(wǎng)絡(luò)數(shù)據(jù)和串口數(shù)據(jù)透?jìng)餮舆t過高怎么解決?
分享6個(gè)實(shí)用的ESP32-S3物聯(lián)網(wǎng)項(xiàng)目:從智能設(shè)備到安全創(chuàng)新
ESP32-S3模組燒錄又失敗?分享怎么排查原因
![<b class='flag-5'>ESP32-S3</b>模組燒錄又失敗?分享怎么排查原因](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
充電樁選型對(duì)比:ESP32-S3模組和ESP32-C3模組誰更合適
![充電樁選型對(duì)比:<b class='flag-5'>ESP32-S3</b>模組和<b class='flag-5'>ESP32-C3</b>模組誰更合適](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
評(píng)論