2、硬件选型:LoRa模块选型(SX1278/SX1262)、主控芯片选型(STM32/ESP32)、传感器选型
好,咱们进入第二章。硬件选型。
说实话,很多初学者一上来就纠结「哪个芯片最强」。其实不是这样的。我做了这么多年物联网项目,最大的体会是:选型不是选最好的,而是选最合适的。你想想看,一个仓库温湿度监控,你非要用军工级芯片,那不是浪费钱吗?
2.1 LoRa模块选型:SX1278 vs SX1262
LoRa模块的核心,说白了就是那颗射频芯片。目前市面上最主流的两款,就是Semtech的SX1278和SX1262。我两个都用过,踩过坑也填过坑,今天跟你聊聊我的真实感受。
2.1.1 SX1278:老将出马,一个顶俩
SX1278是LoRa领域的「常青树」。它基于FSK/OOK调制,内部集成了LoRa扩频技术。我记得2017年我第一次用SX1278做项目,当时就被它的灵敏度惊到了——-148dBm,这什么概念?比Wi-Fi的接收能力强了将近20dB。
SX1278的核心参数:
- 工作频段:137MHz ~ 525MHz(常用433/470/868/915MHz)
- 最大发射功率:+20dBm(100mW)
- 接收灵敏度:-148dBm(LoRa模式,BW=125kHz,SF=12)
- 调制方式:LoRa、FSK、OOK
- 接口:SPI
- 工作电压:1.8V ~ 3.7V
我的经验:SX1278最大的优势是成熟稳定。市面上几乎所有LoRa教程、开源库都是基于它写的。如果你做原型验证、小批量生产,选它基本不会出大问题。但要注意,它的功耗偏高——发射电流约120mA,待机也有1.6mA左右。电池供电的项目要慎重。
2.1.2 SX1262:后起之秀,能效之王
SX1262是Semtech后来推出的升级版。我第一次用SX1262是在一个野外气象站项目上,当时甲方要求电池续航两年。我算了一下,用SX1278根本做不到,于是换成了SX1262。
SX1262的核心参数:
- 工作频段:150MHz ~ 960MHz(覆盖更广)
- 最大发射功率:+22dBm(158mW)
- 接收灵敏度:-148dBm(与SX1278持平)
- 调制方式:LoRa、FSK、OOK、GFSK、MSK
- 接口:SPI
- 工作电压:1.8V ~ 3.7V
避坑指南:我曾经在一个项目中,直接用SX1278的代码移植到SX1262上,结果死活连不上。后来才发现,SX1262的寄存器地址和SX1278完全不同,而且SX1262多了一个DIO2引脚用于控制天线开关。所以千万别偷懒,驱动库一定要重写。
2.1.3 选型对比表
| 对比项 | SX1278 | SX1262 |
|---|---|---|
| 发射电流(+20dBm) | ~120mA | ~85mA |
| 接收电流 | ~12mA | ~4.6mA |
| 待机电流 | ~1.6mA | ~0.6μA |
| 最大发射功率 | +20dBm | +22dBm |
| 频段覆盖 | 137-525MHz | 150-960MHz |
| 价格(批量) | 约8-12元 | 约15-20元 |
| 生态成熟度 | ★★★★★ | ★★★★ |
我的建议:
- 如果项目对功耗不敏感(比如市电供电),或者你是初学者,选SX1278。资料多、好调试。
- 如果项目要求电池供电、续航一年以上,或者需要更高的发射功率,选SX1262。虽然贵几块钱,但省下来的电池钱和运维成本,绝对值。
2.2 主控芯片选型:STM32 vs ESP32
主控芯片是整个系统的「大脑」。LoRa模块负责收发,但数据处理、协议解析、传感器控制,都得靠主控。目前工业LoRa节点最常用的两个方案,就是STM32和ESP32。
2.2.1 STM32:工业级的可靠之选
STM32,尤其是F1和L4系列,在工业领域简直是「烂大街」的存在。为什么?因为稳定、可靠、抗干扰能力强。我做过一个钢铁厂的振动监控项目,现场电磁环境极其恶劣,PLC都偶尔死机,但STM32愣是扛下来了。
推荐型号:
- STM32F103C8T6:经典款,72MHz主频,64KB Flash,20KB RAM。价格便宜(批量约8元),适合做LoRa网关或简单节点。
- STM32L431CCT6:超低功耗,80MHz主频,256KB Flash,64KB RAM。适合电池供电的传感器节点。
注意:STM32的缺点是没有内置Wi-Fi/蓝牙。如果你需要本地无线调试或数据上传,必须外接ESP8266或Wi-Fi模块。这会增加成本和PCB面积。
2.2.2 ESP32:Wi-Fi+蓝牙+LoRa的全能选手
ESP32是乐鑫的明星产品。它最大的优势是内置Wi-Fi和蓝牙。你想想看,一个芯片就能搞定LoRa数据采集、Wi-Fi上传云端、蓝牙手机调试,多省事。
推荐型号:
- ESP32-WROOM-32:双核240MHz,4MB Flash,520KB RAM。价格约15元,性价比极高。
- ESP32-S3:带AI加速器,适合需要边缘计算的场景(比如振动信号FFT分析)。
我的经验:ESP32的ADC精度是个坑。它的12位ADC非线性度较差,测量电池电压时误差可能达到50mV。如果你需要高精度模拟量采集,建议外挂一个ADS1115(16位ADC),或者干脆用STM32的ADC。
2.2.3 选型对比表
| 对比项 | STM32F103C8T6 | ESP32-WROOM-32 |
|---|---|---|
| 主频 | 72MHz | 240MHz(双核) |
| Flash | 64KB | 4MB |
| RAM | 20KB | 520KB |
| 内置Wi-Fi/蓝牙 | 无 | 有 |
| ADC精度 | 12位(线性度好) | 12位(线性度差) |
| 工作温度 | -40~85℃ | -40~85℃ |
| 价格(批量) | 约8元 | 约15元 |
| 开发难度 | 中等(HAL库) | 较低(Arduino/ESP-IDF) |
我的建议:
- 如果项目需要高可靠性、工业级抗干扰,或者模拟量采集精度要求高,选STM32。
- 如果项目需要Wi-Fi上传、蓝牙调试,或者开发周期紧、想快速出原型,选ESP32。
- 如果预算允许,也可以STM32+ESP8266组合,兼顾可靠性和无线能力。
2.3 传感器选型
传感器是系统的「眼睛」和「耳朵」。选错了传感器,后面的数据处理再漂亮也是白搭。我根据工业设备监控的常见场景,给你推荐几款我亲自验证过的传感器。
2.3.1 温度传感器:DS18B20 vs PT100
- DS18B20:数字输出,单总线协议,-55~125℃精度±0.5℃。价格便宜(约3元),适合测环境温度、设备外壳温度。我习惯用它做低成本多点测温,一条线上可以挂多个。
- PT100:铂电阻,-200~850℃精度±0.1℃。需要搭配运放电路或专用芯片(如MAX31865)。适合测电机轴承、高温管道等场景。
避坑指南:我曾经用DS18B20测一个户外机柜的温度,结果夏天暴晒后读数一直显示85℃。后来才发现,DS18B20的封装是TO-92,直接暴露在阳光下会受热辐射影响。正确的做法是加一个百叶箱罩子,或者用PT100贴装在机柜内壁上。
2.3.2 振动传感器:SW-420 vs ADXL345
- SW-420:振动开关,输出高低电平。只能检测「有没有振动」,不能测「振得多厉害」。价格极低(约1元),适合做简单的设备启停检测。
- ADXL345:三轴加速度计,±2/4/8/16g可调,输出数字信号(I2C/SPI)。可以测振动频率和幅度。我曾在风机监控项目中用它做FFT分析,成功提前一周预警了轴承故障。
2.3.3 电流传感器:ACS712 vs SCT-013
- ACS712:霍尔效应电流传感器,直插式,可测±5A/±20A/±30A。输出模拟电压,需要ADC采集。适合PCB板载电流检测。
- SCT-013:开口式电流互感器,钳在电线上即可,无需断开电路。输出0-1V模拟信号。适合改造现有设备、非侵入式监测。
我的经验:用SCT-013测电机电流时,要注意相位差。如果同时测电压和电流算功率,必须用同一片ADC同步采样,否则算出来的功率因数会偏差很大。我吃过这个亏,后来改用ADE7953专用电能计量芯片才解决。
2.3.4 传感器选型总结表
| 监测对象 | 推荐传感器 | 接口类型 | 精度 | 参考价格 |
|---|---|---|---|---|
| 环境温度 | DS18B20 | 单总线 | ±0.5℃ | 3元 |
| 高温管道 | PT100+MAX31865 | SPI | ±0.1℃ | 25元 |
| 振动检测 | ADXL345 | I2C/SPI | ±2~16g | 8元 |
| 电流监测 | SCT-013 | 模拟量 | ±1% | 15元 |
| 设备启停 | SW-420 | GPIO | 开关量 | 1元 |
好了,硬件选型这块就聊到这儿。总结一下我的核心思路:先定需求,再定芯片,最后定传感器。别一上来就买最贵的开发板,先想清楚你的设备要测什么、装在哪里、用电池还是市电。下一章咱们开始画电路原理图,到时候我会把今天选的这些芯片怎么连在一起,一步步讲清楚。