STM32第二十天 ESP8266-01S和電腦實現串口通信(3)

1:透傳

透傳(又稱透明傳輸)是一種通信模式,其核心特點是:通信設備對傳輸的數據不做任何解析或處理,僅作為“管道”原封不動地轉發數據,仿佛數據“透明”地穿過設備。

透傳的本質
關鍵特征說明
無協議解析設備不識別數據內容(如HTTP/MQTT等協議),直接轉發原始字節流
無數據修改不添加頭部/尾部信息、不加密/解密、不壓縮/解壓
雙向透明上行(設備→服務器)和下行(服務器→設備)均保持數據原樣
硬件無關性數據來源/去向可以是串口、WiFi、4G等任意接口,設備只負責通路建立

二:

1. TCP Client 單連接透傳
以下為 ESP8266 作為 station 實現 TCP client 單連接透傳的舉例例,ESP8266 作為 softAP
可同理理實現透傳。
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
響應 :
OK
2. 連接路路由器?
AT+CWJAP="SSID","password" // SSID and password of router
響應 :
OK
3. 查詢 ESP8266 設備的 IP 地址
AT+CIFSR
響應 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:a5:8d:c6"
+CIFSR:STAIP,"192.168.3.133"
+CIFSR:STAMAC,"18:fe:34:a5:8d:c6"
OK
4. PC ESP8266 設備連接同?一路路由器?,在 PC 端使?用?網絡調試?工具,建?立?一個 TCP
務器?。
- 假設,PC 創建的服務器? IP 地址為 192.168.3.116,端?口為 8080
5. ESP8266 設備作為 TCP client 連接到上述服務器?
AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port
響應 :
OK
6. 使能透傳模式
AT+CIPMODE=1
響應 :
OK
7. ESP8266 設備向服務器?發送數據
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
? <link ID>:?網絡連接 ID (0 ~ 4),?用于多
連接的情況
? <length>:數字參數,表明發送數據的?長
度,最?大?長度為 2048
? [<remote IP>]UDP 傳輸可以設置對端 IP
? [<remote port>]UDP 傳輸可以設置對端
端?
? 注意:
? 發送數據時,如果輸?入的字節數超過了了設置?長度(n):
- 系統將提示 busy,并發送數據的前 n 個字節,發送完成后響應 SEND OK
- 超出?長度的部分數據被認為是?無效數據,不不被接受。
8. 退出發送數據:
在透傳發送數據過程中,若識別到單獨的?一包數據 “+++”,則退出透傳發送。
- 如果使?用鍵盤打字輸?入 “+++” ,可能耗時太?長,不不被認為是連續的三個 “+”,建議使
?用串串?口?工具?一次性發送 “+++”,并請注意不不要攜帶空格或換?行行符等不不可?見字符。
- 之后,請?至少間隔 1 秒,再發下?一條 AT 指令。
? 注意:
“+++“ 退出透傳發送數據,回到正常 AT 指令模式。此時,TCP 連接仍然是保持的,可以再發 AT+CIPSEND
指令,重新開始透傳。
9. 退出透傳模式
AT+CIPMODE=0
響應 :
OK
10.斷開 TCP 連接
AT+CIPCLOSE
響應 :
CLOSED
OK

2. UDP 透傳
以下為 ESP8266 作為 softAP 實現 UDP 透傳的舉例例,ESP8266 作為 station 可同理理實現
透傳。
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
響應 :
OK
2. PC 連?入 ESP8266 softAP
3. PC 端使?用?網絡調試?工具,建?立?一個 UDP 傳輸。
- 假設,PC 創建的 UDP ?自身 IP 地址為 192.168.4.2,端?口為 1001
4. ESP8266 PC 對應端?口建?立固定對端的 UDP 傳輸
AT+CIPSTART="UDP","192.168.4.2",1001,2233,0
響應 :
OK
5. 使能透傳模式
AT+CIPMODE=1
響應 :
OK
6. ESP8266 設備向服務器?發送數據
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
? 注意:
? 發送數據時,如果輸?入的字節數超過了了設置?長度(n):
- 系統將提示 busy,并發送數據的前 n 個字節,發送完成后響應 SEND OK
- 超出?長度的部分數據被認為是?無效數據,不不被接受。
7. 退出發送數據:
在透傳發送數據過程中,若識別到單獨的?一包數據 “+++”,則退出透傳發送。
- 如果使?用鍵盤打字輸?入 “+++” ,可能耗時太?長,不不被認為是連續的三個 “+”,建議使
?用串串?口?工具?一次性發送 “+++”,并請注意不不要攜帶空格或換?行行符等不不可?見字符。
- 之后,請?至少間隔 1 秒,再發下?一條 AT 指令。
? 注意:
“+++“ 退出透傳發送數據,回到正常 AT 指令模式。此時,TCP 連接仍然是保持的,可以再發 AT+CIPSEND
指令,重新開始透傳。
8. 退出透傳模式
AT+CIPMODE=0
響應 :
OK
9. 斷開 ?連接
AT+CIPCLOSE
響應 :
CLOSED
OK

多連接 TCP Server?

ESP8266 AT 僅?支持建?立?一個 TCP 服務器?,且必須使能多連接,即允許連接多個 TCP
client
以下為 ESP8266 作為 softAP ,建?立 TCP 服務器?的舉例例;如果是 ESP8266 作為 station
可在連接路路由后,同理理建?立服務器
1. 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
響應 :
OK
2. 使能多連接
AT+CIPMUX=1
響應 :
OK
3. 建?立 TCP server
AT+CIPSERVER=1 // default port = 333
一定要寫端口號
響應 :
OK
4. PC 連?入 ESP8266 softAP
5. PC 端使?用?網絡調試?工具,建?立?一個 TCP client,連接 ESP8266 TCP server
? 注意:
ESP8266 作為 TCP server 有超時機制,如果連接建?立后,?一段時間內?無數據來往,ESP8266 TCP server
TCP client 踢掉。因此,請在 PC TCP client 連上 ESP8266 TCP server 后建?立?一個 2s 的循環數據發送,
?用于保持連接。
6. 發送數據
// ID number of connection is defaulted to be 0.
AT+CIPSEND=0, 4 // send 4 bytes to connection NO.0
>test // enter the data, no CR
響應 :
Recv 4 bytes
SEND OK
? 注意:
? 發送數據時,如果輸?入的字節數超過了了設置?長度(n):
- 系統將提示 busy,并發送數據的前 n 個字節,發送完成后響應 SEND OK
- 超出?長度的部分數據被認為是?無效數據,不不被接受。
7. 接收數據。 當 ESP8266 設備接收到服務器?發來的數據,將提示如下信息:
+IPD,0,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
8. 斷開 UDP 傳輸
AT+CIPCLOSE=0
響應 :
0,CLOSED
OK

今日心得

透傳模式 VS 非透傳模式(以ESP8266為例)

對比項透傳模式非透傳模式(AT指令模式)
數據交互方式直接通過串口發送/接收原始數據需用AT指令封裝數據(如AT+CIPSEND=5
模塊角色純“管道”協議解析者(需識別指令格式)
延遲極低(無指令解析開銷)較高(需等待指令響應)
適用場景實時流媒體/高速數據傳輸調試/小數據量控制

透傳的核心價值

  1. 簡化開發

    • MCU無需處理網絡協議棧,專注業務邏輯

    • 降低代碼復雜度(例:傳感器直接輸出字符串"TEMP:25.6C"即可上傳)

  2. 提升實時性

    • 省去AT指令交互時間(每條指令需50-200ms響應)

    • 適合高速數據采集(如工業振動傳感器每秒千次采樣)

  3. 協議靈活性

    • 可傳輸任意私有協議(設備與服務器約定格式即可)

    • 無懼協議升級(模塊無需固件更新)

注意事項

  1. 數據邊界問題

    • TCP透傳是字節流,需自定義幀分隔符(如\r\n

    • UDP透傳保留報文邊界,但需處理丟包(例:傳感器加時間戳)

  2. 退出沖突風險

    • 避免數據中含+++(可通過AT+UART_DEF修改退出序列)

  3. 流控必要性

    • 高速傳輸時啟用硬件流控(RTS/CTS),防止串口緩沖區溢出

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91090.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微服務引擎 MSE 及云原生 API 網關 2025 年 3 月產品動態

點擊此處&#xff0c;了解微服務引擎 MSE 產品詳情。

在 Docker 上安裝和配置 Kafka、選擇用于部署 Kafka 的操作系統

消息代理是一種軟件&#xff0c;充當在不同應用程序之間發送消息的中介。它的功能類似于服務器&#xff0c;從一個應用程序&#xff08;稱為生產者&#xff09;接收消息&#xff0c;并將其路由到一個或多個其他應用程序&#xff08;稱為消費者&#xff09;。消息代理的主要目的…

2D下的幾何變換(C#實現,持續更新)

&#xff08;1&#xff09;已知2D下&#xff0c;新坐標系的原點、X軸方向向量、Y軸方向向量在原始坐標系下的表示&#xff0c;求原始坐標系中直線&#xff0c;在新坐標系下的直線方程&#xff1b;&#xff08;2&#xff09;求直線與2D包圍盒的交點&#xff0c;可能有0、1或2個交…

Pandas-特征工程詳解

Pandas-特征工程詳解一、特征工程的核心目標二、數據類型與基礎轉換1. 數值型特征&#xff1a;類型優化與異常處理2. 分類型特征&#xff1a;編碼與規范化&#xff08;1&#xff09;標簽編碼&#xff08;Label Encoding&#xff09;&#xff08;2&#xff09;獨熱編碼&#xff…

pip install torch各種版本的命令及地址

一、遇到的問題&#xff1a;cuda和torch編譯時的版本不一致 在安裝mmcv時遇到error MMCV_WITH_OPS1 python setup.py develo RuntimeError: The detected CUDA version (11.3) mismatches the version that was used to compile PyTorch (10.2). Please make sure to use th…

【spring boot】三種日志系統對比:ELK、Loki+Grafana、Docker API

文章目錄**方案 1&#xff1a;使用 ELK&#xff08;Elasticsearch Logstash Kibana&#xff09;****適用場景****搭建步驟****1. 修改 Spring Boot 日志輸出****2. 創建 Docker Compose 文件****3. 配置 Logstash****4. 啟動服務****方案 2&#xff1a;使用 Loki Grafana***…

Cesium加載3DTiles模型并且重新設置3DTiles模型的高度

代碼&#xff1a; 使用的時候&#xff0c;直接調用 load3DTiles() 方法既可。 // 加載3Dtiles const load3DTiles async () > {let tiles_url "/3DTiles2/Production_1.json";let tileset await Cesium.Cesium3DTileset.fromUrl(tiles_url, {enableCollision: …

Matlab批量轉換1km降水數據為tiff格式

1km降水數據處理- 制作數據裁剪掩膜 0 引言1 示例程序2 結語0 引言 本篇介紹用Matlab工具將中國1km分辨率逐月降水量數據集(1901-2024)批量轉為tiff格式的過程。下面為具體內容: 1 示例程序 下載得到的nc數據(如pre_2001.nc)包含4個字段,其中降水數據的第1個維度為1-12,…

HandyJSON使用詳情

注意事項:Model 需要實現 HandyJSON 協議&#xff0c;對于簡單情況&#xff0c;只需聲明 class/struct 并添加 HandyJSON 協議即可1.簡單 JSON 結構JSON 數據:{"name": "John","age": 30,"isStudent": false }Model 類:struct Person:…

comfyUI-IPApterfaceID人臉特征提取

1.基礎節點 以Checkpoint、CLIP、空Latent、K采樣器、VAE解碼、預覽圖像為基礎節點。 2.人臉特征獲取節點 IPAdapter FaceID節點專用于將特定人臉特征&#xff08;通過參考圖提取&#xff09;融入生成圖像。 參考圖像&#xff0c;正面圖像是想要參考人物的人像&#xff0c;最…

【React Native】Switch、Alert、Dimensions、StatusBar、Image組件

其他常用組件 swich https://reactnative.dev/docs/next/switch alert Alert React Native 如果想增加里面的按鈕&#xff0c;就往這個數組里&#xff0c;按照這個格式不斷的加東西就行了。但是&#xff1a; 在iOS上&#xff0c;里面多少個都有問題&#xff0c;3 個以上它…

滲透筆記1-4

一、HTTPS安全機制 1. HTTP的安全風險 竊聽風險&#xff1a;明文傳輸導致通信內容可被直接截獲&#xff08;如Wireshark抓包獲取密碼&#xff09;。篡改風險&#xff1a;中間人可修改傳輸內容&#xff08;如注入惡意腳本&#xff09;。冒充風險&#xff1a;攻擊者偽造服務端身份…

《星盤接口6:星際聯盟》

《星盤接口6&#xff1a;星際聯盟》? 第一章&#xff1a;新的黎明地球歷2097年&#xff0c;陳欣和她的團隊成功地將“數據之神”封印在一個獨立的數據維度中&#xff0c;暫時解除了對銀河系的威脅。然而&#xff0c;這場勝利并沒有帶來長久的和平。隨著人類文明不斷擴展至更遙…

【安卓筆記】進程和線程的基礎知識

0. 環境&#xff1a; 電腦&#xff1a;Windows10 Android Studio: 2024.3.2 編程語言: Java Gradle version&#xff1a;8.11.1 Compile Sdk Version&#xff1a;35 Java 版本&#xff1a;Java11 1. 先熟悉JVM虛擬機的線程 ----------以下都是系統線程&#xff0c;由JV…

26-計組-多處理器

多處理器的基本概念1. 計算機體系結構分類依據&#xff1a;根據指令流和數據流的數量關系&#xff0c;計算機體系結構可分為四種類型&#xff1a;SISD、SIMD、MISD、MIMD。&#xff08;1&#xff09;SISD 單指令流單數據流定義&#xff1a;任意時刻計算機只能執行單一指令操作單…

vscode 插件開發activityba

在 VS Code 插件開發中&#xff0c;**Activity Bar&#xff08;活動欄&#xff09;**是左側垂直導航欄的核心組成部分&#xff0c;它為用戶提供了快速訪問插件功能的入口。通過自定義 Activity Bar&#xff0c;開發者可以顯著提升插件的可見性和用戶體驗。以下是關于 Activity …

【橘子分布式】Thrift RPC(理論篇)

一、簡介 首先還是那句話&#xff0c;概念網上已經很多了&#xff0c;我們就不多逼逼了。我來大致介紹一下。 Thrift是一個RPC框架可以進行異構系統(服務的提供者 和 服務的調用者 不同編程語言開發系統)的RPC調用為什么在當前的系統開發中&#xff0c;會存在著異構系統的RPC…

項目進度依賴紙面計劃,如何提升計劃動態調整能力

項目進度依賴紙面計劃會導致實際執行中的調整能力不足。提升計劃動態調整能力的方法包括&#xff1a;建立動態進度管理系統、強化團隊溝通與協作、定期開展風險評估與進度復盤。特別是建立動態進度管理系統&#xff0c;通過信息技術工具實現實時跟蹤和反饋&#xff0c;使計劃能…

遞推預處理floor(log_2{n})

在C中&#xff0c;除了使用<cmath>中的log或log2函數求對數&#xff0c;也可以通過遞推求出所有可能用到的?log?2i?,i∈[1,n]\lfloor \log_2i\rfloor, i\in[1, n]?log2?i?,i∈[1,n] 證明&#xff1a;?log?2i??log?2?i2??1\lfloor \log_2i \rfloor\lfloor \…

【AI智能體】智能音視頻-搭建可視化智能體

可視化智能體是語音小伴侶智能體的升級版&#xff0c;支持語音與視頻的雙模態交互。本文詳細介紹了音視頻交互的實現原理、智能體搭建方法及效果測試&#xff0c;幫助開發者快速構建支持音視頻交互的智能體。 應用場景 可視化智能體適用于多種場景&#xff0c;舉例如下&#…