硬件平台选型:主控芯片对比、传感器选型与电源模块设计
做智能照明系统,第一步就是选主控。这就像盖房子打地基,选错了后面全得推倒重来。我这些年折腾过不少方案,今天就把ESP32、STM32、Arduino这三家的底细给你掰扯清楚。
主控芯片三巨头对比
先看一张对比表,心里有个底:
| 特性 | ESP32 | STM32 | Arduino (Uno/Nano) |
|---|---|---|---|
| 核心架构 | Xtensa LX6 双核 | ARM Cortex-M 系列 | ATmega328P (8位AVR) |
| 主频 | 240MHz | 72MHz~480MHz | 16MHz |
| WiFi/蓝牙 | 内置双模 | 需外挂模块 | 需外挂模块 |
| RAM | 520KB SRAM | 20KB~1MB | 2KB |
| Flash | 4MB~16MB | 64KB~2MB | 32KB |
| ADC精度 | 12位 | 12位/16位 | 10位 |
| 开发难度 | 中等 | 较高 | 低 |
| 典型价格 | 15~30元 | 10~80元 | 20~40元 |
ESP32——我个人最推荐做智能照明的主控。为什么?它自带WiFi和蓝牙,省掉一个通信模块的钱和空间。240MHz双核跑起来,同时处理PWM调光和MQTT协议栈,一点不卡。我在一个酒店项目里用过ESP32控制200路灯光,稳得很。
STM32——如果你要做工业级产品,比如楼宇照明系统,那STM32是首选。它的定时器资源丰富,做高精度PWM调光(16位分辨率)很轻松。但要注意,STM32本身没有无线功能,你得外接ESP8266或蓝牙模块。嗯,这会让BOM成本上去不少。
Arduino——说实话,Arduino更适合原型验证。它的ATmega328P只有2KB RAM,跑个稍微复杂的调光算法就捉襟见肘了。我刚开始学嵌入式时就用Arduino,但做产品?还是算了。
我的建议:个人项目或小批量产品,无脑选ESP32。工业级大批量,选STM32。教学演示,Arduino够用。
传感器选型:光敏、人体红外、温湿度
智能照明要感知环境,传感器就是它的眼睛和皮肤。选错了,灯该亮时不亮,不该亮时瞎亮。
光敏传感器
用来检测环境亮度,自动调节灯光。常见的有两种:
- 光敏电阻 (LDR):便宜,几毛钱一个。但线性度差,响应慢。我踩过坑——用LDR做调光,阴天和傍晚的亮度值几乎一样,根本区分不开。
- 数字光强传感器 (BH1750):I2C接口,直接输出lux值。精度高,范围0~65535 lux。我建议用这个,贵不了几块钱,但省心太多。
避坑指南:我曾经把LDR装在灯罩旁边,结果灯一开,传感器检测到亮度高,又把灯调暗了——死循环!记住,光敏传感器要远离光源,或者加遮光罩。
人体红外传感器 (PIR)
用来检测是否有人,实现人来灯亮、人走灯灭。HC-SR501是经典款,但要注意:
- 它的检测范围是扇形,安装高度2.5米左右效果最好
- 有个延时调节旋钮,我一般调到10秒,避免频繁触发
- 灵敏度旋钮别拧到底,否则猫狗路过也会开灯
更高级的方案是用毫米波雷达传感器(如LD2410),能检测微动和静止人体。不过价格贵一些,看预算选吧。
温湿度传感器
智能照明里,温湿度主要用来做联动——比如夏天温度高时,灯光色温调冷一点。DHT11和DHT22是入门选择:
- DHT11:精度±2°C,±5%RH,采样周期1秒。够用,但别指望它多准。
- DHT22:精度±0.5°C,±2%RH,采样周期2秒。我项目里都用这个。
如果要求更高,上SHT30或BME280,I2C接口,精度和稳定性都好很多。
电源模块设计
电源是智能照明最容易出问题的地方。你想想看,灯控板装在吊顶里,坏了拆都难拆。所以电源设计一定要稳。
供电方案选择
| 方案 | 输入 | 输出 | 适用场景 |
|---|---|---|---|
| 阻容降压 | 220V AC | 5V/3.3V | 低成本、小电流(<100mA) |
| 非隔离降压 (BUCK) | 220V AC | 3.3V/5V | 智能灯泡、灯带控制器 |
| 隔离反激 (Flyback) | 220V AC | 3.3V/5V | 需要安全隔离的场景 |
| DC-DC降压 | 12V/24V DC | 3.3V/5V | 已有低压供电的系统 |
我个人习惯用非隔离BUCK方案,比如HLK-PM01模块,220V转5V,体积小,效率高。但要注意——非隔离意味着整个电路板都带电!外壳必须做绝缘处理。我在一个原型机上没注意,手摸到GND被电了一下,麻得很。
警告:如果产品要通过3C或CE认证,必须用隔离电源。非隔离方案只适合自己DIY或内部项目。
电源设计要点
- 滤波电容要足:ESP32启动瞬间电流能到500mA,我一般用100μF电解+0.1μF瓷片并联。
- 注意压降:如果传感器和主控共用3.3V,长导线会有压降。我遇到过PIR传感器因为电压低于3.0V而误触发。
- 加TVS管:电源入口加一个SMBJ5.0A,防浪涌。这玩意儿便宜,但能救你一命。
功耗估算
一个典型的智能照明节点:
- ESP32:工作电流80mA,深度睡眠10μA
- PIR传感器:工作电流50μA
- BH1750:工作电流120μA
- DHT22:工作电流1.5mA(测量时)
总功耗大约100mA左右。如果用阻容降压,100mA已经是极限了,所以还是老老实实上BUCK吧。
我的经验:设计电源时留出30%余量。比如计算需要100mA,就按130mA设计。别问我为什么——有一次我算得刚刚好,结果加了个LED指示灯,系统就重启了。
好了,硬件平台选型这块就聊到这儿。下一章我们开始画原理图,把ESP32、传感器和电源模块连起来。到时候我会把每个引脚的连接细节都讲清楚,包括那些容易踩的坑。