3、硬件平台介绍:主控芯片与LoRa模块选型
做物联网项目,硬件选型是第一步,也是最容易踩坑的一步。我这些年经手过不下二十个IoT项目,从智能农业到工业监测,选错芯片或者模块,后面调试起来真是欲哭无泪。今天咱们就好好聊聊主控芯片、LoRa模块和传感器怎么选。
3.1 主控芯片选型:STM32 vs ESP32
先说结论:没有最好的芯片,只有最合适的芯片。我个人习惯把项目需求先列清楚,再决定用哪个。
STM32系列
STM32是意法半导体的王牌产品,Cortex-M内核,生态极其成熟。我在2018年做的一个农业大棚项目,用的就是STM32F103C8T6,到现在还在稳定运行。
| 型号 | 内核 | 主频 | RAM | Flash | 典型场景 |
|---|---|---|---|---|---|
| STM32F103C8T6 | Cortex-M3 | 72MHz | 20KB | 64KB | 传感器采集+LoRa透传 |
| STM32L051C8T6 | Cortex-M0+ | 32MHz | 8KB | 64KB | 低功耗电池供电 |
| STM32G070CBT6 | Cortex-M0+ | 64MHz | 36KB | 128KB | 性价比之选 |
优点:
- 资料多,遇到问题百度一下基本有答案
- 外设丰富,SPI、I2C、UART随便用
- 低功耗做得好,L0系列待机电流才0.3μA
缺点:
- 没有WiFi/蓝牙,需要外接模块
- 开发环境Keil/IAR,上手有点门槛
ESP32系列
ESP32是乐鑫的明星产品,集成了WiFi和蓝牙。说白了,它就是个带无线功能的单片机。我最近做的一个环境监测站,就用的ESP32-S3,因为需要偶尔通过WiFi上传数据做备份。
| 型号 | 内核 | 主频 | RAM | Flash | 特色 |
|---|---|---|---|---|---|
| ESP32-WROOM-32 | 双核Xtensa LX6 | 240MHz | 520KB | 4MB | WiFi+蓝牙经典 |
| ESP32-S3 | 双核Xtensa LX7 | 240MHz | 512KB | 16MB | AI加速、USB OTG |
| ESP32-C3 | 单核RISC-V | 160MHz | 400KB | 4MB | 低成本、蓝牙5.0 |
优点:
- 自带WiFi/蓝牙,省一个模块的钱
- Arduino IDE支持,入门快
- 性能强,240MHz跑复杂算法没问题
缺点:
- 低功耗不如STM32,深度睡眠还有10μA左右
- ADC精度一般,采集模拟传感器要小心
3.2 LoRa模块对比:SX1278 vs SX1262
LoRa模块是远距离传输的核心。市面上主流的就两种:SX1278和SX1262。我两个都用过,说说真实感受。
SX1278
这是Semtech的老将,FIFO模式,SPI接口。我2019年做的一个水库水位监测项目,用的就是SX1278,通信距离实测3.2公里(城市环境)。
- 频段:410-525MHz,国内常用433MHz
- 灵敏度:-148dBm(SF12时)
- 最大发射功率:+20dBm(100mW)
- 调制方式:LoRa、FSK、OOK
- 价格:模块价格约15-25元
SX1262
这是新一代产品,支持CAD(信道活动检测)和DIO2控制。我去年做的一个智慧农业项目,换成了SX1262,功耗比SX1278低了约30%。
- 频段:150-960MHz,覆盖更广
- 灵敏度:-148dBm(SF12时)
- 最大发射功率:+22dBm(158mW)
- 调制方式:LoRa、FSK、MSK、GFSK
- 价格:模块价格约20-35元
| 对比项 | SX1278 | SX1262 |
|---|---|---|
| 功耗(接收) | 10.8mA | 4.6mA |
| 功耗(发射20dBm) | 120mA | 85mA |
| 最大速率 | 37.5kbps | 62.5kbps |
| CAD支持 | 需要软件实现 | 硬件支持 |
| 开发难度 | 简单,资料多 | 中等,寄存器有变化 |
3.3 传感器选型原则
传感器选型,说白了就是三个字:准、稳、省。准是精度,稳是长期稳定性,省是功耗和成本。我踩过的坑不少,分享几个原则。
温湿度传感器
最常用的是DHT11、DHT22和SHT30。DHT11精度太差,我从来不用。DHT22精度还行,但响应慢。SHT30是我现在的首选。
- SHT30:精度±2%RH,±0.3°C,I2C接口,价格约8元
- DHT22:精度±2%RH,±0.5°C,单总线,价格约5元
- BME280:精度±3%RH,±1.0°C,还带气压,价格约10元
光照传感器
光照传感器分两种:模拟输出和数字输出。模拟的便宜,但需要ADC。数字的贵,但精度高。
- BH1750:数字输出,I2C接口,量程1-65535lux,价格约5元
- TSL2561:数字输出,I2C接口,可测红外+可见光,价格约8元
- 光敏电阻:模拟输出,便宜但精度差,价格约0.5元
我个人习惯用BH1750,精度够用,代码也简单。你想想看,一个光照传感器如果误差几百lux,对植物生长判断影响不大,但如果是光敏电阻,误差可能上千lux。
气压传感器
气压传感器主要用于海拔测量和天气预报。BMP280和BME280是主流。
- BMP280:精度±1hPa,I2C/SPI,价格约3元
- BME280:精度±1hPa,还带温湿度,价格约10元
- MS5611:精度±0.1hPa,价格约15元
土壤湿度传感器
土壤湿度传感器是农业项目的核心。市面上主要有电容式和电阻式两种。
- 电容式(如YL-69改进版):寿命长,不易腐蚀,价格约5元
- 电阻式(如YL-69):便宜,但容易生锈,价格约2元
- FDR型(如SM3001):精度高,带温度补偿,价格约30元
嗯,这里要注意:电阻式传感器用久了会电解腐蚀,我见过一个项目三个月后数据就完全不准了。所以我现在一律推荐电容式,虽然贵几块钱,但省心。
3.4 知识体系总览
下面这张图,是我自己总结的硬件选型决策流程。你跟着这个思路走,基本不会出错。
这张图的核心逻辑很简单:先看需不需要联网,再选主控,然后根据供电方式选LoRa模块,最后按准稳省原则选传感器。我每次做新项目,都会先画这么一张图,思路就清晰了。
好了,这一章的内容就到这里。下一章咱们开始动手搭建开发环境,把代码跑起来。
公众号:蓝海资料掘金营,微信deep3321