第1章:硬件平台选型——我的实战经验与避坑指南
做LoRa智慧路灯这个项目,硬件选型是第一步,也是最关键的一步。我见过太多项目,方案选得天花乱坠,结果做出来要么成本压不住,要么稳定性一塌糊涂。今天我就把这几年的经验摊开来讲,希望能帮你少走弯路。
1.1 主控芯片选型:STM32还是ESP32?
这个问题,几乎每个学员都会问我。我的回答是:看场景,别跟风。
先说说STM32。我个人习惯用STM32F103系列,为什么?因为稳定。我在一个户外路灯项目里,设备在南方梅雨天连续跑了两年,没出过一次死机。STM32的工业级温度范围(-40°C到85°C)和丰富的外设接口,特别适合这种需要长期稳定运行的场景。
但STM32也有短板。它不带Wi-Fi和蓝牙,如果你想做远程调试或者本地APP控制,就得额外加模块。另外,它的价格这两年涨得厉害,F103C8T6现在要十几块一片,心疼啊。
再来看ESP32。这芯片我一开始是拒绝的,觉得它不够「正经」。直到有一次,客户要求路灯必须支持手机蓝牙调光,而且成本要压到最低。我试了ESP32,嗯,真香。它自带Wi-Fi和蓝牙双模,主频240MHz,价格才十几块。而且Arduino生态成熟,开发效率高。
但ESP32有个坑——ADC精度差。我曾经用它采集光敏电阻的电压值,结果读数跳来跳去,滤波都救不回来。后来只能外挂一个ADS1115 ADC芯片,成本又上去了。所以,如果你需要高精度模拟量采集,老老实实用STM32。
我的选型建议:
- 追求极致稳定、工业级应用:选STM32F103或F407系列
- 需要无线连接、快速原型验证:选ESP32
- 预算敏感、功能简单:选ESP32-C3(RISC-V架构,更便宜)
- 千万别用:STM32F0系列(Flash太小,跑不了LoRa协议栈)
1.2 LoRa模块选型:SX1278 vs SX1262
LoRa模块是智慧路灯的通信核心。市面上主流就两种:SX1278和SX1262。很多人纠结选哪个,我直接说结论:新项目优先选SX1262。
为什么?SX1278是上一代产品,虽然便宜(模块才十几块),但功耗高、灵敏度一般。我做过对比测试:同样条件下,SX1262的接收灵敏度比SX1278好3-5dBm。别小看这3dBm,在复杂城市环境下,可能就决定了你的路灯能不能连上网关。
SX1262还有一个杀手锏——支持TCXO温补晶振。我在一个北方项目里,冬天零下20°C,SX1278的晶振漂移导致通信失败。换成SX1262后,问题彻底解决。你想想看,路灯在户外风吹日晒,频率稳定性太重要了。
当然,SX1278也不是一无是处。它的驱动代码非常成熟,网上资料一抓一大把。如果你只是做个小demo,或者预算卡得死,用SX1278也能跑。但记住,量产项目别省这十几块钱。
| 参数 | SX1278 | SX1262 |
|---|---|---|
| 工作频段 | 137-1020MHz | 150-960MHz |
| 最大发射功率 | +20dBm | +22dBm |
| 接收灵敏度 | -148dBm | -148dBm(实际更好) |
| 支持TCXO | 否 | 是 |
| 典型功耗(接收) | 12mA | 4.6mA |
| 模块价格(参考) | 12-18元 | 25-35元 |
避坑指南: 我曾经买过一批号称「原装SX1278」的模块,结果通信距离只有标称的一半。后来拆开一看,里面是国产替代芯片。所以,LoRa模块一定要从正规代理商拿货,别贪便宜。
1.3 传感器与执行器选型
智慧路灯需要感知环境,然后做出动作。我把它分成两类:输入(传感器)和输出(执行器)。
传感器部分
- 光照传感器:我用BH1750比较多,I2C接口,精度高,价格才3块钱。别用光敏电阻,那玩意儿线性度太差,调光根本不准。
- 人体红外传感器(PIR):推荐AM312或者HC-SR501。注意,PIR传感器有个「死区」问题——人静止不动时检测不到。我在项目里加了个微波雷达模块做互补,效果很好。
- 温湿度传感器:SHT30或者DHT22。DHT22便宜但精度一般,SHT30贵一点但稳定。户外环境建议用SHT30,防结露性能更好。
执行器部分
- LED驱动:用恒流驱动芯片,比如PT4115或者BP2831。千万别用电阻限流,效率低还发热。
- 继电器:控制路灯开关,推荐SRD-05VDC-SL-C。注意,继电器线圈要加续流二极管,不然会烧主控。我吃过这个亏,一次烧了3片STM32。
- 调光接口:0-10V调光或者PWM调光。我个人倾向PWM,电路简单,响应快。
重要提醒: 传感器和执行器的供电一定要分开!我曾经把LED驱动和传感器共用一个5V电源,结果LED开关瞬间产生尖峰,把传感器芯片打坏了。后来老老实实加了隔离电源模块,再没出过问题。
1.4 电源管理模块
路灯的电源设计,说白了就是AC-DC + DC-DC的组合。市电220V进来,先降压到24V或12V,再降压到3.3V给主控和LoRa模块供电。
我推荐用HLK-PM01这种AC-DC模块,220V转5V,效率高,体积小。但注意,它的纹波比较大,不能直接给LoRa模块供电。LoRa模块对电源噪声很敏感,我见过因为电源纹波大导致通信距离缩短30%的情况。
所以,一定要加一级LDO。我习惯用AMS1117-3.3,便宜又好用。如果你对功耗有极致要求,可以用XC6206系列,静态电流只有1μA。
另外,路灯通常需要备用电池,防止断电后设备失联。我用的是18650锂电池,配合TP4056充电芯片。注意,电池要加保护板,不然过放一次就废了。
电源设计要点总结:
- AC-DC模块选隔离型,安全第一
- LoRa模块供电必须加LDO
- 大功率器件(LED、继电器)和弱电部分分开供电
- 备用电池要加充放电管理
- 所有电源入口加TVS管防浪涌
好了,硬件平台选型就聊到这儿。下一章我们开始讲电路原理图设计,到时候我会把每个引脚的连接逻辑都掰开揉碎讲清楚。有什么问题,欢迎在课程群里交流。
公众号:蓝海资料掘金营,微信deep3321