1. 项目背景与核心需求
去年接手了一个智能环境监测项目,客户需要一款能够长期稳定工作的室温采集设备。经过多方评估,最终选择了基于BC26 NB-IoT模块的方案。这个选择主要基于三个核心需求:
- 超低功耗:设备需要电池供电运行至少1年
- 广域覆盖:部署地点可能位于地下室等信号较弱区域
- 成本控制:量产单价需要控制在100元以内
BC26模块完美契合这些需求 - 它的PSM模式功耗仅3μA,支持NB-IoT网络穿透性强,而且模块价格已经降到50元以内。不过实际开发过程中,我发现官方文档里很多细节都没说清楚,这也是写这篇文章的初衷。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件架构设计
2.1 核心组件选型
整套硬件由四个关键部分组成:
-
主控MCU:STM32L051C8T6
- 选择理由:低功耗特性出色(运行模式100μA/MHz),价格约5元
- 特别注意:需要关闭所有未使用的外设时钟
-
通信模块:移远BC26
- 关键参数:
- 支持频段:B1/B3/B5/B8/B20/B28
- PSM电流:3μA
- 工作温度:-40℃ ~ +85℃
- 关键参数:
-
温度传感器:DS18B20
- 优势:单总线接口节省IO,±0.5℃精度
- 替代方案:SHT30(精度更高但需要I2C)
-
电源管理:TPS62743
- 关键特性:效率高达95%,静态电流仅350nA
2.2 电路设计要点
原理图设计时有几个容易踩坑的地方:
- BC26的VBAT引脚必须就近放置100μF+1μF电容组合,否则开机时可能因电流突增导致重启
- DS18B20的数据线需要加上拉电阻(4.7KΩ),且走线长度不宜超过10米
- 天线接口要严格按阻抗匹配要求设计,我们的方案是使用π型匹配网络
重要提示:NB-IoT模块对电源纹波极其敏感,建议使用LDO+DC-DC组合供电方案
3. 软件实现详解
3.1 系统初始化流程
完整的初始化需要遵循特定顺序:
c复制void hardware_init()
{
// 1. 先初始化时钟和基础外设
SystemClock_Config();
MX_GPIO_Ini
