news 2026/5/1 1:54:55

用 EFR32 实现低功耗蓝牙传感器节点(从原理到实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 EFR32 实现低功耗蓝牙传感器节点(从原理到实战)

🔋 用 EFR32 实现低功耗蓝牙传感器节点(从原理到实战)

做 IoT,如果设备只能跑一天,那就是“玩具”。
能跑一年,才叫“产品”。

本文带你用 EFR32 做一个:

👉低功耗 BLE 传感器节点

具备:

  • 环境数据采集
  • 蓝牙广播/连接上传
  • 深度睡眠(µA级)

目标是:电池供电长期运行


一、项目目标(工程级思维)

设计一个节点:

功能描述
传感采集温湿度/电池电压
BLE通信广播 + 手机读取
低功耗运行长时间待机
周期唤醒定时采样
可扩展OTA后期升级

二、系统架构

┌────────────┐ │ 传感器(I2C)│ └─────┬──────┘ ↓ ┌────────────┐ │ EFR32 MCU │ └─────┬──────┘ ↓ ┌────────────┐ │ BLE通信 │ └─────┬──────┘ ↓ 手机 / 网关

三、硬件选型

1️⃣ 主控

推荐你当前使用的:

👉EFR32MG24 / BG22

优势:

  • 超低功耗(EM2/EM3)
  • BLE5.2
  • 支持 Zigbee / Matter
  • Silicon Labs 官方生态完整

2️⃣ 传感器

推荐:

  • SHT30(温湿度)
  • 或 SI7021(更低功耗)

3️⃣ 电源

  • CR2032(纽扣电池)
  • 2×AA电池

4️⃣ 低功耗设计关键

👉 所有外设都要支持“关电/休眠”


四、低功耗的核心思想(重点)

很多人以为:

❌ 低功耗 = 降低主频

其实真正的关键是:

让 MCU 大部分时间在睡觉。


EFR32 能耗模式(必须理解)

模式说明
EM0运行
EM1低功耗运行
EM2深度睡眠 ⭐
EM3更低功耗
EM4极限低功耗

👉 实际项目中:

90%以上时间应该在 EM2。


五、系统工作流程设计

睡眠(EM2) ↓(定时唤醒) 采集传感器 ↓ BLE发送数据 ↓ 再次进入睡眠

六、软件架构设计

建议分层:

App层(业务逻辑) ↓ BLE协议层 ↓ 驱动层(I2C/ADC) ↓ 硬件层

任务逻辑(非RTOS简化版)

while(1){sleep();// 进入低功耗if(timer_event){read_sensor();ble_send();}}

七、关键实现步骤

1️⃣ 定时唤醒(关键)

使用:

  • LETIMER(低功耗定时器)
sl_sleeptimer_start_periodic_timer_ms(&timer,5000,callback,NULL,0,0);

👉 每 5 秒唤醒一次。


2️⃣ 读取传感器

floattemp,humi;SHT30_Read(&temp,&humi);

3️⃣ BLE 广播数据(低功耗推荐)

不用连接,直接广播:

ADV: T=25.6,H=48.2

示例:

uint8_tadv_data[]={0x02,0x01,0x06,0x0A,0xFF,'T','2','5','.','6'};

4️⃣ BLE Notify(连接模式)

sl_bt_gatt_server_notify_all(handle,len,data);

5️⃣ 进入低功耗模式

sl_power_manager_sleep();

👉 系统自动进入 EM2。


八、电池电量检测(实用功能)

使用 ADC:

uint16_tadc=ADC_Read();floatvoltage=adc*3.3/4095;

上传:

Vbat:3.01V

九、功耗优化核心技巧(干货)

1️⃣ 减少广播频率

100ms → 高功耗 1000ms → 推荐

2️⃣ 减少连接时间

连接越久:

👉 功耗越高


3️⃣ 传感器供电控制

GPIO 控制电源 → 用完断电

4️⃣ 使用广播代替连接

👉 无连接最省电


5️⃣ 避免频繁唤醒

👉 每 5~60 秒采样一次


十、功耗估算(典型)

状态电流
睡眠(EM2)~2µA
采样瞬间~2mA
BLE发送510mA

平均电流:

👉 < 50µA(设计合理)


十一、续航估算

以 CR2032(220mAh)为例:

220mAh / 0.05mA ≈ 4400小时 ≈ 6个月+

优化后:

👉可达 1 年


十二、常见踩坑

❌ 一直不进低功耗

👉 有外设没关闭


❌ 功耗异常高

👉 BLE广播太频繁


❌ 唤醒失败

👉 定时器配置错误


❌ 数据丢失

👉 睡眠前没发完数据


十三、应用场景

  • 智能家居传感节点
  • 仓储环境监控
  • 冷链物流
  • IoT 低功耗终端

十四、项目升级方向

🚀 BLE Mesh

多个节点组网


🚀 Zigbee / Matter

接入智能家居生态


🚀 OTA升级

远程更新固件


🚀 网关系统

BLE → WiFi → 云


总结一句话

低功耗嵌入式的本质,
不是“省一点电”,
而是“绝大多数时间不工作”。

当你的设备:

  • 会睡觉
  • 会按时醒来
  • 只在必要时通信

你就已经在做一个真正的 IoT 产品。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 1:45:50

Steam游戏破解难题:如何用自动化工具轻松绕过DRM限制

Steam游戏破解难题&#xff1a;如何用自动化工具轻松绕过DRM限制 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否曾经遇到过这样的情况&#xff1a;好不容易下载了一款心仪已久的…

作者头像 李华
网站建设 2026/5/1 1:40:01

运维监控POC怎么做才不踩坑?我踩过的5个坑和一份验证清单

做运维监控选型&#xff0c;前面的环节——需求梳理、厂商接触、方案对比——相对还好判断。 真正容易出问题的是 POC。 POC 做得太松&#xff0c;什么系统都能过&#xff0c;等上线了才发现不行。POC 做得太严&#xff0c;测的都是极端场景&#xff0c;哪家都通不过&#xff0…

作者头像 李华
网站建设 2026/5/1 1:37:27

OBS Advanced Timer:6种计时模式让直播时间管理变得简单高效

OBS Advanced Timer&#xff1a;6种计时模式让直播时间管理变得简单高效 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer OBS Advanced Timer是一款专为OBS Studio设计的免费高级计时器插件&#xff0c;通过6种专…

作者头像 李华