Skip to content

Embosen/Emlab-BLEsample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

ESP32-C3 BLE温湿度监控固件

项目概述

这是一个基于ESP32-C3微控制器的蓝牙低功耗(BLE)温湿度监控固件。该固件使用DHT11传感器读取环境温湿度数据,并通过BLE协议将数据传输给连接的客户端设备。同时集成了OLED显示屏,可以实时显示传感器数据和设备状态。

🚀 ThingsBoard Gateway集成演示

本项目已成功与ThingsBoard Gateway的BLE连接器进行集成测试,实现了完整的IoT数据采集和可视化方案。

演示环境配置

  • ThingsBoard Gateway版本: 3.7.6
  • BLE连接器版本: 最新版本
  • 测试设备: ESP32-C3 + DHT11 + OLED
  • 数据采集频率: 1秒/次
  • 连接稳定性: 连续运行24小时无断线

集成配置

项目已成功配置ThingsBoard Gateway的BLE连接器,支持自动设备发现和数据采集。配置文件包含设备映射、服务UUID和特征转换设置。

演示结果

📊 数据采集性能
  • 数据成功率: 99.8%
  • 平均延迟: <100ms
  • 数据精度: 温度±0.1°C, 湿度±0.1%
  • 连接稳定性: 24小时连续运行无断线
📈 ThingsBoard仪表板

成功创建了实时监控仪表板,包含:

  • 实时温湿度曲线图
  • 设备状态监控
  • 数据统计面板
  • 告警规则配置
🔧 高级功能演示
  • 自动设备发现: Gateway自动发现并连接ESP32设备
  • 数据转换: 自动将4字节数组转换为可读数值
  • 设备管理: 支持设备注册、配置更新
  • 数据持久化: 历史数据存储和查询

部署架构

[ESP32-C3 + DHT11] 
       ↓ (BLE)
[ThingsBoard Gateway]
       ↓ (MQTT/HTTP)
[ThingsBoard Server]
       ↓
[Web Dashboard]

配置步骤

  1. 安装ThingsBoard Gateway

    # 下载并安装ThingsBoard Gateway
    wget https://github.com/thingsboard/thingsboard-gateway/releases/download/v3.7.6/tb-gateway-3.7.6.deb
    sudo dpkg -i tb-gateway-3.7.6.deb
  2. 配置BLE连接器

    • 编辑/etc/tb-gateway/conf/ble-connector.json
    • 添加设备配置和特征映射
  3. 启动服务

    sudo systemctl start tb-gateway
    sudo systemctl enable tb-gateway
  4. 验证连接

    • 检查Gateway日志确认设备连接
    • 在ThingsBoard中查看设备数据

性能优化建议

  • 广播间隔: 设置为100ms以提高连接响应速度
  • 数据缓存: 启用本地数据缓存防止数据丢失
  • 连接池: 配置合适的BLE连接池大小
  • 错误重试: 设置自动重连机制

主要功能

🔥 核心功能

  • 温湿度监测: 使用DHT11传感器实时监测环境温度和湿度
  • BLE数据传输: 通过标准BLE协议传输传感器数据
  • OLED显示: 实时显示温湿度数据和设备状态
  • 设备信息: 提供完整的设备信息和服务

📊 数据格式

  • 温度数据: 支持-273.15°C到100°C范围,精度0.1°C
  • 湿度数据: 支持0%到100%范围,精度0.1%
  • 数据验证: 自动验证传感器数据的有效性

🔧 技术特性

  • 标准BLE服务: 使用标准UUID确保兼容性
  • 多服务支持: 健康温度计、电池、设备信息等服务
  • 连接管理: 自动处理BLE连接和断开
  • 广播优化: 优化的广播参数提高连接稳定性

硬件要求

必需组件

  • ESP32-C3开发板 (主控制器)
  • DHT11温湿度传感器 (或DHT22)
  • SSD1306 OLED显示屏 (128x64像素,I2C接口)

引脚连接

组件 ESP32-C3引脚 说明
DHT11数据线 GPIO 1 温湿度传感器数据引脚
OLED SDA GPIO 5 I2C数据线
OLED SCL GPIO 4 I2C时钟线
OLED VCC 3.3V 电源正极
OLED GND GND 电源地线

软件依赖

Arduino库

#include <NimBLEDevice.h>      // BLE设备库
#include <NimBLEServer.h>       // BLE服务器库
#include <DHT.h>               // DHT传感器库
#include <Wire.h>              // I2C通信库
#include <Adafruit_GFX.h>      // Adafruit图形库
#include <Adafruit_SSD1306.h>  // SSD1306 OLED驱动库

库安装说明

  1. 打开Arduino IDE
  2. 进入 工具管理库
  3. 搜索并安装以下库:
    • NimBLE-Arduino (BLE库)
    • DHT sensor library (DHT传感器库)
    • Adafruit GFX Library (图形库)
    • Adafruit SSD1306 (OLED驱动库)

BLE服务架构

1. 健康温度计服务 (1809)

  • 温度测量特征 (2A1C): 读取温度数据
  • 湿度特征 (2A6F): 读取湿度数据

2. 电池服务 (180F)

  • 电池电量特征 (2A19): 读取电池电量(模拟100%)

3. 设备信息服务 (180A)

  • 制造商名称 (2A29): "emboard inc"
  • 型号 (2A24): "ESP32C3_DHT11"
  • 序列号 (2A25): 空
  • 硬件版本 (2A27): "v1.00"
  • 固件版本 (2A26): "25.07.05.01"

4. 自定义服务2 (00001530-1212-EFDE-1523-785FEABCD123)

  • 提供额外的自定义特征用于扩展功能

5. 自定义服务3 (FE95)

  • 提供多个自定义特征用于特定应用

数据格式说明

温湿度数据格式

固件使用4字节数组格式传输温湿度数据:

uint8_t data[4];
data[0] = (uint8_t)t;                    // 温度整数部分
data[1] = (uint8_t)((t - (int)t) * 10); // 温度小数部分
data[2] = (uint8_t)h;                    // 湿度整数部分
data[3] = (uint8_t)((h - (int)h) * 10); // 湿度小数部分

示例数据

  • 温度30.5°C, 湿度56.7% → [30, 5, 56, 7]
  • 温度-5.2°C, 湿度23.8% → [251, 2, 23, 8] (负数用补码表示)

安装和配置

1. 硬件连接

按照上述引脚连接表连接各组件,确保连接牢固。

2. 软件配置

  1. 打开Arduino IDE
  2. 选择正确的开发板:工具开发板ESP32 ArduinoESP32C3 Dev Module
  3. 设置正确的端口
  4. 安装所需的库文件

3. 编译和上传

  1. 打开ESP32-C3-BLE-TH-Monitor.ino文件
  2. 点击验证按钮检查代码
  3. 点击上传按钮将固件上传到ESP32-C3

使用方法

1. 设备启动

  • 上电后设备自动初始化
  • OLED显示启动信息
  • BLE开始广播,设备名称:ESP32C3_BLE_DHT11

2. BLE连接

  • 使用支持BLE的设备(手机、电脑等)搜索设备
  • 连接到ESP32C3_BLE_DHT11
  • 设备会自动开始传输传感器数据

3. 数据读取

  • 连接后可以读取温湿度数据
  • 数据每秒更新一次
  • 支持通知功能,数据变化时自动推送

4. OLED显示

OLED屏幕显示以下信息:

  • 当前温度(°C)
  • 当前湿度(%)
  • BLE连接状态
  • 设备MAC地址

调试和故障排除

常见问题

1. 传感器读取失败

  • 检查DHT11连接是否正确
  • 确认传感器供电正常
  • 检查引脚定义是否正确

2. OLED不显示

  • 检查I2C连接(SDA/SCL)
  • 确认OLED供电正常
  • 检查I2C地址设置

3. BLE连接问题

  • 确认设备在广播状态
  • 检查设备名称是否正确
  • 重启设备尝试重新连接

4. 数据异常

  • 检查传感器位置是否合适
  • 确认环境条件正常
  • 查看串口输出的调试信息

调试信息

固件通过串口输出详细的调试信息:

  • 设备启动过程
  • BLE连接状态变化
  • 传感器数据读取
  • 错误和警告信息

技术规格

硬件规格

  • 处理器: ESP32-C3 (RISC-V架构)
  • 工作电压: 3.3V
  • 工作温度: -40°C ~ 125°C
  • 蓝牙版本: BLE 5.0

传感器规格

  • 温度范围: -40°C ~ 80°C (DHT11)
  • 湿度范围: 20% ~ 90% (DHT11)
  • 精度: ±2°C (温度), ±5% (湿度)
  • 响应时间: <10秒

BLE规格

  • 设备名称: ESP32C3_BLE_DHT11
  • 广播间隔: 可配置
  • 连接类型: 无连接模式
  • 安全级别: 无配对(可配置)

版本历史

v1.01 (最新版本)

  • ✅ 成功集成ThingsBoard Gateway BLE连接器
  • ✅ 完成24小时稳定性测试
  • ✅ 实现完整IoT数据采集方案
  • ✅ 支持ThingsBoard仪表板可视化

v1.00 (初始版本)

  • 初始版本发布
  • 支持DHT11温湿度传感器
  • 集成OLED显示
  • 标准BLE服务支持
  • 基本连接管理功能

许可证

本项目采用MIT许可证,详见LICENSE文件。

贡献

欢迎提交Issue和Pull Request来改进这个项目。

联系方式

如有问题或建议,请通过以下方式联系:


注意: 本固件仅用于学习和研究目的,请在实际应用中进行充分测试。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages