我让AI帮我把BW21-CBV开发板接入了飞书机器人,不光能控制点灯,还能拍照看照片

如果说近十年,对中国物联网行业发展起到重要作用的几家公司,其中必然有两家,一家是乐鑫,一家是安信可。

乐鑫是芯片厂家,ESP8285、ESP8266、ESP32都是他们家的芯片。这几年爆火的小智AI机器人,主要用的就是乐鑫他们家的ESP32。

相比之下,安信可就没有那么的吸引眼球。安信可是一家模组供应商,各种蓝牙、WiFi、雷达、lora模块都有卖。

我为什么把这两家公司放在一起?

熟悉我的人都知道,十年前,也就是2016年前后,我遇见了ESP8266,一个让我很长时间爱而不得的模块。因为当时的你如果想开发ESP8266,需要先装一个Linux虚拟机,呵呵。

很快,我发现安信可做了一件功德无量的事,它在eclipse基础上做了二次开发,在Windows环境下支持了ESP8266的开发。这对当时的我来说,是一个天大的好消息。因为不需要安装Linux虚拟机就能开发ESP8266了。

用安信可的环境,当时我还写了一系列的教程。听起来是不是还有点厉害?

2025年中,大概是七月份前后吧。安信可的一位工作人员,通过我公众号后台联系到我,说他们新开发了一些模块、开发板,想邀请我试用一下,并写一些评论。

我当时一看有这好事,反复挑了几天,选了一个小贵的开发板,就是它:

拿到手里是这样的,很精致:

然后我就研究起来了,开发环境、示例代码、外设接口等等。双频WiFi+BLE,啧啧啧!支持本地视觉识别,啧啧啧!500MHz频率,啧啧啧!海量的arduino示例,啧啧啧!

研究了一段时间,还真让我挑出了一些小毛病…

安信可的员工有点无语,然后我这边工作忽然忙起来,就把这事忘了。希望他们别恨我…

2026年初,kimi K2.5横空出世,当时惊艳了我一下,越用越上瘾。Vibe coding在国内嵌入式行业终于有希望了,但还是大小问题都有。我当时做了一些好玩的尝试,例如优化贪吃蛇游戏、用ESP32+TF做NAS等。

然后,翻出了它!

啧啧啧,这精致的外形,这丰富的外设,这优雅的接口!

用它做点啥呢?

当时正好赶上龙虾机器人火爆全网,我研究了一圈没什么兴致,但是对接入飞书机器人感兴趣了。

因为做为个人玩家,如果要搞一些物联网相关的DIY,远程连接是个避不开的问题,因为需要一个服务器。而这个开销对个人来说比较敏感,可大可小。

但飞书机恰好解决了这个问题,它不只是个聊天APP,还支持用户把个人信息接入他们的聊天机器人,可以实现信息交互、指令下发。不管你在哪,只要有网!

那么,做点什么?

当然是从经典的点灯开始!

接下来,和我一起沉浸式coding吧,看我踩了哪些坑!

首先,注册一个飞书账户

百度搜索:飞书开放平台。

打开后,注册一个账号。

同时,体验一下飞书官方提供的“自动回复机器人”例程,位置如下:

这里,飞书官方提供了一个极其详细的体验流程。只要你跟着步骤操作,肯定不会出问题。基操,不解释。

体验完成后,你会在手机飞书上得到一个自动回复机器人,以及它的配套源码。这个机器人我们后面会用到,配套源码中python部分的代码后面也会用一下。

第二步,需求分析

我的需求很简单,要把BW21-CBV-Kit通过WiFi接入飞书机器人。能够在飞书上给BW21-CBV-Kit发信息,BW21-CBV-Kit收到后能回复。

你是不是觉得,把上面这段话发给AI,AI就能帮你解决了?

错!

AI具备的是一些通用技能,例如编程、思考。如果你给它一个语法错误,它能很快告诉你原因。因为编程中的语法规定是公开的,正常情况只要违规它必然能发现。

但是当面对飞书这种第三方的需求时,如果不知道具体的协议、网址,是无法实现我们的功能的。

所以,我让AI参照python中自动回复机器人的实现流程,来给BW21这个板子编程。于是,我得到了这样一个需求文档:

第三步,技术架构

技术上如何实现?

接入飞书那里,我前面说了,参照官方的python源码,使用同样的工作流程。而BW21-CBV-Kit这个板子用的是arduino的开发方式,所以我要求AI在开发过程中,涉及硬件相关的操作,全部借鉴arduino中提供的实例:

第四步,任务拆解

根据需求分析,技术架构,让AI知道这个需求具体实现的方式,然后把实现过程进行拆解。拆解为一个一个的小任务,一次只完成一个,且每次完成后由用户进行测试。

如图可知,一个大任务被AI分成了6个小任务。每次完成一个,逐步逼近最终目标。

任务1最简单,接入WiFi即可,不解释。

任务2这里,需要获取飞书的token,这里需要填入App ID和App Secret。这两个信息从哪里获取?

进入飞书的开发者后台,找到第一步创建的那个自动回复机器人,点开:

可以看到这两个信息。

任务3是通过websocket接入飞书服务器,能够显示飞书手机端发送的消息。

任务4解析,任务5回复,任务6优化。

第五步,开始coding!

用的还是kimi code cli,命令行的方式:

我是在Windows的环境下安装了kimi code cli。看起来有些原始,但就是因为它够原始、够底层,所以能实现更多的功能。

借助AI,很快前两个任务完成了:

第六步,换方案

模块1和模块2基本很快实现了,但是模块3(WebSocket 连接模块)花了很长时间也不行。我当时前前后后至少和kimi拉扯了三天。试了各种方法。

怎么办?

这个时候,我又关注到另一个开源项目:mimiclaw。

是的,也是一个和龙虾有关的项目,用C语言写的。它是在ESP32-S3上实现的一个简易龙虾机器人,可以接入飞书、有记忆、可以接入AI大模型、可以通过飞书控制ESP32的硬件(前提是写好相应的程序,直接调用)。

既然它可以接入飞书,而且是C语言开发的,那就借鉴它的实现方式吧。于是我把这个项目的GitHub连接提供给kimi,让它下载下来。然后分析它接入飞书的方式,接着在BW21-CBV上面实现。

听起来有点玄乎,其实就是我们日常做的移植工作。只不过之前是由人来实现,现在是AI来实现。

很快,我就在BW21-CBV的串口打印信息中看到了:

YES!

第七步,点灯

能够收到消息,后面就简单了。根据相关的格式,对收到的信息进行解析即可,就能得到具体的消息内容。

接下来进行模块5:消息回复模块,飞书收到机器人回复、LED控制。

这里分享一个小技巧:调试过程中,如果主要依靠串口打印日志调试的话,每次新程序运行,我会把完整日志存入一个log.txt文档,然后让AI直接看这个文档,获取完整的日志信息。如下图所示:

接着说点灯,板子上有一个蓝色LED,通过D23控制,高电平点亮。我们做好约束:飞书发送“开灯”,点亮LED,飞书发送“关灯”,熄灭LED。

Kimi一顿写写写,于是,我们得到了:

爽!

第八步,程序备份,编写记录

并不是说到了这一步才开始做备份、写记录,我只是在这一步里把这个工作系统的提出来。

我们前面完成了几个比较关键的节点,例如token获取、websocket通信、以及后面的点灯。每一步都比较关键,因此要随时做好程序备份、更新备份记录、更新调试记录。

这些工作交给kimi,它可以很容易帮我们实现。如下图所示,这是我最终的一个备份记录:

第九步,拍照

你以为就点个灯就完了?

当然不是,我要让飞书手机端发送拍照命令给BW21-CBV-Kit板子,板子拍照,然后上传到飞书服务器,然后显示在飞书手机端。

所以,到了这一步,我的需求已经在之前的基础上更新了。我不止要手机控制点灯,我还要手机控制拍照、看照片!

那么,我怎么让AI知道在飞书机器人里上传图片用什么接口,走什么协议?

去飞书官网找:

如图,在飞书开放平台搜索:图片上传,就能找到相关的说明页面。而且,这个页面还能够以MD格式复制下来,提供给AI,飞书好像已经算准了我们自己不会看…

这是更新的需求:

第十步,拍照与上下文

在这里提到上下文有点奇怪,因为工作已经进行了大半了,但确是在这个阶段出现的一个我不确定的问题:Context Rot,中文称为:上下文腐朽。

经常用AI的人,应该会意识到一件事:给AI安排工作,上下文越详细越好。但真的是这样吗?

上下文腐朽的意思是说,当你和AI的对话轮数过多,内容过多的时候,AI会出现性能下降的情况。

我在进行到拍照这个阶段的时候,频繁遇到了问题。我已经明确跟AI说了arduino的示例在哪,都支持各种拍照需求。但至少3~5次,要么编译报错、要么运行报错。我甚至都有情绪了。

当然不全是AI的问题,可能我的配置也有关系。

所以,怎么办?

很简单,清空上下文。那清空完了,怎么让AI再熟悉这个项目?

这里介绍两个很有用的命令:/init 和 /clear,都是在kimi code cli平台下运行的。看名字就能猜出来,一个是类似初始化的命令,用来让AI熟悉整个项目。另一个是清空上下文用的,把当前对话全部清空。

但是只依靠命令也不保险,建议定期更新调试记录,把完成的项目和遇到的问题都记录下来,这才是最稳妥的。

第十一步,逗你玩

拍照功能验证完成后,进行图片上传的尝试。我先在TF卡里存了一张之前拍好的照片,然后让AI尝试把照片上传到飞书的服务器。基本上有了飞书官方文档的支持,AI实现起来是很快的。

很快,我在飞书发送拍照命令,然后就得到了这个:

你能想象我收到这个信息的心情吗?

又好气,又好笑!我要个image_key干啥?我要的是图片啊!

你说它到底是聪明呢,还是不聪明呢?

第十二步,完成!

上面信息反馈之后,等了三分钟吧,程序改好了。编译、烧录,终于,我得到了这个:

爽!我从没觉得看到办公室的屋顶这么爽!

最后,想说的很多。关于AI,我曾在前段时间听到过几句话:要尽可能地无所不用其极的使用AI;不止要用在你会的地方,也要用在你不会的地方。

它的能力很强,你的想象力很丰富,两者结合,会创造出很多看似不可能的东西。

当然,不要觉得我这次做的东西很轻松,什么都甩给AI就完了。我是用业余时间做的,好几天忙到深夜。中间不止一次被AI折腾的没脾气、想放弃,最后不停的想办法、换思路,才实现的。

所以,无所不用其极的使用AI,摸清它的能力边界,然后为你所用!

最后的最后,板子的完整程序我上传到了网盘,需要的同学,公众号后台回复关键词:BW21 或者 034 即可获取下载链接。不要觉得你没有这个板子程序就没意义,有了这个程序,你完全可以让AI把它移植到任何支持WiFi、支持拍照的处理器上,毫无难度!

打完收工!

发表评论

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理