|
20| 0
|
[K10项目分享] [行空板K10+ESP-Claw]让你的AI Agent学会使用DFRobot任意传感器 |

|
本帖最后由 loria 于 2026-6-12 16:39 编辑 行空板K10结合ESP-Claw 项目前言: 1.行空板K10适配ESP CLAW —从被动响应到主动智能(出处: DF创客社区 - 分享创造的喜悦) 2.[行空板 K10 + ESP-Claw]:打造主动响应的多模态本地AI桌面助手(出处: DF创客社区 - 分享创造的喜悦) 1.项目简介 通过前面的教程,我们已经学会了如何在 UNIHIKER K10(以及其他 ESP32 系列开发板)上部署 ESP-Claw,并打造一个能够感知环境、理解需求、主动执行任务的 AI Agent。无论是读取传感器数据、控制外设,还是根据环境变化自动做出响应,ESP-Claw 都让这些开发板从简单的硬件平台升级为能够与现实世界交互的智能伙伴。 随着接入的硬件越来越多,你可能会发现一个问题:为什么有些传感器接上后就能直接使用,而有些传感器即使接线完全正确,ESP-Claw 却不知道该如何操作?事实上,ESP-Claw 之所以能够理解并控制这些硬件,是因为它提前掌握了对应模块的 Skill(技能)。Skill 就像 AI Agent 学习硬件知识的教材,它告诉 ESP-Claw:这个传感器应该如何初始化、如何读取或控制硬件,以及如何将这些能力以自然语言的方式提供给 Agent 使用。只有拥有了对应的 Skill,ESP-Claw 才真正“学会”了使用这个硬件。 本文将以 UNIHIKER K10(ESP32-S3)为例进行说明,分享如何借助 espclaw-skill-writer 工具,为任意 DFRobot 传感器快速创建属于自己的 Skill。文中介绍的 Skill 开发流程,同样适用于其他支持 ESP-Claw 的 ESP32 系列开发板。通过本教程,你将不再局限于使用 ESP-Claw 已经支持的传感器模块,而是能够让自己的 ESP-Claw Agent 学会使用更多硬件设备,打造更加个性化、更具扩展能力的 AI Agent。 值得一提的是,如果你已经在电脑上部署了 OpenClaw、Hermes 等 AI Agent,也可以将 espclaw-skill-writer 安装为 Agent 的工具(Skill),通过自然语言自动完成驱动分析、Skill 生成与 Lua 文件补全等工作,将ESP-Claw传感器SKill开发流程进一步简化为一次与 AI 的协作对话。 ![]() 2.认识传感器 Skill 如果说 ESP-Claw 是我们的 AI 助手,那么 Skill 就是它的“学习资料”——教会 AI 如何使用某项能力。传感器Skill 可以理解为一份专门针对某个传感器的学习资料。通过学习这份资料,ESP-Claw 就能够认识这个传感器、了解它能做什么,以及知道如何与它进行通信。 例如,当 ESP-Claw 学习了 STCC4 二氧化碳(CO₂)传感器 Skill 后,它就学会了如何读取空气中的 CO₂ 浓度、温度和湿度数据。此时,我们就可以基于 UNIHIKER K10 开发各种与空气质量监测相关的项目,例如:实时显示和监测室内外空气质量、打造一个自动空气净化系统等。可以说当有了对应的传感器Skill,ESP-Claw就能“学会”如何通过ESP32系列主控使用这个硬件。 ![]() 那么,一个传感器 Skill 究竟包含哪些内容?当我们开发一个新的传感器Skill 时,要完成哪些工作?带着这些问题,我们先来看看一个完整的传感器 Skill 长什么样。 以ESP- Claw官方的Skills Lab中的 STCC4 二氧化碳传感器 Skill 为例,我们可以看到一个典型传感器 Skill 的结构: ![]() SKILL.md :告诉AI这个传感器是什么。可以理解为给 ESP-Claw 阅读的说明书。这里会告诉 AI:这个传感器是什么;它能提供哪些能力;在什么场景下应该使用;应该如何调用对应功能。![]() Lua 脚本:教AI如何驱动这个传感器。仅仅让 AI 知道传感器是什么还不够。AI 还需要真正读取传感器数据。这部分工作由 Lua 脚本完成。ESP-Claw 通过 Lua 模脚本来调用传感器的库函数完成传感器的初始化、读取数据等操作 ![]() 3.如何编写传感器 Skill 了解了传感器 Skill 的结构之后,相信你已经明白:只有当 ESP-Claw 拥有了对应传感器的 Skill,它才能真正使用某个传感器。那么问题来了,如果你手上的传感器目前还没有对应的 Skill,该怎么办? 答案很简单:自己为它创建一个 Skill。 听起来像是一件复杂的事情,但实际上,你并不需要从零开始编写所有文件。为了帮助开发者快速接入新的 DFRobot 传感器,DFRobot 官方提供了一个自动化工具:espclaw-skill-writer。它可以自动分析 DFRobot GitHub 上的传感器驱动库,并生成符合 ESP-Claw 规范的 Skill 框架,帮我们完成大部分重复性的工作,包括:搜索传感器对应的官方驱动仓库;下载驱动代码;分析传感器接口;自动生成 SKILL.md;自动生成 Lua 脚本模板。 换句话说,它帮我们完成了 Skill 开发中最繁琐、最容易重复出错的部分,让我们能够把精力集中在真正与传感器相关的逻辑上。 整个开发流程可以简单理解为: 接下来,在本篇文章中,我们将从环境准备开始,使用 espclaw-skill-writer 工具,一步一步完成属于自己的第一个传感器 Skill 开发,并最终部署到 ESP-Claw 版行空板 K10 上进行验证。提示:如果你的电脑已经部署了 OpenClaw、Hermes 等支持工具调用的 AI Agent,那么你甚至不需要手动执行后面的 Python 命令。你可以直接跳转阅读本文的「4. 为 AI Agent 安装 espclaw-skill-writer Skill」,通过自然语言让 AI Agent 自动完成驱动分析、Skill 生成和 Lua 文件补全等工作。
在生成 Skill 之前,我们首先需要找到对应传感器的 DFRobot 官方驱动库。传感器驱动库包含了 DFRobot 官方编写的传感器驱动代码,主要用于告诉单片机如何与 SFA40 通信。对于大多数 DFRobot 传感器,官方都会在 GitHub 上提供开源驱动代码。 以 Gravity: SFA40 甲醛传感器(HCHO) 为例进行演示。当我们在DFRobot商城中打开产品 Wiki 页面时,通常可以在页面底部找到对应的 GitHub 驱动仓库链接。 例如 SFA40 对应的官方驱动仓库为:DFRobot_SFA40 GitHub 仓库 。这里'sfa40'就是甲醛传感器的关键词.以 SFA40 为例,官方驱动库已经实现了传感器检测、启动测量、读取甲醛浓度、温度和湿度等核心功能。而 espclaw-skill-writer 正是通过分析这些驱动文件,自动生成适用于 ESP-Claw 的 Skill 框架。 找到刚刚解压的 espclaw-skill-writer 文件夹,在文件夹空白处输入 cmd 并按下 Enter,即可快速打开当前目录对应的命令行窗口。 ![]() 打开 CMD 后,输入以下命令: 整条命令的含义就是:在 DFRobot GitHub 中搜索与 SFA40 相关的驱动仓库,并列出结果供我们确认。执行后,espclaw-skill-writer 会自动到 DFRobot 的 GitHub 仓库中搜索与 SFA40 相关的驱动库,并返回匹配结果。如下图,就代表已经检索到了甲醛传感器对应的驱动库。 ![]() 如果是其他传感器怎么办?只需要把 sfa40 替换成对应传感器的关键词即可。一般情况下,关键词就是 DFRobot GitHub 驱动仓库名称中的核心部分。 例如:搜索 BMM350 磁力计: 搜索 SSD1306 OLED 显示屏:
确认搜索结果中已经找到目标驱动仓库后,就可以开始生成 Skill 了。 以 SFA40 甲醛传感器为例,执行以下命令: 其中 ‘ --sensor "sfa40" ’表示当前要生成的是 SFA40 甲醛传感器对应的 Skill。‘--repo "DFRobot/DFRobot_SFA40"’表示使用 DFRobot 官方提供的 SFA40 驱动仓库作为分析对象。 执行后,espclaw-skill-writer 会自动完成以下工作: 如果运行成功,你会看到类似如下输出:![]() 同时,在当前目录下会生成如下文件。发现生成的文件夹存在就代表着一个符合 ESP-Claw 规范的甲醛传感器 Skill 已经创建完成。 ![]()
打开刚刚生成的dfrobot_sfa40_i2c: 可以看到文件顶部默认配置如下:其中最需要优先检查的是:传感器地址这里的 0x00 只是工具自动生成的占位地址,并不代表真实的传感器地址。因此开发任何传感器 Skill 时,第一步都应该去查看官方驱动库,确认传感器实际使用的通信地址。 以 SFA40 为例,在 SFA40的DFRobot 官方驱动库头文件中可以找到: ![]() 因此需要将 Lua 文件修改为:![]() 修改完成后,ESP-Claw 才能正确找到连接在行空板 K10 上的 SFA40 传感器。继续向下查看,会看到如下代码。这段代码只完成了:初始化甲醛传感器I2C 总线、连接传感器设备、 输出调试信息;但是还没有完成: 初始化 SFA40地址 、启动测量读取甲醛浓度、读取温度、读取湿度因此即使上传到 ESP-Claw,也无法真正获取传感器数据。
接下来就需要根据官方驱动中的实现逻辑,补充真正的传感器读取代码。 如果你熟悉 C++、I2C 和传感器开发,可以直接阅读传感器官方仓库中的h文件和cpp文件找到传感器驱动代码,自行完成 Lua 移植。 ![]() 这里,更推荐借助 ChatGPT、Claude 或 Cursor等AI工具 来完成这一步。将以下文件上传给 AI工具如chatgpt: 然后使用下面的提示词:将原来以下提示代码替换成AI给出的代码。找到下面的代码所在位置。替换为 AI 生成的 SFA40 初始化与数据读取代码。最终结构应类似如下 当完成这一步后,我们就拥有了一个具备真实传感器能力的 Skill。接下来只需要将 Skill 上传到 ESP-Claw 版行空板 K10 中进行测试即可。这样即使未来接入新的气体传感器、环境传感器、磁力计或显示模块,也可以沿用同样的开发流程。
完成 Skill 文件的生成与修改后,最后一步就是将它部署到 ESP-Claw 版行空板 K10 中,验证是否能够真正读取 SFA40 传感器的数据。 首先,将电脑连接到ESP-Claw版行空板 K10 显示的 Wi-Fi 热点。 连接成功后,浏览器会自动访问ESP-Claw管理后台,网址为:http://192.168.4.1/ ![]() 在左侧菜单栏中,点击'Files',进入文件管理页面。 ![]() 随后点击skills,进入 Skill 存储目录。 ![]() 默认情况下,Skill 目录处于受保护状态,需要开启开发者模式才能进行编辑。点击右上角‘DevMode’。开启开发者模式。开启后即可对 Skill 文件夹进行创建、上传和修改。 ![]() 根据我们生成的 Skill 名称,新建一个文件夹:dfrobot_sfa40_i2c。创建完成后,可以进入该目录。 ![]() 将前面修改完善后的SKILL.md,上传:skills/dfrobot_sfa40_i2c/ 。 ![]() 目录中。点击‘Upload’,选择本地的 SKILL.md 文件。上传完成后,目录结构变为: ![]() 接下来,在 dfrobot_sfa40_i2c 目录下新建文件夹:scripts。用于存放 Lua 脚本。 ![]() 将/skills/sfa40/scripts/read_sensor_data.lua上传scripts ![]() 上传完成后,最终目录结构应当如下。如果目录结构与下面一致,说明 Skill 已经成功部署到 ESP-Claw 中。 返回 ESP-Claw 聊天页面。此时,ESP-Claw 已经拥有了使用 SFA40 传感器的能力。 你可以尝试输入: 或者以下命令: 如果你的 Skill 描述编写正确,Lua 脚本运行正常,并且 SFA40 已正确连接到行空板 K10,ESP-Claw 就会自动调用刚刚部署的 Skill,读取传感器数据并返回结果。![]() 至此,你已经成功完成了一个完整的 ESP-Claw 传感器 Skill 开发流程: 恭喜你,如果你完成到了这一步,现在,你不仅学会了如何为 SFA40 编写 Skill,也掌握了 ESP-Claw 接入新硬件的通用方法。未来无论是空气质量传感器、磁力计、环境传感器,还是 OLED 显示屏、GPS 等模块,都可以按照同样的流程快速扩展,让你的 ESP-Claw 版行空板 K10 学会使用任意 DFRobot 传感器。4.为AI Agent安装espclaw-skill-writer Skill 前面的教程中,我们通过命令行一步一步完成了 Skill 的生成流程。如果你已经在电脑上部署了自己的 AI Agent,例如 OpenClaw、Hermes 等,那么其实还有一种更轻松的方式。 你不需要记住 Python 命令,也不需要手动搜索仓库。只需要把 espclaw-skill-writer 的 GitHub 仓库地址交给 AI Agent,它就可以通过自然语言帮助你完成整个流程。 例如,你可以直接对 AI Agent 说: 请帮我安装并使用这个工具:gitee.com/yeezb/espclaw-skill-writer,为 DFRobot 的 SFA40 甲醛传感器生成一个适用于 ESP-Claw 的 Skill。这是SFA40的官方仓库地址:https://github.com/DFRobot/DFRobot_SFA40。 ![]() AI Agent 会自动理解你的需求,并完成原本需要手动执行的多个步骤,包括: AI Agent 可以直接生成甲醛传感器所需的 Skill 文件,包括:SKILL.md、read_sensor_data.lua文件;参数定义与调用说明\基于官方驱动补全的通信逻辑。这意味着,你无需理解所有底层驱动代码,也无需手动编写 Lua 文件,只需要通过自然语言描述需求,就能快速获得一个可用于 ESP-Claw 的传感器 Skill。 ![]() 可以看到AI Agent一键自动生成甲醛传感器的SKill文件。 ![]() 当然,AI 生成的结果仍然建议进行简单验证,例如检查:默认 I2C 地址是否正确;初始化流程是否与官方驱动一致;返回的数据格式是否符合预期;确认无误后,你只需要按照前文介绍的方法,将 AI 生成的 SKILL.md 和 read_sensor_data.lua 上传到 ESP-Claw 后台对应的 Skill 目录中,即可完成部署和测试。 可以看到,通过这种方式,原本需要搜索仓库、编写脚本、阅读驱动代码的过程,被简化成了一次与 AI Agent 的自然语言对话。通过espclaw-skill-writer-master工具, AI 不只是调用硬件,更能够参与硬件能力的学习与扩展。 当你为自己的本地AI Aget安装此技能之后,可以通过一句话快速生成对应的 Skill,让你的 ESP-Claw 版行空板 K10 持续学会新的能力。 5.附件 附件一:教程中开发完成的可以直接使用的甲醛传感器skill文件。 dfrobot_sfa40_i2c.zip附件二:使用的Esp-CLaw传感器开发Skill文件——espclaw-skill-writer-master espclaw-skill-writer-master.zip |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed