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;举例如下&#…