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元

好了,硬件选型这块就聊到这儿。总结一下我的核心思路:先定需求,再定芯片,最后定传感器。别一上来就买最贵的开发板,先想清楚你的设备要测什么、装在哪里、用电池还是市电。下一章咱们开始画电路原理图,到时候我会把今天选的这些芯片怎么连在一起,一步步讲清楚。