A BLE to MQTT bridge running on an ESP32
esp32-ble2mqtt
比赛/竞技, ESP32
⭐⭐☆☆☆ (2/5)
已发布
项目简介
ESP32上运行的BLE到MQTT桥接器。
ESP32-BLE2MQTT 是一个专为 ESP32 芯片设计的 BLE 到 MQTT 协议转换桥接工具,基于 ESP-IDF v5.2.1 开发。它的核心功能是将蓝牙低功耗(BLE)设备的 GATT 特征值映射为 MQTT 主题,实现双向通信。例如,一个带有电池服务的 BLE 设备,其电量值会自动发布到类似 `a0:e6:f8:50:72:53/BatteryService/BatteryLevel` 的 MQTT 主题上,数值以字符串形式呈现(如 "100" 表示 100% 电量)。项目支持通知自动订阅、主动读取(通过向主题发送任意值并加 `/Get` 后缀)以及写入操作(通过 `/Set` 后缀),极大简化了 BLE 设备与 MQTT 生态的集成。
标签
项目特点
零代码配置:通过 Web 界面或配置文件即可完成所有设置,无需编写固件
自动发现 BLE 设备:支持扫描并识别多种常见蓝牙传感器广播格式
数据直接推送到 MQTT:每个设备的数据独立推送,支持自定义主题前缀
低功耗设计:利用 ESP32 的深度睡眠模式,可电池供电运行
支持 OTA 更新:可通过网络远程升级固件,无需拆机刷写
兼容 Home Assistant:输出标准 MQTT 格式,可无缝集成到智能家居系统
技术规格
| 主控芯片 | |
|---|---|
| 无线协议 | |
| 支持的 BLE 设备 | |
| MQTT 协议版本 | |
| 配置方式 | |
| 固件更新方式 | |
| 供电方式 | |
| 典型功耗 |
项目资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| ESP32 开发板(如 ESP32-DevKitC) | 1 | — | 推荐 4MB Flash 版本 |
| Micro USB 数据线 | 1 | — | 用于供电和首次刷写 |
| 5V USB 电源适配器 | 1 | — | 或 3.7V 锂电池(需降压模块) |
| 杜邦线(可选) | 若干 | — | 如需外接传感器或按钮 |
| USB 转 TTL 串口模块(可选) | 1 | — | 仅当开发板无内置串口时使用 |
所需工具
| 工具 | 用途 | 是否必需 |
|---|---|---|
| PlatformIO 或 Arduino IDE | 编译和上传固件 | ✅ 是 |
| Python 3 + esptool.py | 通过串口刷写固件 | ▢ 推荐 |
| MQTT 客户端(如 Mosquitto) | 测试 MQTT 消息接收 | ▢ 推荐 |
| 串口监视器(如 PuTTY) | 调试日志输出 | ▢ 推荐 |
| Web 浏览器 | 访问 ESP32 配置页面 | ▢ 推荐 |
能力画像
**记忆与知识检索**:2/5 — 项目本身不涉及知识库或记忆功能,但需要查阅 BLE 和 MQTT 协议文档
**动手与操作**:3/5 — 需要焊接或连接硬件,但整体组装简单,适合入门级动手
**编程与算法**:2/5 — 无需编写代码,但需要理解配置文件格式和 MQTT 主题结构
**设计与建模**:1/5 — 不涉及电路设计或 3D 建模,硬件为现成开发板
**实验与调试**:4/5 — 需要调试 BLE 扫描范围、MQTT 连接稳定性,以及不同传感器的数据解析
**协作与分享**:3/5 — 可通过 GitHub Issue 和 PR 参与改进,配置方案可分享给社区
**学习与研究**:4/5 — 适合学习 BLE 广播协议、MQTT 通信、ESP32 低功耗模式
**系统集成**:5/5 — 核心价值在于将 BLE 设备无缝集成到 MQTT 生态(如 Home Assistant)
所需技能
基础电子知识(了解 ESP32 开发板引脚和供电)
熟悉 Wi-Fi 网络配置(SSID、密码)
了解 MQTT 协议基本概念(主题、发布/订阅)
能够使用命令行工具(如 esptool.py 刷写固件)
会阅读 JSON 配置文件
具备基本故障排查能力(查看串口日志)
适用场景
将小米蓝牙温湿度计数据接入 Home Assistant 或 Node-RED
监控蓝牙信标(如 iBeacon)的 RSSI 信号强度,用于室内定位
把自定义 BLE 传感器(如心率、气压)的数据上传到云端 MQTT 服务器
在工业环境中桥接 BLE 设备到有线 MQTT 网络
作为低成本的 BLE 网关,用于智能家居数据采集
教学演示:展示 BLE 与 MQTT 两种物联网协议的互转