欢迎光临
我们一直在努力

web-serial-monitor —— 免安装的浏览器端串口 / 蓝牙 / WebSocket 调试平台

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

项目地址:https://github.com/createskyblue/web-serial-monitor 在线使用:https://createskyblue.github.io/web-serial-monitor 技术栈:React 19 + TypeScript 5.8 + Vite 6

目录

  • 一、项目背景与定位
  • 二、核心功能
    • 2.1 三种通信模式
    • 2.2 关键词染色与数据提取
    • 2.3 专业调试能力
    • 2.4 快捷键体系
  • 三、使用方式
    • 3.1 本地构建与运行
    • 3.2 在线直接使用
    • 3.3 串口模式快速上手
    • 3.4 部署说明补充
  • 四、适用场景与局限性
    • 4.1 适用场景
    • 4.2 局限性
  • 五、总结

一、项目背景与定位

嵌入式与硬件调试离不开串口、蓝牙、网络这几类工具,但它们通常是各自独立的桌面软件——不同系统要装不同版本,数据格式也对不齐,很难在一个会话里同时覆盖本地串口、BLE 设备和远端服务。

web-serial-monitor 把 Web Serial API(串口)、Web Bluetooth API(BLE)、WebSocket(网络透传) 这三项浏览器原生能力统一到同一个界面里,免驱动、免客户端。打开浏览器就能用:实时收发、关键词染色、数据提取,纯静态前端,在线或本地部署均可,无后端依赖。

二、核心功能

2.1 三种通信模式

模式底层 API典型用途
串口 Web Serial API 本地 MCU、模组、工控设备的串口调试
WebSocket WebSocket 网络透传、远程串口代理
蓝牙 BLE Web Bluetooth API 低功耗蓝牙设备的 TX/RX 特征读写

三种模式共享同一套收发、显示、染色与提取逻辑,用户可在界面中切换而无需更换工具。

2.2 关键词染色与数据提取

该功能以"规则"为单元,每条规则通过"起始"与"结束"两个字段定义匹配逻辑:

  • 区间模式:同时填写"起始"与"结束",工具高亮两者之间的区间,并提取区间内的内容。
  • 关键词模式:仅填写"起始",工具高亮该关键词,并记录其出现时间。

匹配支持 Text 与 HEX 双模式,可分别针对文本协议与二进制帧进行定位。提取结果采用自动锁存机制,独立于实时滚动的日志缓冲,即使后续涌入大量新数据,已提取的结果也不会被覆盖或丢失。

2.3 专业调试能力

  • 多形态显示:支持纯文本、纯 HEX、同窗(文本与 HEX 左右对照)三种视图,Tab 键切换。
  • 三折叠布局:左侧栏、右侧栏、发送区均可独立折叠,应用可收缩为极小窗口,便于在有限屏幕空间内与其他工具并排使用。
  • 流控支持:提供 DTR / RTS 手动控制,且可在连接前预置初始电平状态,满足对硬件握手信号有要求的设备。
  • 智能自动滚动:仅在视图处于底部时跟随新数据滚动;用户上翻查看历史时不会被新数据强制拉回底部。
  • 大数据量优化:历史日志按块管理,默认仅渲染最近窗口,上滚时按需加载更早历史、回到底部后自动卸载,使内存与 DOM 节点数量保持有界。
  • 收发能力:支持定时发送、文件发送(RAW 与 YModem 两种协议),以及可配置的快捷发送列表。文件发送过程中支持中途取消(基于 AbortController 中断)。
  • 日志管理:提供缓冲区保护、TXT/BIN 导出、一键复制、配置导入导出与清屏等操作。

2.4 快捷键体系

快捷键功能
Tab 切换显示模式(文本 / HEX / 同窗)
p 连接 / 断开
c 清屏
Ctrl+Enter / Cmd+Enter 发送
[ / ] 折叠 / 展开左右侧栏
' 折叠 / 展开发送区

三、使用方式

3.1 本地构建与运行

npm install
npm run dev # 本地开发
npm run build # 生产构建,产物输出至 dist/

dist/ 下的静态文件可直接托管或本地部署。

3.2 在线直接使用

访问 https://createskyblue.github.io/web-serial-monitor 即可在支持的浏览器中直接使用,无需安装。

3.3 串口模式快速上手(以 CH9114 15Mbps 4串口为例)

  • 用 Chrome / Edge 打开应用,串口模式下点击连接并授权目标串口(如 CH9114)。
  • 设置波特率(示例 15Mbps)、数据位、停止位、校验位及 DTR / RTS 初始状态。
  • 发送区输入内容,Ctrl+Enter 发送;或用快捷发送、定时发送、文件发送。
  • 在染色规则中配置"起始 / 结束",实时观察高亮与提取结果。
  • 在这里插入图片描述

    3.4 部署说明补充

    串口与蓝牙仅可在 HTTPS 或 localhost 下使用;WebSocket 模式若要连接非加密 ws:// 本地 / 局域网服务,须将工具部署在 localhost。

    四、适用场景与局限性

    4.1 适用场景

    • 嵌入式 / 物联网固件调试(对接 MCU、模组串口,看日志与协议帧)
    • 硬件原型验证(研发早期快速验证通信,免搭专用桌面环境)
    • 现场 / 临时排障(浏览器即用,无需安装权限)
    • 远程串口透传(本地 WebSocket 代理桥接远端串口)
    • BLE 设备调试(低功耗蓝牙特征读写与交互验证)

    4.2 局限性

    • 安全限制:串口 / 蓝牙仅 HTTPS 或 localhost 可用。
    • WebSocket:HTTPS 页只能连 wss://,连 ws:// 须本地部署。
    • 兼容性:主要依赖 Chromium(Chrome / Edge),Firefox / Safari 对 Web Serial 支持缺失或不完整。
    • 性能边界:极高吞吐下受 JavaScript 单线程制约。
    • 协议深度:仅通用收发 / 染色 / 提取,无行业协议深度解析。

    五、总结

    web-serial-monitor 通过统一封装 Web Serial、Web Bluetooth 与 WebSocket 三类通信能力,提供了一个免安装、跨平台、可直接在浏览器中运行的通信调试平台。其在关键词染色与数据提取、大数据量下的有界内存渲染、配置持久化与串口参数热更新等方面的工程实现,使其能够满足嵌入式与硬件调试中的实际诉求。

    该项目的价值在于以极低的部署与使用时延,覆盖串口、蓝牙与网络三类调试场景,适合作为研发与现场排障的常备工具。读者可直接访问仓库源码进行二次开发,或通过在线地址立即体验。

    相关链接

    • 仓库:https://github.com/createskyblue/web-serial-monitor
    • 在线版本:https://createskyblue.github.io/web-serial-monitor
    赞(0)
    未经允许不得转载:171主机测评 » web-serial-monitor —— 免安装的浏览器端串口 / 蓝牙 / WebSocket 调试平台
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址