1. 物联网WiFi芯片选型
做物联网项目,第一步就是选芯片。选对了,后面顺风顺水;选错了,改板、重画、换方案,折腾死人。
我个人习惯,先看需求再定芯片。别一上来就追新,也别一味图便宜。今天咱们把三款主流WiFi芯片——ESP8266、ESP32、RTL8710——掰开揉碎讲清楚。
1.1 三款芯片核心参数对比
先看一张表,心里有个底。
| 参数项 | ESP8266 | ESP32 | RTL8710 |
|---|---|---|---|
| 主频 | 80MHz(可超频至160MHz) | 240MHz 双核 | 166MHz |
| SRAM | 160KB(可用约50KB) | 520KB + 4MB PSRAM | 512KB |
| Flash | 2MB~16MB(外挂) | 4MB~16MB(外挂) | 2MB~8MB(外挂) |
| WiFi标准 | 802.11 b/g/n | 802.11 b/g/n | 802.11 b/g/n |
| 蓝牙 | 无 | BLE 4.2 + Classic BT | 无 |
| GPIO数量 | 17个(部分复用) | 34个 | 18个 |
| ADC | 1路10位 | 2路12位 | 1路12位 |
| 硬件加密 | 无 | AES/SHA/RSA | AES |
| 工作温度 | -40°C ~ 125°C | -40°C ~ 125°C | -40°C ~ 85°C |
| 封装 | QFN 5x5mm | QFN 6x6mm | QFN 5x5mm |
关键点:ESP8266的SRAM是硬伤,实际可用只有50KB左右。做复杂协议栈或大缓冲区时,很容易爆内存。我踩过这个坑,后面细说。
1.2 选型考量三大要素
1.2.1 成本
做产品,成本是第一关。咱们直接看批量价(10K量级):
- ESP8266:约 $0.80 ~ $1.20。最便宜,没有之一。
- ESP32:约 $2.00 ~ $3.50。贵一倍,但多了蓝牙和双核。
- RTL8710:约 $1.50 ~ $2.50。比ESP8266贵,比ESP32便宜。
但注意,成本不只是芯片价。还要算外围:
- ESP8266需要外部Flash,走SPI,占PCB面积。
- ESP32也需要外部Flash,但内置PSRAM选项可以省掉外部RAM。
- RTL8710同样需要外部Flash,但它的WiFi射频前端集成度更高,外围器件少一些。
我做过一个智能插座项目,用ESP8266方案,BOM成本压到了$1.5。但后来客户要加OTA和MQTT,内存不够,只能换ESP32,成本直接翻倍。所以,别只看芯片单价,要看总BOM和功能需求。
1.2.2 功耗
电池供电的设备,功耗是命门。咱们看三款芯片的典型功耗:
| 工作模式 | ESP8266 | ESP32 | RTL8710 |
|---|---|---|---|
| WiFi TX (峰值) | ~170mA | ~240mA | ~150mA |
| WiFi RX | ~56mA | ~80mA | ~45mA |
| Modem Sleep | ~15mA | ~5mA | ~3mA |
| Deep Sleep | ~20µA | ~10µA | ~5µA |
看到没?RTL8710在Deep Sleep模式下只有5µA,比ESP8266低了4倍。如果你做的是温湿度传感器、门磁这类几个月不换电池的设备,RTL8710有明显优势。
但ESP32的功耗管理其实很灵活。它有个ULP协处理器,可以在Deep Sleep下跑一些简单任务(比如轮询GPIO)。我做过一个烟雾报警器,用ESP32的ULP协处理器,电池续航做到了8个月。
我的经验:如果设备需要频繁收发数据(比如每10秒上报一次),ESP8266和ESP32的功耗差距不大。但如果设备大部分时间在睡觉,RTL8710或ESP32的Deep Sleep模式才是正解。
1.2.3 生态
这一点,我放在最后说,但可能是最重要的。
ESP8266/ESP32的生态:
- Arduino IDE支持,上手极快。
- ESP-IDF官方SDK,文档齐全,示例丰富。
- 社区庞大,GitHub上项目成千上万,遇到问题一搜就有答案。
- 第三方库多:MQTT、HTTP、WebSocket、OTA、蓝牙配网……全都有现成的。
RTL8710的生态:
- 官方SDK(Ameba系列)基于FreeRTOS,功能完整。
- Arduino支持也有,但不如ESP系列成熟。
- 社区小很多,中文资料少,遇到坑得自己填。
- 第三方库少,很多功能需要自己移植。
说实话,我刚开始用RTL8710时,被它的SDK折腾得不轻。文档是英文的,示例代码注释不全,调试起来很费劲。而ESP32,我从拿到开发板到跑通MQTT,只用了半天。
避坑指南:我曾经在一个智能家居项目中选了RTL8710,因为它的功耗指标确实漂亮。结果开发周期比预期多了两个月,光移植一个MQTT库就花了一周。后来算总账,开发成本远超省下的那点芯片钱。所以,生态成熟度直接影响开发效率和上市时间。
1.3 选型决策流程图
下面这张图,是我自己总结的选型流程。每次做新项目,我都会过一遍。
1.4 我的选型建议
说了这么多,给个总结性的建议:
- 新手入门 / 原型验证:无脑选ESP32。生态好、资料多、功能强,踩坑成本最低。
- 低成本大批量产品:ESP8266仍然能打。但要注意内存限制,别把功能堆太满。
- 电池供电 / 超低功耗:RTL8710值得考虑。但要做好心理准备,开发周期会长一些。
- 需要蓝牙功能:只有ESP32可选。RTL8710和ESP8266都不支持。
最后说一句:芯片选型没有绝对的对错,只有合不合适。我见过用ESP8266做智能门锁的,也见过用ESP32做温湿度传感器的。关键是搞清楚你的产品到底要什么——成本、功耗、性能、开发速度,你总得有所取舍。
嗯,这一章就到这里。记住,选型是第一步,但也是最重要的一步。后面咱们会深入WiFi配网和无线透传的实战细节,到时候你会更清楚自己到底需要什么样的芯片。