2、硬件平台选型:主控芯片选型(ESP32/STM32/Arduino)、通信模块选型(WiFi/BLE/Zigbee)、传感器与执行器选型
好,咱们直接进入正题。硬件选型这件事,说白了就是给项目「搭骨架」。骨架搭歪了,后面软件写得再漂亮也白搭。我见过太多新手一上来就纠结「哪个芯片性能最强」,结果项目做了一半发现外设不够用,或者功耗压不下去。嗯,咱们今天就把这事聊透。
2.1 主控芯片选型:ESP32 vs STM32 vs Arduino
这三类芯片,我这些年都用过。它们各有各的脾气,选哪个完全取决于你要干什么。
2.1.1 ESP32:物联网项目的「万金油」
我个人习惯,只要项目需要联网,首选就是ESP32。为什么?
- 自带WiFi + BLE:省掉一个通信模块的钱和PCB面积。我在做智能灯控项目时,一颗ESP32搞定所有,板子尺寸能控制在5cm以内。
- 双核处理器:一个核跑协议栈,一个核跑应用逻辑。互不干扰。
- 性价比极高:批量价十几块钱,比单独买MCU+WiFi芯片还便宜。
适用场景:智能家居网关、WiFi灯控、BLE Mesh节点、需要OTA升级的设备。
我的小技巧:ESP32的ADC线性度不太好,如果你需要精确采集模拟量(比如光敏电阻),建议外挂一个独立的ADC芯片,比如ADS1115。我在一个环境监测项目里吃过这个亏,后来老老实实加了外部ADC。
2.1.2 STM32:工业级的「稳定担当」
如果你做的是工业照明、医疗设备,或者对实时性要求极高的场景,STM32是更稳妥的选择。
- 丰富的外设:定时器、DMA、CAN、USB……你能想到的它基本都有。
- 生态成熟:HAL库、LL库、CubeMX配置工具,开发效率很高。
- 稳定性强:-40℃到85℃宽温范围,ESD防护等级高。
注意:STM32本身不带无线功能。你需要外接WiFi/BLE模块,比如ESP8266或BLE芯片。这会增加硬件复杂度和成本。
我记得有一次做户外路灯控制器,环境温度高、干扰大。用ESP32测试时偶尔会死机,换成STM32F103后,连续跑了三个月没出过问题。嗯,这就是工业级芯片的价值。
2.1.3 Arduino:快速原型验证的「利器」
Arduino Uno/Nano/Mega,这些板子我一般只用来做两件事:
- 快速验证传感器:写几行代码就能看到数据,不用折腾寄存器配置。
- 教学演示:给团队新人或客户展示概念时,Arduino最直观。
但说实话,Arduino不适合量产。它的ATmega系列芯片性能有限,内存小,而且没有加密功能。你想想看,产品里用Arduino,竞争对手直接读你的Flash就能抄走代码。
| 对比项 | ESP32 | STM32 | Arduino |
|---|---|---|---|
| 无线能力 | WiFi + BLE 内置 | 需外接模块 | 需外接模块 |
| 性能 | 双核240MHz | 单核/双核 72-480MHz | 8位 16MHz |
| 开发难度 | 中等 | 较高 | 低 |
| 量产适用性 | 高 | 高 | 低 |
| 成本(批量) | ¥10-20 | ¥5-30 | ¥15-30 |
2.2 通信模块选型:WiFi vs BLE vs Zigbee
通信方式决定了你的设备怎么「说话」。选错了,后面改都改不动。
2.2.1 WiFi:高带宽、高功耗
适合需要传输大量数据、或者直接接入互联网的场景。比如智能灯通过手机App控制,或者需要视频流。
- 优点:传输速率高(最高150Mbps),直接连路由器,不需要网关。
- 缺点:功耗高,待机电流几十mA。电池供电的设备慎用。
避坑指南:我曾经在一个智能灯泡项目里用WiFi,结果发现灯泡关掉后,WiFi模块还在跑,待机功耗有0.5W。后来加了继电器,彻底断电才解决。如果你做的是电池设备,WiFi基本不用考虑。
2.2.2 BLE:低功耗、短距离
BLE是智能照明里最常用的通信方式。手机直接连接,配对快,功耗极低。
- 优点:待机功耗低至μA级,广播模式适合信标类应用。
- 缺点:传输距离短(10-30米),穿墙能力弱。
我个人习惯,做室内灯控首选BLE Mesh。每个灯都是一个节点,信号可以中继,覆盖整个屋子没问题。
2.2.3 Zigbee:组网能力强、低功耗
Zigbee在智能家居领域地位很稳。它的Mesh网络非常成熟,一个网关可以带几百个设备。
- 优点:自组网、自修复,节点数量多,功耗低。
- 缺点:需要网关,手机不能直连。开发调试比BLE复杂。
你想想看,如果你要做全屋智能照明,几十个灯、开关、传感器,用Zigbee是最省心的。BLE Mesh虽然也能组网,但节点多了以后稳定性不如Zigbee。
| 通信方式 | 传输距离 | 功耗 | 组网能力 | 典型应用 |
|---|---|---|---|---|
| WiFi | 50-100米 | 高 | 星型 | App直连、OTA升级 |
| BLE | 10-30米 | 低 | Mesh | 灯控、传感器 |
| Zigbee | 10-100米 | 低 | Mesh | 全屋智能、工业 |
2.3 传感器与执行器选型
传感器负责「感知」,执行器负责「动作」。这两样选对了,项目就成功了一半。
2.3.1 常用传感器
- 光敏传感器:比如BH1750,数字输出,精度高。我建议别用模拟光敏电阻,ADC误差大,校准麻烦。
- 人体红外传感器(PIR):HC-SR501最常见,但注意它的触发延迟。我在项目里遇到过人走了灯还亮着的情况,后来改用微波雷达传感器才解决。
- 温湿度传感器:DHT11便宜但精度差,SHT30贵但稳定。做产品的话,别省那几块钱。
注意:传感器选型时一定要看工作电压和输出接口。3.3V的传感器不能直接接5V的MCU,需要电平转换。我曾经因为没注意这个,烧了两个传感器。
2.3.2 执行器选型
- LED灯珠:WS2812B(单线控制,RGB)或SK6812(RGBW)。我推荐用5050封装的,散热好,亮度高。
- 继电器:控制220V交流电时用。注意选带光耦隔离的,比如SRD-05VDC-SL-C。安全第一。
- MOS管:控制LED灯带调光时,用IRF520或AO3400。注意散热,电流超过1A就要加散热片。
嗯,这里要特别说一下。执行器的驱动电路不能直接接MCU的GPIO。GPIO电流只有几mA,带不动继电器或MOS管。一定要加三极管或驱动芯片,比如ULN2003。
2.4 选型总结与建议
说了这么多,我帮你理一下思路:
- 先定通信方式:需要联网?选WiFi。手机直连?选BLE。全屋组网?选Zigbee。
- 再定主控:通信方式定了,主控就跟着定了。WiFi选ESP32,BLE选ESP32或nRF52832,Zigbee选CC2530或EFR32。
- 最后定传感器和执行器:根据功能需求来,注意电压匹配和驱动能力。
我的个人建议:如果你是第一次做智能照明,从ESP32 + BLE + WS2812B开始。成本低、资料多、容易出成果。等你跑通了一个灯,再考虑换成Zigbee或者加传感器。
好了,这一章的内容就到这。下一章咱们开始画原理图,把今天选的这些芯片和模块连起来。到时候我会分享一些我画板子时踩过的坑,保证有用。