会员登录 立即注册

搜索

用ESP32-S3 做“无线串口桥

[复制链接]
崎山小鹿 发表于 3 小时前 | 显示全部楼层 |阅读模式
崎山小鹿
3 小时前 9 2 看全部
ESP32 负责:

接收  串口数据
通过 WiFi 或蓝牙发送给电脑
接收电脑回复
再转发回 串口

WiFi TCP 透明串口

原因:
速度高
稳定
延迟低
Windows/Linux/macOS 都容易写上位机
可以远距离
不依赖蓝牙驱动
ESP32-S3 WiFi 非常成熟

源芯片
    UART
      ↓
ESP32-S3
  WiFi TCP Server
      ↓
电脑客户端

电脑只需要连接 TCP 即可


ESP32-S3 Arduino 固件
适用于:
ESP32-S3-N16R8
Arduino IDE
UART 双向透明转发
WiFi STA 模式
TCP Server


接线
ESP32-S3:
源芯片        ESP32-S3
TX        GPIO18(RX)
RX        GPIO17(TX)
GND        GND

注意:
必须共地
F321 如果是 5V TTL,需要电平转换
ESP32 是 3.3V


Arduino 代码
#include <WiFi.h>

/*========================
  WiFi 配置
========================*/
const char* ssid     = "你的WiFi名称";
const char* password = "你的WiFi密码";

/*========================
  TCP Server
========================*/
WiFiServer server(8899);
WiFiClient client;

/*========================
  UART 配置
========================*/
HardwareSerial SerialUART(1);

/*
ESP32-S3 UART1 引脚
RX = GPIO18
TX = GPIO17
*/
#define UART_RX 18
#define UART_TX 17

/*========================
  初始化
========================*/
void setup()
{
    Serial.begin(115200);

    /* UART 初始化 */
    SerialUART.begin(
        115200,
        SERIAL_8N1,
        UART_RX,
        UART_TX
    );

    /* WiFi 连接 */
    WiFi.mode(WIFI_STA);

    WiFi.begin(ssid, password);

    Serial.println();
    Serial.println("Connecting WiFi...");

    while (WiFi.status() != WL_CONNECTED)
    {
        delay(500);
        Serial.print(".");
    }

    Serial.println();
    Serial.println("WiFi Connected");

    Serial.print("IP: ");
    Serial.println(WiFi.localIP());

    /* 启动 TCP Server */
    server.begin();

    Serial.println("TCP Server Started");
}

/*========================
  主循环
========================*/
void loop()
{
    /* 检查客户端连接 */
    if (!client || !client.connected())
    {
        client = server.available();

        if (client)
        {
            Serial.println("PC Connected");
        }
    }

    /*------------------------------------------------
      UART -> TCP
      源芯片 发给电脑
    ------------------------------------------------*/
    while (SerialUART.available())
    {
        uint8_t c = SerialUART.read();

        if (client && client.connected())
        {
            client.write(c);
        }
    }

    /*------------------------------------------------
      TCP -> UART
      电脑发给 源芯片
    ------------------------------------------------*/
    while (client && client.connected() && client.available())
    {
        uint8_t c = client.read();

        SerialUART.write(c);
    }
}

Arduino IDE 配置

开发板:ESP32S3 Dev Module
建议参数:

参数        值
USB CDC On Boot        Enabled
Flash Mode        QIO
Flash Size        16MB
PSRAM        OPI PSRAM
Upload Speed        921600

ESP32 启动后会打印
IP: 192.168.1.88

电脑连接:

192.168.1.88:8899

即可。

Windows 测试方法

推荐:

TCP Socket Tool
网络调试助手
Hercules
NetAssist

也可以:

telnet 192.168.1.88 8899
数据流
F321 UART TX
    ↓
ESP32 UART RX
    ↓
TCP发送
    ↓
PC

PC回复
    ↓
TCP接收
    ↓
ESP32 UART TX
    ↓
F321 UART RX
延迟

通常:

WiFi 局域网
延迟 2~10ms

已经足够实时。


后续可升级功能

你后面还可以继续扩展:

1. 自动重连

WiFi 断开自动恢复。

2. 多客户端

允许多个电脑同时查看数据。

3. UDP模式

更低延迟。

4. WebSocket

浏览器直接查看数据。

5. BLE 串口

手机 APP 连接。

6. 数据缓存队列

避免高速 UART 丢包。
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 2 小时前 | 显示全部楼层
崎山小鹿
2 小时前 看全部
Tools 设置:
选项        推荐
Board        ESP32S3 Dev Module
USB CDC On Boot        Enabled
Flash Size        16MB
PSRAM        OPI PSRAM
Upload Speed        921600


其中USB CDC On Boot:Enabled(开启)
ESP32 会把 USB 当成“串口”使用
电脑会识别出一个 COM 口
Serial.print() 输出会直接走 USB
不需要额外 USB转TTL 芯片(很多 S3 开发板直接靠原生 USB)

Disabled(关闭)
USB 不作为串口
Serial 可能没有输出
需要使用 UART TX/RX + CH340/CP2102 等串口芯片通信
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

 楼主| 崎山小鹿 发表于 1 小时前 | 显示全部楼层
崎山小鹿
1 小时前 看全部
ESP32 开发板上的两个 Type-C 分别是什么接口

很多 ESP32-S3 开发板有:

一个:
USB
Native USB
USB-OTG
原生 USB 接口
另一个:
UART
Download
CH340 / CP2102 转串口接口

这两个 Type-C 的电路其实完全不同。

PC 是 USB Host(主机)
你的板子是 USB Device(设备)

只有:

Host  <->  Device

才能正常通信,ESP32 开发板通常也是 USB Device
天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

管理员给TA私信
以墨运商,以商助墨。

查看:9 | 回复:2

  • 电子电路仿真网站

    https://velxio.dev/ Arduino、ESP32 和 Raspberry Pi。 直接在您的浏览器中即可使

    阅读:17|2026-05-19
  • ESP32 板子为什么识别为 CP2102

    你的ESP32开发板被电脑识别为“CP2102”,这并不是一个错误,而是完全正常的现象。这

    阅读:296|2026-05-09
  • 固件如何加密

    做固件加密,本质上是防止别人读取或复制你的程序。常见做法分为“芯片级保护 + 软件

    阅读:805|2026-04-06
  • 高端神经反馈脑波检测系统

    高端神经反馈脑波检测系统分为脑波检测、脑波分析、脑波解码三个部分。 前端主程序

    阅读:14|2026-01-06
  • 国内第三方量化平台有哪些有什么特点

    好的,我们来详细了解一下国内主流的第三方量化平台。这些平台极大地降低了个人投资者

    阅读:2778|2025-12-09
  • 为什么脑波要去除伪迹

    1. 伪迹不是大脑信号 EEG设备记录的是头皮上非常微弱的电位变化(微伏级别,μV)。

    阅读:15|2025-12-05
  • 便携可视化语音AI耳机

    项目起源: 初先生的聊天记录: 你那边掌握的技术,有办法做一个有摄像头的,墨者机

    阅读:1326|2025-12-01
  • 脑波峰值频率

    看看1-30Hz脑波功率曲线 发现15Hz之后的波动很小。 去掉15Hz之后的曲线 发现4Hz

    阅读:105|2025-11-28
  • 什么是基础节律

    🧠 一、什么是“基础节律”(Basic Rhythm) 基础节律 = 在闭眼静息状态下,大脑自发

    阅读:120|2025-11-27
  • 情绪指数EQ是什么?

    情绪指数 EQ 在脑波科学(特别是情绪解码、神经反馈、BCI 领域)中,通常不是单个固定

    阅读:233|2025-11-22
金双石科技,软件开发20年,技术行业领先,您的满意,就是我们的目标,认真负责,开拓进取,让成品物超所值
关于我们
公司简介
发展历程
联系我们
本站站务
友情链接
新手指南
内容审核
商家合作
广告合作
商家入驻
新闻合作

手机APP

官方微博

官方微信

联系电话:15876572365 地址:深圳市宝安区西乡街道宝民二路宝民花园 ( 粤ICP备2021100124号-1 ) 邮箱:qishanxiaolu@qq.com
QQ|Powered by Discuz! X3.5 © 2001-2026 Discuz! Team.
快速回复 返回顶部 返回列表