做嵌入式、物联网、网络通信开发时,很多时间并不是花在“写业务代码”上,而是花在这些琐碎但关键的事情上:
- 串口指令要反复发,数据格式要在 ASCII、HEX、DEC 之间来回切换;
- TCP、UDP、WebSocket、MQTT 都要测,工具一开就是一排;
- 日志太多,关键状态、错误码、设备 ID 淹没在滚动输出里;
- 某个项目需要专用协议解析、状态看板、自动测试面板,通用工具又不够贴合;
- 调试完还要算 CRC、转 LCD 图片、转 LVGL 资源、看波形、整理文档。
所以我做了 AIotComm。
它不是单纯的串口助手,而是一个面向嵌入式、物联网和网络通信开发者的 智能通信调试工作台:把串口调试、网络协议调试、日志分析、脚本扩展、工程小工具和 AI-Bot 能力集中在一个 Windows 桌面程序里。

一句话介绍
AIotComm = 串口调试 + 网络调试 + 日志过滤 + 自定义协议页面 + 工程工具箱 + AI 辅助。
如果你经常做 MCU、传感器、Wi-Fi/BLE 模组、网关、IoT 云平台、产测工具、售后排障或协议联调,它会比传统串口助手更贴近真实开发流程。
1. 串口调试:基础功能要稳,还要顺手
AIotComm 支持常见串口调试能力,包括串口枚举、打开/关闭、自动重连、波特率配置、数据位、停止位、校验位、RTS、DTR 等。
日常调试里常用的功能也都放在手边:
- 文本发送、HEX 发送;
- 定时发送;
- 多条发送;
- 多条发送循环;
- RX/TX 数据量统计;
- ASCII / HEX / DEC 显示切换;
- 时间戳、自动滚动、暂停显示、清空、保存日志。

发送数据时,AIotComm 还支持自动追加校验,内置 ADD8、ADD16、0-ADD8、CRC-8、CRC-16/CCITT、CRC-16/MODBUS、CRC-32 等常见算法,并支持校验范围和大小端设置。
这对调试 MCU 私有协议非常实用:不用每次手算校验,也不用把帧拼接逻辑放到另一个临时脚本里。
2. 网络调试:串口之外,IoT 常用协议也能测
物联网开发很少只有串口。设备上云、局域网通信、网关转发、App 联调、服务器接口验证,经常会同时涉及多种网络协议。
AIotComm 内置了常见通信模式:
- TCP Client / TCP Server;
- WebSocket Client / WebSocket Server;
- MQTT Client / MQTT Server;
- UDP;
- 工具页中的 HTTP 文件服务器。


例如在局域网内临时传文件、共享测试资源时,可以直接使用内置 HTTP Server 访问 workspace 目录,不必再单独开一个文件服务。
3. 日志过滤与高亮:让关键数据自己跳出来
很多调试工具最大的问题不是“没有日志”,而是“日志太多”。
AIotComm 提供了比较完整的日志过滤与高亮能力。你可以在日志区直接 Ctrl + F 搜索,也可以配置多条过滤规则,并给不同关键字设置独立颜色。
支持的过滤方式包括:
- contains;
- startsWith;
- endsWith;
- regex。
也可以打开 Only 模式,只显示命中过滤条件的数据。这样在复杂串口流、网络包、状态上报里,错误码、设备 ID、关键字段会明显很多。


更进一步,过滤命中的数据还可以交给当前自定义脚本继续处理。也就是说,日志不只是“看”,还可以变成协议解析、状态刷新、自动控制的输入。
4. UI Display:把串口文本变成设备状态页面
传统串口助手通常停留在“收发文本”。但很多项目真正想看的不是一串 HEX,而是设备当前状态:
- 传感器值是多少;
- 设备模式是否切换成功;
- 电机状态有没有变化;
- 云端属性是否同步;
- 当前协议帧是否符合预期。
AIotComm 提供了 Raw Data 和 UI Display 双视图。Raw Data 适合看原始日志,UI Display 适合加载自定义脚本,把数据解析成更直观的界面。
扩展脚本主要放在两个目录:
web/custom/custom_*.js:适合设备协议解析、状态看板、设备控制页面;web/tools/tools_*.js:适合通用工程工具。
开发一个项目专用页面时,通常只需要新增一个 JS 文件,不必改主程序框架。这一点对快速适配不同设备、不同客户项目非常友好。
5. 内置工程工具:把常用小工具收进同一个工作台
AIotComm 不只做通信调试,也内置了一些嵌入式开发中常见的工程工具。
LVGL 图片和字体转换
内置离线版 LVGL 图片转换器与字体转换器,适合做屏幕 UI、HMI、仪表盘、小屏设备时处理资源。


文件校验工具
支持 MD5、SHA-256、CRC32、ADD-32 等校验。文件直接拖进去即可计算,适合固件包、资源包、升级文件校验。

JS 程序员计算器
内置 JS 计算器,可以做四则运算、常用函数、移位、对数、三角函数等。
比如输入:
a = 355
b = 113
a / b
就能得到接近 3.141592... 的结果。它对十进制、十六进制也很友好,例如 0x182 >> 2 可以直接算出结果。

串口波形显示
内置串口示波器示例。切到 Data Debug,勾选 FILTER -> EveryLine,发送类似 AA BB xx xx sum 的数据帧,就可以把数据画成波形,还能做偏移、增益等调整。


6. 自定义脚本:让调试工具跟着项目长出来
AIotComm 的核心价值之一,是它允许你把项目经验沉淀成脚本。
比如在 custom/aliyun_iot_client 示例中,已经展示了阿里云生活物联网 MQTT 调试工具。根据产品后台的 JSON 属性做一些修改,就可以快速变成项目专用调试面板。


你也可以参考 custom_demo_test.js 开发更多玩法:协议解析器、自动化测试面板、数据转换工具、设备控制界面,甚至可以做一个串口控制的小游戏。


这听起来有点“玩”,但背后的意义很实在:只要串口或网络协议能传数据,AIotComm 就能把它变成可交互的 UI。
7. 设备仿真:不只看设备,也可以模拟设备
当 FILTER -> EveryLine 打开后,自定义脚本可以逐行接收数据并处理。这样不仅能做协议解析,也能做设备仿真。
例如在没有真实屏幕、真实外设或完整硬件环境时,可以先用脚本模拟设备响应、TFT 显示、MCU 协议行为,提前验证上位机或下位机逻辑。

8. AI-Bot:把 AI 接进调试流程
AIotComm 里还有一个比较有想象空间的能力:AI-Bot。
它不仅可以聊天,还可以辅助读写文档、读取 PDF、整理总结、生成 PPT,并支持通过 QQ、微信等方式远程控制。




AIotComm 还开放了 AI 逻辑接口,例如 custom/ai_logic。这意味着你可以把 AI 的反馈与串口设备、网络通信、自定义脚本串起来,设计更自动化的调试流程。
举个例子:
- AI 读取设备日志;
- 分析异常原因;
- 自动生成下一条测试指令;
- 通过串口或网络发送;
- 再根据返回结果继续判断。
这让 AI 不只是“帮你解释日志”,而是有机会进入真实调试闭环。

9. 技术实现:桌面壳稳定,Web 层灵活
AIotComm 当前采用 VS2022 + MFC + WebView2 的结构:
- MFC 宿主负责窗口、本地文件、日志落盘、系统菜单、WebView2 初始化;
- WebView2 承载前端界面;
web/目录负责主要交互、串口/网络调试界面、日志展示、主题、脚本加载;custom_*.js与tools_*.js负责扩展协议页面和工程工具。
这种结构的好处是:桌面程序交付稳定,本地能力够用;而界面、工具页和协议页面又可以像 Web 项目一样快速迭代。
对开发者来说,扩展边界也比较清晰:
- 串口主流程、窗口行为、本地文件桥接:放在 C++ 宿主层;
- 页面交互、显示逻辑、工具页面:放在
web/; - 设备协议专用页面:放在
web/custom/; - 通用工程工具:放在
web/tools/。
10. 适合哪些场景?
AIotComm 比较适合这些工作:
- MCU / UART 串口调试;
- 物联网设备协议联调;
- TCP、UDP、WebSocket、MQTT 网络通信测试;
- 产测、售后、现场排障;
- 串口数据实时波形观察;
- 设备状态看板开发;
- 阿里云 IoT 等平台属性调试;
- 本地校验、图片转换、LVGL 资源转换;
- AI 辅助日志分析与自动化调试。
结语
AIotComm 最初可以被看作一个串口调试工具,但它真正想解决的是更大的问题:让物联网开发中的通信调试、数据观察、协议解析、工程工具和 AI 辅助尽量收敛到一个可扩展的工作台里。
当项目变复杂时,通用工具往往不够用;但每个项目都重新做一套上位机,又太重。
AIotComm 想走的是中间路线:保留通用调试工具的即开即用,同时允许你用脚本把它改造成项目专用工具。
后续功能还会持续更新,欢迎加入交流,一起讨论更多用法。


166

被折叠的 条评论
为什么被折叠?



