2. 硬件选型与平台搭建:蜂窝模组与BLE芯片的实战选择

做物联网项目,第一步就是选硬件。说实话,这一步走错了,后面全是坑。我见过太多团队,芯片选型时只看参数表,结果打样回来发现电源纹波太大、天线匹配不对,折腾两个月又换方案。

这一章,我就把蜂窝模组和BLE芯片的选型逻辑、开发板连接要点、电源设计的关键细节,掰开了讲清楚。你跟着走一遍,至少能少走我当年踩过的那些弯路。

2.1 主流蜂窝模组选型:SIM7600 vs BC95

蜂窝模组的选择,说白了就是看你的业务场景。你是要高速传视频,还是只发几个传感器数据?这决定了你用4G Cat.4还是NB-IoT。

对比项 SIM7600(4G Cat.4) BC95(NB-IoT)
速率 下行150Mbps,上行50Mbps 下行约25kbps,上行约15kbps
功耗 空闲约20mA,发送峰值约500mA PSM模式约3.5μA,发送约50mA
协议 TCP/UDP/HTTP/MQTT全栈 CoAP/UDP为主,MQTT需外挂
适用场景 视频监控、车载网关、远程控制 水表气表、环境传感器、资产追踪
成本 模组约80-120元 模组约25-40元

我个人习惯是:如果项目需要OTA升级固件、或者偶尔传一张图片,直接上SIM7600。如果只是每天上报几次温度、电量,BC95就够了,省下来的钱够买好几个传感器。

⚠️ 注意: BC95的PSM(省电模式)唤醒延迟大约在1-3秒。我曾经有个项目,客户要求设备响应时间小于500ms,结果BC95从PSM醒来连网就要2秒多,最后只能换成Cat.1模组。所以,低功耗不等于低延迟,这个取舍你要想清楚。

2.2 BLE芯片选型:nRF52832 vs ESP32

BLE芯片这边,nRF52832和ESP32是两大主流。一个专攻低功耗蓝牙,一个走的是Wi-Fi+蓝牙双模路线。怎么选?看你的网关角色。

对比项 nRF52832 ESP32
BLE版本 BLE 5.0,支持2Mbps/长距离 BLE 4.2,基础功能完整
处理能力 ARM Cortex-M4F,64MHz Xtensa LX6双核,240MHz
功耗(广播) 约5.3mA(0dBm) 约15mA(0dBm)
特色 片上NFC、温度传感器、EasyDMA Wi-Fi、以太网、蓝牙共存
开发环境 nRF5 SDK / Zephyr ESP-IDF / Arduino

我建议这样选:如果BLE设备是电池供电的传感器节点,用nRF52832,它的功耗控制确实好。如果这个设备同时要连Wi-Fi上云,或者需要本地处理大量数据,那就ESP32,毕竟双核240MHz跑个算法还是轻松的。

💡 小经验: nRF52832的EasyDMA机制很强大,但初次配置容易踩坑。我记得第一次用nRF52832做多连接从机,没配好DMA通道,结果广播包一直丢。后来发现是EasyDMA的优先级和中断冲突了。建议你上手时先跑一遍官方例程里的"multi_link_central",把基础流程跑通再改。

2.3 开发板连接与接口设计

选好芯片,接下来就是怎么把它们连起来。蜂窝模组和BLE芯片之间,通常通过UART通信。但这里有个细节——电平匹配。

SIM7600的UART电平是1.8V,而nRF52832也是1.8V,可以直接连。但ESP32的UART是3.3V,直接连SIM7600会烧IO口。怎么办?加电平转换芯片,比如TXS0102。

🔗 推荐连接拓扑:
BLE主控(UART_TX) → 电平转换 → 蜂窝模组(UART_RX)
蜂窝模组(UART_TX) → 电平转换 → BLE主控(UART_RX)
共地线必须接,否则通信会乱码。

另外,SIM7600的PWRKEY引脚需要拉低至少1秒才能开机。我习惯用BLE主控的一个GPIO控制PWRKEY,这样可以在需要时远程重启模组。

// 示例:ESP32控制SIM7600开机
#define PWRKEY_PIN 4

void sim7600_power_on() {
    pinMode(PWRKEY_PIN, OUTPUT);
    digitalWrite(PWRKEY_PIN, LOW);
    delay(1500);  // 拉低1.5秒
    digitalWrite(PWRKEY_PIN, HIGH);
    delay(3000);  // 等待模组注册网络
    Serial.println("SIM7600开机完成");
}

2.4 电源设计要点:别让供电拖后腿

电源设计是物联网设备最容易翻车的地方。蜂窝模组发射时电流会突然飙升,如果电源响应慢,电压一掉,模组就重启了。

我总结了几条硬规矩:

  • 蜂窝模组独立供电: SIM7600峰值电流可达2A,不要和BLE芯片共用LDO。用DC-DC降压到3.8V,输出电容至少100μF+10μF+0.1μF组合。
  • BLE芯片用LDO: nRF52832对电源纹波敏感,建议用XC6206或RT9013这类低噪声LDO,输出电容10μF+0.1μF。
  • 大电容靠近模组: 470μF电解电容放在SIM7600电源入口,能有效抑制发射时的电压跌落。
  • 地线要粗: 电源回路的地线宽度至少2mm,不要走细线,否则地弹效应会让你通信失败。
⚠️ 我曾经踩过的坑: 有个项目用BC95,觉得功耗低,就用了一个小LDO供电。结果BC95在发送数据时,LDO输出从3.3V掉到2.8V,模组直接掉线。后来换成DC-DC+大电容,问题解决。记住,NB-IoT虽然平均功耗低,但发送瞬间电流也有200mA左右,电源不能省。

2.5 整体硬件架构图

下面这张图,是我做这类项目时常用的硬件架构。你可以直接参考。

蜂窝模组与BLE协同组网硬件架构 蜂窝模组与BLE协同组网硬件架构 电池/电源输入 DC-DC 3.8V LDO 3.3V SIM7600/BC95 蜂窝模组 nRF52832/ESP32 BLE主控 UART 4G/NB-IoT天线 BLE天线 说明: 电源路径:电池→DC-DC 3.8V给蜂窝模组供电,同时经LDO降压至3.3V给BLE主控供电。 通信路径:BLE主控通过UART与蜂窝模组交互,电平不匹配时需加TXS0102。

2.6 避坑清单:我替你试过的错

最后,我把这些年做蜂窝+BLE项目遇到的典型问题列出来。你设计时对照检查一遍,能省很多调试时间。

  1. SIM7600开机时序: 拉低PWRKEY后,必须等模组输出"RDY"或"^READY"再发AT指令。我见过有人延时只给500ms,结果模组还没初始化完,AT指令全返回ERROR。
  2. BC95的PSM唤醒: 唤醒后不要立即发数据,先发AT+CSCON?确认网络状态。否则数据可能发不出去,白白耗电。
  3. nRF52832的广播间隔: 如果做低功耗传感器,广播间隔建议设为100ms以上。我试过20ms广播,功耗直接翻倍,而且手机扫描也不一定更快。
  4. ESP32的Wi-Fi和蓝牙共存: 如果同时开Wi-Fi和蓝牙,天线切换会有冲突。建议用ESP-IDF的esp_coex_status_t接口做优先级管理,否则蓝牙连接会频繁断开。
  5. 电源去耦电容: 每个芯片的电源引脚都要放0.1μF陶瓷电容,且必须紧贴引脚。我见过有人把电容放在PCB背面,走线绕了半圈,结果高频噪声根本滤不掉。