0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用BW21-CBV-Kit做一个蓝牙温湿度计

AIoT行业洞察 来源:AIoT行业洞察 作者:AIoT行业洞察 2025-03-19 10:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

以下作品由安信可社区用户

无垠的广袤制作

本文介绍了安信可 BW21-CBV-Kit 开发板实现蓝牙温湿度计的DIY制作流程。

01简介

介绍了 DHT11 传感器(模块)以及该传感器与开发板的硬件连接。

DHT11

DHT11 温湿度传感器

wKgZO2faMQOARuHtAAAl9xsbCtE219.jpg

图中引脚标识分别表示

wKgZPGfaMQOABTDhAAAqWU7D_YE032.jpg

外部电路原理

wKgZO2faMQmAC11PAABXZOXsbYU544.jpg

这里采用 PCB 设计项目:DHT11 模块

https://oshwhub.com/jinleili/dht11-module

wKgZPGfaMQqAUojwAACgV0gCQdw735.jpg

02硬件连接

wKgZO2faMQqAD73vAADEE8uBJVg862.jpg

这里将 DHT11 的 Data 引脚与开发板 Arduino Pin - 8 相连。

wKgZPGfaMQuAY8ccAADRvwXwTzE229.jpg

工程方案采用官方例程 DHT_over_BLEUart

wKgZO2faMRCABPN8AAHJNnfcuCY237.jpg

默认串口发送数据的时间间隔为 5 秒,可调整更新时间。

03工程测试

这里介绍 Demo 测试流程及效果展示。

代码

#include "BLEDevice.h"
#include "DHT.h"
#define UART_SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"
#define STRING_BUF_SIZE 100
// The digital pin we're connected to.
#define DHTPIN 8
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
// #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// #define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
BLEService UartService(UART_SERVICE_UUID);
BLECharacteristic Rx(CHARACTERISTIC_UUID_RX);
BLECharacteristic Tx(CHARACTERISTIC_UUID_TX);
BLEAdvertData advdata;
BLEAdvertData scndata;
bool notify = false;
void writeCB(BLECharacteristic* chr, uint8_t connID)
{
printf("Characteristic %s write by connection %d :n", chr->getUUID().str(), connID);
if (chr->getDataLen() > 0) {
Serial.print("Received string: ");
Serial.print(chr->readString());
Serial.println();
}
}
void notifCB(BLECharacteristic* chr, uint8_t connID, uint16_t cccd)
{
if (cccd & GATT_CLIENT_CHAR_CONFIG_NOTIFY) {
printf("Notifications enabled on Characteristic %s for connection %d n", chr->getUUID().str(), connID);
notify = true;
} else {
printf("Notifications disabled on Characteristic %s for connection %d n", chr->getUUID().str(), connID);
notify = false;
}
}
void setup()
{
Serial.begin(115200);
advdata.addFlags();
advdata.addCompleteName("AMEBA_BLE_DEV");
scndata.addCompleteServices(BLEUUID(UART_SERVICE_UUID));
Rx.setWriteProperty(true);
Rx.setWritePermissions(GATT_PERM_WRITE);
Rx.setWriteCallback(writeCB);
Rx.setBufferLen(STRING_BUF_SIZE);
Tx.setReadProperty(true);
Tx.setReadPermissions(GATT_PERM_READ);
Tx.setNotifyProperty(true);
Tx.setCCCDCallback(notifCB);
Tx.setBufferLen(STRING_BUF_SIZE);
UartService.addCharacteristic(Rx);
UartService.addCharacteristic(Tx);
BLE.init();
BLE.configAdvert()->setAdvData(advdata);
BLE.configAdvert()->setScanRspData(scndata);
BLE.configServer(1);
BLE.addService(UartService);
BLE.beginPeripheral();
dht.begin();
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
String msg = ("Humidity: " + String((int)h) + "%t" + "Temperature: " + String((int)t) + "°Cn");
Tx.writeString(msg);
if (BLE.connected(0) && notify) {
Tx.notify(0);
}
delay(2000);
}

细节请参考该代码的官方指导:BLE – DHT over BLE UART – Realtek IoT/Wi-Fi MCU Solutions

https://www.amebaiot.com/en/amebapro2-arduino-ble-dht/

上传

1.按住 BOOT(下载) 按钮的同时按一下 EN(复位)按钮,进入下载模式;

2.选择目标串口对应的端口号,点击 Download 按钮,待上传成功提示 Success,完成固件上传;

3.再次短按 EN 键复位,执行程序。

数据读取

1.手机端安装蓝牙调试应用,Realtek 官方推荐

Adafruit Bluefruit LE Connect 。

2.进入应用,扫描周围蓝牙设备,选择目标 AMEBA_BLE_DEV 设备 Connect,选择并进入 UART 选项。

wKgZO2faMRaASp7OAACy8BYhmzc633.jpg

3.此时接收到设备通过蓝牙串口发送的温湿度信息。

wKgZPGfaMReAbVkQAACmU70Ymdo408.jpg

效果

wKgZO2faMRyAWtecAAAiwOezqqc388.jpg

wKgZPGfaMSKAf96KAAB12uRLgRE185.jpg

注意到 UART 右上方的 MQTT 标识,点击进入并配置相关参数,即可实现远程数据监测。

04MQTT连接

介绍了蓝牙传输温湿度数据通过 MQTT 协议上传至 EMQX 平台的流程,以便实现远程数据监测及管理。

环境搭建

1.安装 Docker 容器

2.本地下载并部署 EMQX 平台

wKgZO2faMSKASNAjAADL9CHuglw047.jpg

配置 EMQX
(1)浏览器打开网址 http://localhost:18083/ ,初始登录账户名 admin 密码 public ;
(2)依次打开 访问控制 - 客户端认证 - 创建 - Password-Based - 内置数据库 - (默认配置)- 创建 ;
(3)用户管理 - 新建用户 - 自定义用户名和密码(建议 admin).
连接 EMQX 与 HA (1)命令行或 PowerShell 输入 ipconfig 获取本地计算机 IPv4 地址,如 42.34.25.153
(2)配置 Home Assistant ,依次点击设置 - 设备与服务 - 添加集成 - 搜索 MQTT - 填写代理信息。
代理栏输入计算机 IP 地址,端口 1883,用户名和密码为 EMQX 中创建的用户信息。
(3)点击 提交 后显示 成功创建 MQTT ,此时 集成 选项下出现 MQTT 条目,EMQX 网页 集群 的 总连接数 和 在线连接数 由 0 变为 1,表明 MQTT 设备已连接。

3.部署 HomeAssistant 智能家居平台

(1)下载部署文件 github 并解压得到 docker-compose.yml 保存至上述 homeassistant 文件夹;
(2)Windows 打开 命令提示符 或 Windows PowerShell,输入如下代码实现自动下载镜像
cd C:homeassistant
docker-compose.yml
docker-compose up
即可在 Docker 容器中创建 Home Assistant 镜像;
(3)浏览器输入网址 **http://localhost:8123/ 进入Home Assistant 主界面,创建智能家居账号。

4.安装部署完成后,可运行 EMQX 和 HA 平台,点击 Port 链接,进入后台并进行相关配置。

wKgZPGfaMSOAd-UtAADw-Amok2w485.jpg

05客户端配置

打开 Bluefruit BLE Connect 应用,扫描并连接目标蓝牙设备,进入 UART - MQTT,设置参数如下

wKgZO2faMSOAA2ELAACB8Fz20B4519.jpg

其中 Address 填写本地计算机 IP 地址,Publish 填写自定义监听主题,Usema 和 Pass 分别填写 EMQX 平台创建的用户名和密码,点击上方的 Connect 即可。

效果

这里使用 MQTTX 软件测试传输。

新建连接,配置名称和 ip 地址,新建主题(与手机应用设置的主题一致),启动。

wKgZPGfaMSSAFDkZAADPS4ev0Z8388.jpg

MQTTX 软件测试数据传输效果

wKgZO2faMSSAY68UAAAl4cSsAm0158.jpg

06总结

本文介绍了 Ai-Thinker BW21-CBV-Kit 开发套件结合 DHT11 温湿度传感器,实现蓝牙温湿度计的 DIY 项目设计流程,包括工程代码编译、上传、蓝牙设备调试,并在此基础上拓展实现基于 MQTT 协议的远程数据接收,还可在此基础上实现 HomeAssistant 平台的数据监控,为相关领域在传感器的智能化应用方面提供了参考。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    119

    文章

    6228

    浏览量

    177583
  • AI
    AI
    +关注

    关注

    90

    文章

    38189

    浏览量

    297009
  • 温湿度计
    +关注

    关注

    1

    文章

    27

    浏览量

    8741
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    小安派BW21-CBV-Kit入门教程之主机模式对Arduino UNO发送数据

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别,可以扩展出无限可能。
    的头像 发表于 05-29 10:33 765次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>入门教程之主机模式对Arduino UNO发送数据

    树莓派RP2350 DIY 桌面动态温湿度计

    桌面动态温湿度计本文介绍了DFrobotBeetleRP2350开发板结合DHT11模块、锂电池模块、随机眨眼动画,实现OLED显示的桌面动态温湿度计的项目设计。、项目介绍本项目包括工作原理:ADC电压采集与电量转换工程调试:
    的头像 发表于 05-27 08:05 688次阅读
    <b class='flag-5'>用</b>树莓派RP2350 DIY 桌面动态<b class='flag-5'>温湿度计</b>

    小安派BW21-CBV-Kit入门教程之主机模式读取Arduino UNO从机

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别,可以扩展出无限可能。
    的头像 发表于 05-21 15:38 972次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>入门教程之主机模式读取Arduino UNO从机

    小安派BW21-CBV-Kit入门教程之OLED显示

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别,可以扩展出无限可能。
    的头像 发表于 05-17 10:54 1396次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>入门教程之OLED显示

    小安派BW21-CBV-Kit入门教程之LCD屏显示数据

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别,可以扩展出无限可能。
    的头像 发表于 04-23 10:45 662次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>入门教程之LCD屏显示数据

    小安派BW21-CBV-Kit开发板教程——I2C之主机扫描设备

    该示例将扫描 I2C 总线,查找连接到 BW21-CBV-Kit 的设备。找到设备后,串行监视器上将显示该设备的地址。
    的头像 发表于 04-15 09:29 1576次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>开发板教程——I2C之主机扫描设备

    安信可AI人脸识别开发板BW21-CBV-Kit驱动墨水屏

    HomeAssistant,实时查看Ai摄像头画面? 【教程】小安派BW21-CBV-Kit——读取 DHT 温湿度传感器 以下作品由安信可社区用户 iiv制作 大家好,今天试着BW21-C
    的头像 发表于 03-06 08:47 723次阅读
    <b class='flag-5'>用</b>安信可AI人脸识别开发板<b class='flag-5'>BW21-CBV-Kit</b>驱动墨水屏

    AI人脸识别开发板BW21-CBV-Kit驱动墨水屏

    试着BW21-CBV-Kit点亮2.9寸墨水屏,开发板例程非常丰富,在arduino上开发的话上手超级容易。
    的头像 发表于 03-04 18:24 1547次阅读
    <b class='flag-5'>用</b>AI人脸识别开发板<b class='flag-5'>BW21-CBV-Kit</b>驱动墨水屏

    直接送!50套小安派 BW21-CBV-Kit Ai图像识别开发板!

    “免费拿板子” 活动又开始啦! 各位小伙伴们好! 2025 年新年第波活动来咯~ ️ 相信各位也都知道,社区在年前疯狂更新了小安派 BW21-CBV-Kit 的教程,此次给各位申请了 50 套
    的头像 发表于 02-19 14:37 683次阅读
    直接送!50套小安派 <b class='flag-5'>BW21-CBV-Kit</b> Ai图像识别开发板!

    小安派BW21-CBV-Kit入门教程之读取DHT温湿度传感器

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别,可以扩展出无限可能。
    的头像 发表于 02-18 13:52 1150次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>入门教程之读取DHT<b class='flag-5'>温湿度</b>传感器

    BW21-CBV-Kit如何接入HomeAssistant实时查看AI摄像头画面

    看过这么多关于 HomeAssistant 教程,应该有很多小伙伴已经搭建起自己的 HomeAssistant 了,HomeAssistant 还是很强大的,只要设备可以进行 RTSP 推流就可以在 HomeAssistant 上查看视频流数据,刚好 BW21-CBV-Kit 的示例附带 RTSP,分享
    的头像 发表于 02-18 13:48 1077次阅读
    <b class='flag-5'>BW21-CBV-Kit</b>如何接入HomeAssistant实时查看AI摄像头画面

    小安派BW21-CBV-Kit入门教程之超声波测距

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别,可以扩展出无限可能。
    的头像 发表于 02-11 11:38 796次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>入门教程之超声波测距

    小安派BW21-CBV-Kit入门教程:中断控制LED

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别
    的头像 发表于 01-21 11:32 1004次阅读
    小安派<b class='flag-5'>BW21-CBV-Kit</b>入门教程:中断控制LED

    BW21-CBV-Kit快速入门之Arduino环境搭建

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别,可以扩展出无限可能。
    的头像 发表于 01-15 17:07 1338次阅读
    <b class='flag-5'>BW21-CBV-Kit</b>快速入门之Arduino环境搭建

    BW21-CBV-Kit的使用教程

    作为款本地AI图象识别开发板,BW21-CBV-Kit它能够独自运行目标识别模型。2.4GHz+5GHz的双频Wi-Fi,提供高性能的无线传输能力,让图象传输更加流畅。丰富的接口,搭配着AI识别
    的头像 发表于 01-03 11:30 1319次阅读
    <b class='flag-5'>BW21-CBV-Kit</b>的使用教程