0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

啟明云端分享|ESP32-S3如何實(shí)現(xiàn)tcp_client和tcp_server

啟明云端 ? 2021-09-24 17:50 ? 次閱讀

dabe2b62-1cf1-11ec-95d1-dac502259ad0.gif

開發(fā)環(huán)境:

esp-idf:master分支

dabe2b62-1cf1-11ec-95d1-dac502259ad0.gif

硬件需求

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ā)送消息。

02

Tcp_client整體流程:

1、編譯官方tcp_client例程(需要配置下面會詳細(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ù)。

db889f6e-1cf1-11ec-95d1-dac502259ad0.gif

一.Tcp_client例程分析

1.初始化NVS、WiFi連接上WiFi后創(chuàng)建一個(gè)tcp_client任務(wù)。

dbc1fd86-1cf1-11ec-95d1-dac502259ad0.png

WiFi連接函數(shù):example_connect()WiFi信息通過menuconfig 配置。

idf.py menuconfig 進(jìn)入配置菜單,配置連接的WiFi名稱和密碼(要和服務(wù)器端連接到同一路由)。

dc3030ee-1cf1-11ec-95d1-dac502259ad0.png

2.配置遠(yuǎn)程連接信息

dc9cba02-1cf1-11ec-95d1-dac502259ad0.png

3.通過menuconfig配置服務(wù)器的IP以及端口

配置完成后保存退出(服務(wù)器的IP及端口)

dcec553a-1cf1-11ec-95d1-dac502259ad0.png

4.編譯、燒錄

編譯:idf.py build

燒錄:idf.py -p PORT [-b BAUD] flash

注:只有一個(gè)串口時(shí)可以直接 idf.py flash

5.電腦端或手機(jī)端打開TCP服務(wù)器

dd5608ae-1cf1-11ec-95d1-dac502259ad0.png

6.進(jìn)入窗口監(jiān)視頁面

idf.py-pPORTmonitor

1)從和日志可以看出,WiFi連接成功后,創(chuàng)建一個(gè)sock,sock連接成功。

發(fā)送一條信息給服務(wù)器(Message from ESP32),發(fā)送成功后打印一句 數(shù)據(jù)發(fā)送成功。

dde41f9a-1cf1-11ec-95d1-dac502259ad0.png

2)服務(wù)器編輯內(nèi)容發(fā)送給esp32,在窗口監(jiān)視頁面顯示。

紅色箭頭是接收到的服務(wù)器的消息。

de609b2e-1cf1-11ec-95d1-dac502259ad0.png

dec64604-1cf1-11ec-95d1-dac502259ad0.gif

二.tcp_server整體流程:

dfae0df4-1cf1-11ec-95d1-dac502259ad0.gif?1.

編譯官方tcp_server例程(需要配置下面會詳細(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

2.新建 socket、 bind、 listen 和 accept, 最后得到了通信的 socket:用于接收/發(fā)送數(shù)據(jù)。

e0897cc2-1cf1-11ec-95d1-dac502259ad0.png

對應(yīng)log輸出如下:

e13211d4-1cf1-11ec-95d1-dac502259ad0.png

tcp_server操作流程

dabe2b62-1cf1-11ec-95d1-dac502259ad0.gif?

01

打開tcp_server工程,配置menuconfig WiFi、TCP服務(wù)器相關(guān)信息(服務(wù)器端口號,要連接的WiFi)

e1c0788e-1cf1-11ec-95d1-dac502259ad0.png

e20c2946-1cf1-11ec-95d1-dac502259ad0.png

2.編譯工程

idf.py build

編譯成功輸出固件信息,及燒錄地址

e27f9322-1cf1-11ec-95d1-dac502259ad0.png

3.燒錄到開發(fā)板

idf.py -p PORT [-b BAUD] flash

注:只有一個(gè)串口時(shí)可以直接 idf.py flash

e2c0c4dc-1cf1-11ec-95d1-dac502259ad0.gif

4.打開窗口監(jiān)視器

idf.py monitor

可以看到esp32-s3上電以后連接到配置的WiFi,創(chuàng)建了一個(gè)tcp_server等待client的連接。

e31c8d8a-1cf1-11ec-95d1-dac502259ad0.png

5.打開TCP調(diào)試助手,設(shè)置為client模式 輸入服務(wù)器IP及端口號,點(diǎn)擊連接。

e3a97b64-1cf1-11ec-95d1-dac502259ad0.png

6.編輯文本,向服務(wù)器發(fā)送消息

如下圖所示,服務(wù)器端收到消息。并將收到的信息回發(fā)給client端,

e43d7cce-1cf1-11ec-95d1-dac502259ad0.png

e4d96724-1cf1-11ec-95d1-dac502259ad0.png

獲取更多方案應(yīng)用

記得關(guān)注我們

關(guān)于我們dabe2b62-1cf1-11ec-95d1-dac502259ad0.gif?

深圳市啟明云端科技有限公司(簡稱“啟明云端”)是國內(nèi)領(lǐng)先的物聯(lián)網(wǎng)通訊產(chǎn)品和整體解決方案提供商,為全球企業(yè)客戶提供無線通訊產(chǎn)品及場景智能化服務(wù);

公司作為Espressif(樂鑫科技)大中華區(qū)合作伙伴,我們用心整理了你在開發(fā)過程中可能會遇到的問題以及快速上手的簡明教程供開發(fā)小伙伴參考。

你可以通過我們8ms.xyz幫助欄查找,也可以在B站或CSDN搜索啟明云端進(jìn)行查看!

隨時(shí)隨地干貨分享,記得關(guān)注我們哦


原文標(biāo)題:啟明云端分享|ESP32-S3如何實(shí)現(xiàn)tcp_client和tcp_server

文章出處:【微信公眾號:啟明云端科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    936

    瀏覽量

    16669
收藏 人收藏

    評論

    相關(guān)推薦

    ESP8266作Client建立TCP連接出現(xiàn)報(bào)錯(cuò)?

    請教下,ESP8266作Client建立TCP連接,出現(xiàn)錯(cuò)誤 是按照《4B-ESP8266__AT Command Examples__CN_v1.3》文檔上操作的 AT+CIPSTA
    發(fā)表于 07-17 07:16

    請問esp8266 rtos sdk能否同時(shí)啟動(dòng)tcp socke clent和udp server?

    我在用的是V1.5的rtos 的sdk,想在esp8266上同時(shí)啟動(dòng)tcp的socket client和udp的socket server。 但是我發(fā)現(xiàn),只要我一啟動(dòng)upd
    發(fā)表于 07-12 07:07

    請問ESP32-S3藍(lán)牙是否支持SPP?

    由于需要支持RGB565的LCD,選型ESP32-S3。 看介紹,ESP32-S3的藍(lán)牙似乎取消了對經(jīng)典藍(lán)牙的支持。 以前是使用STM32+HC-05模塊連接,需要設(shè)置ROLE=1主角色。 想請教,ESP32-S3是否支持連接這
    發(fā)表于 07-01 08:07

    ESP32-S3芯片賦能設(shè)備,打造智能交互新體驗(yàn)

    在物聯(lián)網(wǎng)和人工智能(AI)技術(shù)融合的浪潮中,樂鑫ESP32-S3芯片以其卓越的性能和多功能性,成為智能家居和工業(yè)自動(dòng)化領(lǐng)域的明星產(chǎn)品。ESP32-S3是一款基于XtensaLX7處理器的嵌入式系統(tǒng)級
    的頭像 發(fā)表于 06-28 08:04 ?492次閱讀
    <b class='flag-5'>ESP32-S3</b>芯片賦能設(shè)備,打造智能交互新體驗(yàn)

    TCP_server例程斷開再次連接會失敗怎么處理?

    使用了TCP_server的例程,發(fā)現(xiàn)當(dāng)電腦作為客戶端去連接esp32(服務(wù)器端)斷開連接之后再次連接時(shí)候連不上,發(fā)現(xiàn):提示已經(jīng)連接上esp32發(fā)出的熱點(diǎn),但是網(wǎng)絡(luò)助手顯示連接失?。ūO(jiān)聽串口失敗
    發(fā)表于 06-28 06:49

    請問ESP32的網(wǎng)口與WIFI能否共存?

    請問ESP32 的網(wǎng)口與WIFI能否共存, 1臺電腦用網(wǎng)口TCP-clientESP32TCP-server連接; 另一臺電腦用WIFI的T
    發(fā)表于 06-25 06:49

    ESP32-S模組更換16MB flash后,編譯顯示drom溢出怎么解決?

    。編譯時(shí)出來了 Generated D:/xxxx/ESP32SDK/tcp_client/build/bootloader/bootloader.bin[916/917] Linking CXX
    發(fā)表于 06-20 07:57

    ESP32-S3使用tcp_server例程,將網(wǎng)絡(luò)數(shù)據(jù)和串口數(shù)據(jù)透傳延遲過高怎么解決?

    使用tcp_server例程修改,將tcp數(shù)據(jù)與串口數(shù)據(jù)進(jìn)行透傳,串口→tcp的數(shù)據(jù)延遲很低,基本都在10ms以內(nèi),但是tcp→串口的數(shù)據(jù)延遲就很高,會達(dá)到100ms以上,回環(huán)測試的延
    發(fā)表于 06-06 06:06

    請問ESP-prog是否可以和ESP32-s3適配,實(shí)現(xiàn)調(diào)試(debug)功能?

    請問ESP-prog 是否可以和ESP32-s3適配,實(shí)現(xiàn)調(diào)試(debug)功能?
    發(fā)表于 06-05 06:34

    分享6個(gè)實(shí)用的ESP32-S3物聯(lián)網(wǎng)項(xiàng)目:從智能設(shè)備到安全創(chuàng)新

    ESP32-S3是物聯(lián)網(wǎng)領(lǐng)域的創(chuàng)新之一,具備2.4GHz Wi-Fi和藍(lán)牙連接、先進(jìn)的安全功能和各種接口協(xié)議的外設(shè)。該雙核微控制器基于TSMC超低功耗40nm技術(shù)構(gòu)建,適合輕量級AI應(yīng)用。兼具
    的頭像 發(fā)表于 05-17 10:15 ?489次閱讀

    ESP32-S3模組燒錄又失敗?分享怎么排查原因

    ESP32-S3模組在物聯(lián)網(wǎng)中非常好用,可以做帶屏小音箱、溫控器、智能86盒、泳池清潔機(jī)器人等等,在燒錄的時(shí)候經(jīng)常會遇到一些問題,這里分享一些燒錄失敗的原因或者燒錄遇到的問題,教大家怎么排查原因
    的頭像 發(fā)表于 05-11 08:04 ?1614次閱讀
    <b class='flag-5'>ESP32-S3</b>模組燒錄又失???分享怎么排查原因

    充電樁選型對比:ESP32-S3模組和ESP32-C3模組誰更合適

    和整體解決方案供應(yīng)商,有非常豐富的充電樁物聯(lián)網(wǎng)項(xiàng)目經(jīng)驗(yàn),充電樁物聯(lián)網(wǎng)選型中經(jīng)常會用到ESP32-C3、ESP32-S3模組,那么今天小啟就對這幾種方案做個(gè)對比,看
    的頭像 發(fā)表于 04-30 08:04 ?3169次閱讀
    充電樁選型對比:<b class='flag-5'>ESP32-S3</b>模組和<b class='flag-5'>ESP32-C3</b>模組誰更合適

    借助ESP32-S3主控MCU、ChirpLAN?小網(wǎng)關(guān)搭建大網(wǎng)絡(luò)

    借助先進(jìn)的ESP32-S3主控MCU,ChirpLAN?小網(wǎng)關(guān)為您帶來前所未有的網(wǎng)絡(luò)體驗(yàn)。
    的頭像 發(fā)表于 03-14 10:02 ?746次閱讀

    TCP的長連接和短連接

    TCP在真正開始進(jìn)行數(shù)據(jù)傳輸之前,ServerClient 之間必須建立一個(gè)連接。當(dāng)數(shù)據(jù)傳輸完成后,雙方不再需要這個(gè)連接時(shí),就可以釋放這個(gè)連接。 TCP連接的建立是通過三次握手,
    的頭像 發(fā)表于 11-13 10:46 ?852次閱讀

    Banana Pi 開源硬件基于ESP32-S3開發(fā)的物聯(lián)網(wǎng)開發(fā)板系列

    Banana Pi 開源硬件基于ESP32-S3開發(fā)的物聯(lián)網(wǎng)開發(fā)板系列
    的頭像 發(fā)表于 09-28 16:21 ?962次閱讀
    Banana Pi 開源硬件基于<b class='flag-5'>ESP32-S3</b>開發(fā)的物聯(lián)網(wǎng)開發(fā)板系列