第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充电芯片。注意,电池要加保护板,不然过放一次就废了。

电源设计要点总结:

  1. AC-DC模块选隔离型,安全第一
  2. LoRa模块供电必须加LDO
  3. 大功率器件(LED、继电器)和弱电部分分开供电
  4. 备用电池要加充放电管理
  5. 所有电源入口加TVS管防浪涌

好了,硬件平台选型就聊到这儿。下一章我们开始讲电路原理图设计,到时候我会把每个引脚的连接逻辑都掰开揉碎讲清楚。有什么问题,欢迎在课程群里交流。


公众号:蓝海资料掘金营,微信deep3321