第2章 硬件选型:主流WiFi+蓝牙双模芯片对比(ESP32、RTL8720、BK7231)

做扫地机器人,选对芯片等于成功了一半。我这些年经手过不下十款WiFi+蓝牙方案,踩过的坑能写本书。今天咱们就聊聊市面上最主流的三个选手:ESP32、RTL8720、BK7231。

说实话,没有完美的芯片,只有最合适的方案。你想想看,扫地机器人对成本敏感,但对稳定性要求又极高——这本身就是个矛盾。我个人的习惯是,先看需求,再选芯片,而不是反过来。

2.1 三款芯片的核心参数对比

先上干货。我把三款芯片的关键参数整理成了表格,方便你快速对比。

参数项 ESP32(乐鑫) RTL8720(瑞昱) BK7231(博通集成)
CPU核心 双核 Xtensa LX6 @240MHz 单核 ARM Cortex-M4 @200MHz 单核 ARM Cortex-M4F @160MHz
SRAM 520KB 512KB 256KB
Flash 外置,通常4MB~16MB 外置,通常2MB~8MB 内置2MB,可外扩
WiFi标准 802.11 b/g/n,HT20/40 802.11 b/g/n,HT20/40 802.11 b/g/n,仅HT20
蓝牙版本 BLE 4.2 + Classic BT BLE 5.0 BLE 5.0
GPIO数量 34个(可复用) 25个(可复用) 15个(可复用)
ADC精度 12位,2个SAR ADC 12位,1个SAR ADC 10位,1个SAR ADC
工作温度 -40°C ~ +125°C -40°C ~ +85°C -40°C ~ +85°C
参考价格(批量) 约$1.5 ~ $2.5 约$1.2 ~ $2.0 约$0.8 ~ $1.2

我的建议:如果项目预算充足,且对性能有极致要求,选ESP32。如果追求性价比,RTL8720是很好的平衡点。BK7231适合极致成本敏感的场景,但要做好功能取舍。

2.2 ESP32:生态之王,但有点“重”

ESP32我用了好几年,说实话,它最大的优势不是性能,而是生态。乐鑫的ESP-IDF框架、Arduino支持、大量的开源项目——你几乎能找到任何你想做的功能的现成代码。

我记得有一次做扫地机器人的OTA升级功能,从零开始到跑通,只花了两天。为什么?因为ESP32的OTA例程写得非常清楚,我直接改改回调函数就搞定了。

但ESP32也有它的短板。首先是功耗,双核全开时能到几百毫安,对电池供电的扫地机器人来说是个挑战。其次是体积,QFN封装的芯片加上外置Flash,占板面积不小。

小技巧:如果你用ESP32做扫地机器人,建议把WiFi和蓝牙的协议栈跑在同一个核上,另一个核专门处理电机控制和传感器数据。这样可以避免中断冲突。

2.3 RTL8720:性能均衡,但文档是硬伤

RTL8720是我最近两年开始重点关注的芯片。它的BLE 5.0支持长距离模式,这对扫地机器人和手机之间的通信很有帮助——你想想看,人在客厅,机器在卧室,信号还能稳定连接。

不过,瑞昱的文档质量嘛……嗯,我只能说“有提升空间”。我当初调RTL8720的WiFi扫描功能时,发现官方SDK里有个bug,扫描结果会漏掉部分AP。后来我翻遍了论坛才找到workaround。

为什么会这样?说白了,瑞昱的芯片主要面向白牌市场,文档和社区支持远不如乐鑫。如果你团队里有熟悉底层驱动的人,RTL8720是个好选择。否则,我建议你慎重。

避坑指南:我曾经因为RTL8720的BLE MTU设置不当,导致扫地机器人和手机之间的数据传输频繁断连。后来发现是默认MTU只有23字节,改成247字节后问题解决。切记,BLE通信一定要先协商MTU。

2.4 BK7231:成本杀手,但功能受限

BK7231是博通集成推出的芯片,主打低成本。它的价格只有ESP32的一半左右,非常适合对成本极度敏感的扫地机器人方案。

但便宜是有代价的。BK7231的SRAM只有256KB,跑完WiFi协议栈后,留给应用层的空间就很小了。我试过在上面跑一个完整的MQTT客户端加上JSON解析,结果内存直接爆了。

另外,BK7231的ADC只有10位精度。如果你需要精确检测扫地机器人的电池电压或者红外传感器,这个精度可能不够用。

我个人建议,BK7231适合做“轻量级”的扫地机器人——比如只做WiFi配网、定时清扫、简单状态上报。如果你需要复杂的路径规划、视觉识别,还是老老实实上ESP32吧。

2.5 如何选择?一个实用的决策流程

说了这么多,到底怎么选?我总结了一个简单的决策流程,你可以照着走一遍:

  1. 先看功能需求:需要Classic Bluetooth吗?需要OTA吗?需要本地语音识别吗?如果答案是“是”,直接选ESP32。
  2. 再看成本预算:BOM成本允许超过$2吗?如果允许,RTL8720是性价比之选。如果必须控制在$1以内,只能选BK7231。
  3. 然后看团队能力:团队有底层驱动工程师吗?如果有,RTL8720和BK7231都可以考虑。如果没有,选ESP32最稳妥。
  4. 最后看量产经验:如果这是你的第一款扫地机器人产品,我建议用ESP32。等产品稳定了,再考虑降成本换芯片。

我的经验:我见过太多团队,一开始为了省几毛钱选了BK7231,结果开发周期拉长了两倍,最后得不偿失。记住,芯片成本只是总成本的一小部分,开发成本和维护成本才是大头。

2.6 小结

好了,这一章的内容就到这里。总结一下:

  • ESP32:生态好、性能强、功耗高、价格贵。适合功能复杂的旗舰机型。
  • RTL8720:性能均衡、BLE 5.0给力、文档差。适合有一定技术积累的团队。
  • BK7231:成本低、功能受限、内存小。适合极致成本控制的入门机型。

下一章,我们会深入讲解如何搭建ESP32的WiFi+蓝牙双模开发环境。到时候我会手把手带你配置SDK、编译第一个例程。咱们下章见。