本帖最后由 韶华倾负 于 2026-8-28 15:29 编辑
一、这篇帖子和前几篇什么关系
前几篇我主要写的是:
- 拿到 瑞萨无线模块评测资料包 后,怎么接线、怎么认引脚、怎么发第一条 AT
- Wi-Fi 模块 AT+ 能列出一大串命令,但 BLE 那边一度完全没反应
- 用 AI 查资料、对原理图、排故障
这篇帖只是记录「我怎么用 AI 做工具」的过程,方便同样拿到板子的朋友少走弯路。
二、为什么要做这个 exe
资料包里其实是两套完全不同的东西:
用串口助手可以调,但有几个痛点: - Wi-Fi 指令太多,AT+WFJAP 参数记不住
- 扫描 Wi-Fi 返回几十行 +WFSCAN,手抄 SSID 容易错
- BLE 和 Wi-Fi 固件不同,选错型号就像「模块坏了」
- 透传数据不是 AT,和配置指令混在一起很难测
- 一些指令有前置条件(比如没连 Wi-Fi 就查 RSSI,必报 ERROR:-1)
所以我给 AI 的需求很明确: - 做一个单文件 exe,不依赖 Python 环境;先选 BLE / Wi-Fi,再选型号;左侧点按钮发 AT,右侧看日志;Wi-Fi 扫描要能点选网络、输密码自动连;界面尽量好看。
- 工程最终放在桌面:WirelessModuleAT,和日常工作区分开。
三、硬件调试阶段(8/27):AI 帮我把坑踩明白 在写软件之前,我和 AI 先折腾了一整天硬件,典型问题如下。 1. 两款模块搞混了 Wi-Fi 上电发 AT+,能刷出上百条命令——说明 DA16200 已经通了。 BLE 发 AT? 一直没应答,手机也扫不到广播。 AI 翻资料包后指出:BLE 是欣瑞利透传固件,不是 Wi-Fi 那套 AT;PMOD 外形一样,但固件可能是 CodeLess,测试命令也不同。
2. D1 常亮 ≠ TX/RX 接反 对照 PMOD 原理图 才知道:D1 接在 CONNECT 脚上,表示 BLE 是否连接,不是收发指示灯。
3. 「收发一样」其实是模块把命令原样吐回来 有一段时间日志里 TX AT? 和 RX AT? 一模一样。起初怀疑回显,后来确认:去掉 RX 或 TX 任一就不通了,说明链路是通的,只是当时模块/固件状态不对。
4. 无广播 + 无启动打印 → 优先查供电 转串口自环正常,但模块上电无打印、手机搜不到 BLE。AI 判断:射频和 UART 都没在跑,更像供电/跳线/固件问题,而不是波特率。
关键检查项: - J3 跳线是否用外部 VCC,而不是只靠纽扣电池
- LPR 不能悬空
- USB 转串口选 3.3V,TX/RX 交叉
5. 后来 BLE 终于通了 换线、确认供电和跳线后,透传模块在 115200 下 AT? 能回 AT,DEVICE_NAME:superflyBLE 也能看到——但程序里最初默认写成了 38400,这是后面软件还要改的原因之一。
四、让 AI 写 exe:从 v1.0 到 v1.7 的迭代 8/28 上午我正式下单给 AI:做 GUI + 打包 exe。之后不是「一次做完」,而是我测、截图、提需求,AI 改代码、重新 PyInstaller 打包。大概经历了这些版本:
几个我觉得「AI 真帮上忙」的细节 1. Wi-Fi 扫描不是等一整包返回 最早扫描弹窗经常空着,或者日志里有很多 +WFSCAN 但列表只有 1 条。AI 改成:边收边解析、弹窗实时刷新、收到 OK 且静默一段时间才结束。这个如果自己写 pyserial,很容易踩坑。
2. 错误码不要只显示红色一行 DA16200 的 ERROR:-1 官方含义是「未知命令」,不等于「没连 Wi-Fi」。AI 加了橙色 「解析」 行,并结合上一条发送的命令给建议——这是典型把手册知识写进工具的场景。
3. 指令守卫(Guard) 我截图说:点「信号强度」应该先查连接状态。AI 做了通用机制:点按钮 → 自动发前置 AT → 条件满足再发真正的命令。这个思路后面 Wi-Fi 多个功能都复用了。
4. BLE 透传和 AT 分离 透传测试时我发现:手机、电脑互发都收不到。AI 解释 AT+ADV=1 只是广播,不等于已连接;透传数据不能以 AT 开头。于是 v1.7 加了独立 透传发送框,和左侧 AT 配置分开。
5. 固件差异写进配置,而不是写死在界面 同样是 PMOD 外形,实际可能是 Superfly 透传固件。AI 在快速测试时会提示:你选的是 CodeLess,但收到的是透传响应,请改选「透传模块」——这种「根据回显纠偏」很实用。
五、最终工具长什么样
基本流程: - 打开 exe → 选 BLE 或 Wi-Fi
- 选型号(透传 / PMOD / DA16200)
- 选 COM、波特率 → 连接 → 快速测试
- 左侧点功能;右侧看 TX/RX 日志
Wi-Fi 侧亮点:
- 扫描 Wi-Fi → 列表点选 → 输密码 → 自动 AT+WFJAP
- 2.4G / 5G / 隐藏网 / 信号强度筛选
- 连上后查 IP、DNS、Ping 网关或 8.8.8.8
- MQTT 配置入口(进阶)
BLE 侧亮点:
- 欣瑞利手册里的 AT 基本全覆盖
- 广播开关、广播间隔、连接间隔、名称、波特率、发射功率:查询 / 设置
- 少选项用下拉,数值参数带范围(如广播间隔 20~10000 ms)
- 鼠标悬停看参数说明
- 底部 透传数据 输入框(非 AT)
工程目录(方便以后继续让 AI 改): - D:\6438\Desktop\WirelessModuleAT\
- ├── WirelessModuleAT.exe ← 日常使用
- ├── main.py
- ├── app\
- │ ├── config.py ← 型号、指令表
- │ ├── ble_superfly.py ← BLE 参数定义
- │ ├── dialogs.py ← Wi-Fi 扫描等弹窗
- │ ├── serial_manager.py
- │ └── error_codes.py
- └── build.bat
我也问过 AI:只有 exe 没有源码,以后改界面会不会麻烦? 结论是——功能一样,但保留源码目录,后续迭代会轻松很多。现在每次我提需求,AI 改 .py 再打包覆盖 exe 即可。
六、和 AI 协作的一点体会(给想抄作业的朋友) 1. 我最开始问的是「你能不能保证完成」 AI 很诚实:不能保证你板子一定亮,但在资料包 + 原理图 + 你反馈的现象/截图 足够时,排障路径和工具代码可以很快出来。真正卡住的是硬件:供电、跳线、固件是否烧对。
2. 有效提问方式 低效:「扫描不行,修一下。」 高效:贴截图 + 日志 + 「日志里有 20 条 WFSCAN,弹窗只有 1 条」。 我这一天发了大量截图,AI 才能精确定位是扫描结束条件太早、WFJAP 只等了 OK、还是 COM 没释放。
3. AI 适合做什么、不适合做什么 4. 「从整个系统出发」这句话很重要 我有几次只说「改 Wi-Fi」,AI 会只改 Wi-Fi;后来我明确说:错误解析、串口释放、日志颜色要全模块一致,后面版本就统一了。和带新人一样——要说清边界。
5. 关于「发新消息会不会打断 AI」 实测(Cursor 里):新消息会进入下一轮对话,正在跑的工具调用可能被打断,但上下文会保留。我当天的做法就是:一个问题验证完再发下一个,避免多个 bug 搅在一起。 这和使用codex桌面端不同,codex桌面端是可以选择引导对话的,可以作为附加条件。
七、目前还遗留的功能 - BLE 透传双向:工具侧已经能发,手机要能收到,仍需手机 App 先连接 superflyBLE,不是只扫到广播。
- DA16200 不支持 AT+WFRSSI:已用扫描匹配 RSSI 兜底,但不是实时值。
- 原理图按钮依赖本机资料包路径,换电脑要改配置。
- 还没做:十六进制透传、连接状态指示灯读取等——有需要可以继续让 AI 加。
八、小结 这篇帖想表达的是: 瑞萨这套无线模块评测,AT 调试本身不难,难在「两款模块、三套固件、一堆前置条件」。我没有从零手写 C#/Qt,而是把资料包丢给 AI,用自然语言描述「我想要什么样的调试体验」,一天之内迭代出一个能用的专用 exe。硬件问题(供电、跳线、固件选型)仍然要自己动手;AI 更像一个 24 小时在线、能读 PDF、能改 Python 的搭档。 如果你也在跟 评测帖 做 DA14531 / DA16200,建议路径是: - 先用串口助手确认「是哪款固件、波特率多少」
- 再考虑要不要做图形化工具
- 若用 AI 写工具,一定要保留源码 + 小步迭代 + 多截图反馈
我今天向 AI 提过的主要需求关键词(方便检索) - 引脚 / TX RX / LPR / CONNECT / D1
- 做 exe、单文件、不依赖环境、放桌面
- 日志按行、颜色、ERR 红色、OK 绿色
- Wi-Fi 扫描实时弹窗、刷新、2.4G/5G 筛选、隐藏网络置底
- 错误码解析、WFSTAT 前置检查、WFJAP 等 +WFJAP
- 卡片可点、异步连接、COM 自动释放
- Ping、原理图、波特率 115200、透传 vs PMOD
- BLE 全指令、参数下拉/输入、悬停提示、透传发送框
因为只能上传小于20M的附件,这已经超出大小了,后面将通过链接的方式分享出来,欢迎大家体验给出建议,也欢迎大家魔改。 |