找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1567

积分

0

好友

203

主题
发表于 2026-2-11 14:43:15 | 查看: 36| 回复: 0

先说重点!

实用性看,几乎为零。ESP32 作为一款 MCU,其性能上限决定了它不可能达到真正 NAS 的水平。但是,从功能实现上看,一个 NAS 该有的基础功能,它基本都具备了。

而从可玩性看,这个项目意义重大。因为这是我第一个 “零代码” ,完全依赖 AI 实现的、具备一定复杂度的完整工程,包含了固件和完整的 Web 界面。

过去我也使用 AI,但大多局限于代码自动补齐、续写,或是让它完成某个独立的功能片段。通常,我会预先搭建好相对完善的工程架构,再让 AI 在这个框架内进行填充。但这次截然不同:我没有写一行代码。仅仅是使用 VS Code 配合 ESP-IDF 插件,新建了一个最基础的工程框架,然后将需求描述清楚,完全交给 AI 去实现。我的角色转变为:需求提出者、开发节奏把控者、测试反馈员

最终,我们得到了这个作品:

ESP32-NAS 系统设置与存储信息界面

ESP32-NAS 文件管理界面

项目缘起:从吃灰的开发板到突发奇想

事情的经过很偶然。年前整理我那“硬件工程师风格”的工作台时,翻出了一块几年前自制的 ESP32 学习板。

ESP32-S 开发板实物图

看着板子背面那个显眼的 SD 卡槽,再联想到家里正在服役的 NAS,一个想法冒了出来:能不能用 ESP32 搭配 SD 卡,实现一个极度简化的、玩具级的 NAS 功能呢?

动手之前,我先咨询了“专业人士”——KIMI AI。

与KIMI AI讨论ESP32轻量级NAS可行性的对话截图

AI 的评估非常中肯:技术可行,但性能别抱太高期望。它更像一个“无线 SD 卡读卡器”或“轻量级物联网存储节点”。这个评价反而激起了我的好奇心——它到底能做成什么样?性能的边界又在哪?

于是,实验开始!

全 AI 驱动的开发六步法

这次开发,我尝试并总结了一套清晰的、可复现的“AI 辅助开发流程”。

第一步:搭建最简验证环境

首先,在 VS Code 中利用 ESP-IDF 插件,创建一个基于 ESP32 的 SDMMC 示例工程。这一步的目的是确保硬件接口(SD卡槽)驱动正常,建立一个绝对干净、可运行的起点。

在ESP-IDF中创建SDMMC示例工程

编译并下载到 ESP32 板子,确认基础功能正常后,舞台就正式交给了 AI。

第二步:与 AI 协作进行需求分析

直接将模糊的想法丢给 AI 写代码是低效的。我首先向 KIMI 详细描述了“ESP32 无线读卡器(WiFi-NAS)”的想法,并与它进行了多轮讨论,明确核心功能、技术边界和潜在难点。最终,AI 生成了一份结构清晰的需求分析文档。

AI生成的ESP32无线读卡器需求分析文档

这份文档成了后续所有工作的“宪法”,避免了开发过程中的需求蔓延。

第三步:生成技术架构设计文档

需求明确后,切忌立刻开始编码!我让 AI 根据需求文档,输出一份技术架构设计文档。这份文档会清晰地勾勒出系统的组成部分、模块职责与交互关系。对于嵌入式项目,清晰的架构能有效预防后期代码混乱。

AI生成的项目技术架构与目录结构设计

这个过程本身就是一次极好的开源实战思维训练,让你在动手前就对项目全局有把控。

第四步:精细化任务拆分

有了架构图,是不是可以把整个项目一次性丢给 AI 完成?绝对不要! 这样大概率会得到一个无法编译或漏洞百出的“残次品”。

正确的做法是:让 AI 将项目拆解成多个独立、可验证的细分子任务。我要求 AI 按照模块优先级(如先硬件驱动,后网络服务)进行拆分,并生成任务列表。

AI生成的项目任务拆分文档,包含多个阶段和具体任务

最终,项目被分解为近 20 个 Task。我的工作流变为:AI 完成一个 Task -> 我编译测试 -> 反馈结果 -> AI 进行下一个 Task。这种“小步快跑,持续验证”的方式极大地降低了调试复杂度。

第五步:AI 编码与我的测试

进入执行阶段。这里有个工具选择的心得:我没有使用 Web 版 IDE 内置的 AI,而是充值使用了 Kimi Code 的 CLI(命令行)版本。这种方式响应更直接,交互效率更高,非常适合这种需要频繁粘贴编译错误信息的场景。

Kimi Code CLI 命令行交互界面,正在诊断HTTP 431错误

这个阶段相对“枯燥”,AI 负责编写代码,我则负责循环“编译-下载-测试-反馈”。但正是这个循环,构成了人机协作的核心。

第六步:精准的反馈艺术

这一步嵌入在第五步中,但至关重要。当 AI 的代码出现编译错误或运行异常时,如何反馈决定了解决问题的速度。

切忌只说:“有错,改一下。” AI 不是巫师。正确的做法是:将完整的错误信息(编译器输出或串口日志)直接粘贴给它

例如,遇到上传文件时 ESP32 重启,我就把完整的串口 panic 信息丢给 AI:

Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x40185278 PS : 0x000060430 A0 : 0x800de66e A1 : 0x3ffd5a70
...

ESP32运行时发生Guru Meditation Error的串口日志

或者遇到编译错误,直接截图或粘贴错误行:

error: ‘safe_filename’ undeclared (first use in this function)

C语言编译错误信息截图,提示变量未声明

提供精确的上下文,AI(特别是 K2.5 这类代码能力较强的模型)通常能快速定位问题根源并提出修改方案。

成果、反思与开发体验变革

前后大约三天时间,一个完成度很高的项目便诞生了。如果完全由我自己编码,可能至少需要数周。AI 在项目收尾时,甚至主动生成了一份“代码审查报告”,对性能和稳定性进行了自评估,这令人印象深刻。

AI生成的代码审查报告,评估稳定性与性能

当然,过程并非一帆风顺。即便强如 K2.5,在嵌入式这类对精确度要求极高的领域,仍会频繁出现“马虎”的错误。例如,修改了函数实现却忘了更新头文件声明,导致编译失败;或者某些运行时错误需要反复调试两三轮才能解决。有那么几个瞬间,复杂的 Bug 让我几乎想放弃,但 AI 又能通过分析日志将其修复。

这次尝试给我的最大冲击是:我未来的开发方式,恐怕真的要改变了。AI 不仅是一个编码助手,更能承担架构师、开发工程师甚至测试员的角色。而我,需要更专注于需求定义、系统拆解和最终的质量把关。这种从“劳动者”到“管理者+架构师”的思维转变,或许是这次开发者广场式探索带来的最大收获。

总而言之,这是一次充满新奇感、经历坎坷但回报巨大的实践。它验证了 AI 在具体硬件项目上实现从零到一的能力。如果你也对嵌入式开发或 AI 辅助编程感兴趣,非常建议你找一个类似的小项目亲自尝试一下,这种体验远胜于阅读十篇教程。在云栈社区,我们相信,动手实验是探索技术边界的最佳方式。




上一篇:Jump Trading投资预测市场:量化巨头如何布局事件驱动交易新赛道
下一篇:探索三个经典无理数:π、e与φ的数学性质与几何意义
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 11:43 , Processed in 0.908283 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表