Example 19: DHT11 temperature and humidity sensor
Example 19: DHT11 temperature and humidity sensor
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Overview
- Wiring
- JSON Configuration Example
- PeriphExec Linkage
- Notes
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
示例19:DHT11 温湿度传感器
实验概述
DHT11 是一款常用的数字温湿度传感器,测量范围:温度 0~50°C(±2°C),湿度 20~90%RH(±5%RH)。FastBee 内置 SENSOR 外设类型(type: 38)直接支持 DHT11/DHT22。
硬件接线
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| DATA | GPIO27 | DHT11 数据引脚 |
DHT11 三线接法:VCC→3.3V/5V, GND→GND, DATA→GPIO(模块内置上拉电阻)。
JSON 配置示例
{
"peripherals": [
{
"id": "dht_01",
"name": "DHT11温湿度",
"type": 38,
"enabled": false,
"pins": [27],
"params": {}
}
]
}外设执行联动
场景1:定时采集温湿度(定时触发)
功能:每5秒读取一次温度和湿度数据
Web界面配置步骤
步骤1:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
DHT温湿度采集 - 上报数据:✅ 启用(读取后上报到云平台)
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 按时间间隔执行 定时模式 选择 间隔定时 每隔X秒执行 间隔秒数 5每5秒采集一次
步骤3:配置动作
点击 添加动作 按钮
填写动作配置:
字段 填写内容 说明 动作类型 选择 传感器读取 读取传感器数据 目标外设 选择 dht_room要读取的传感器 数据字段 temperature读取温度(也可选humidity) 点击 保存 按钮
执行流程:
每5秒
↓
读取 dht_room 传感器
↓
获取 temperature 值
↓
上报到云平台(如果启用上报)💡 提示:DHT11最短采样间隔1秒,建议2秒以上,避免读取失败
场景2:湿度过低报警(轮询触发)
功能:当湿度低于30%时,启动加湿器(继电器控制)
Web界面配置步骤
步骤1:创建规则
- 点击 新增规则
- 填写基础配置:
- 规则名称:
湿度过低报警 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 轮询触发 定时检测湿度值 目标外设 选择 dht_room温湿度传感器 轮询间隔 10秒每10秒检测一次 比较操作 选择 小于 下限报警 比较值 30湿度阈值30%
步骤3:配置动作
点击 添加动作 按钮
填写动作配置:
字段 填写内容 说明 动作类型 选择 高电平 GPIO输出HIGH 目标外设 选择 relay_humidifier加湿器继电器 点击 保存 按钮
执行流程:
每10秒
↓
读取 dht_room 湿度值
↓
判断: humidity < 30 ?
↓ 是
启动加湿器(继电器闭合)⚠️ 注意:此规则只有启动功能,没有关闭功能。建议添加另一个规则:湿度>50%时关闭加湿器
场景3:温湿度显示到OLED(定时触发+多动作)
功能:每3秒在OLED屏幕上显示当前温湿度
前提条件
需要先配置OLED显示屏外设(type: 36),假设ID为 oled_display
Web界面配置步骤
步骤1:创建规则
- 点击 新增规则
- 填写基础配置:
- 规则名称:
温湿度显示 - 上报数据:❌ 禁用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 定时刷新显示 定时模式 选择 间隔定时 每隔X秒执行 间隔秒数 3每3秒刷新一次
步骤3:配置动作(需要3个动作)
动作1:读取温度
- 点击 添加动作 按钮
- 填写:
- 动作类型:选择 传感器读取
- 目标外设:选择
dht_room - 数据字段:
temperature
动作2:读取湿度
- 再次点击 添加动作 按钮
- 填写:
- 动作类型:选择 传感器读取
- 目标外设:选择
dht_room - 数据字段:
humidity
动作3:显示到OLED
第三次点击 添加动作 按钮
填写:
- 动作类型:选择 OLED显示
- 目标外设:选择
oled_display - 显示内容:
温度: ${dht_room.temperature}°C 湿度: ${dht_room.humidity}% - 执行模式:选择 同步
点击 保存 按钮
执行流程:
每3秒
↓
读取温度值
↓
读取湿度值
↓
在OLED上显示两行文本:
第一行: 温度: 25.3°C
第二行: 湿度: 65%💡 变量替换:
${dht_room.temperature}会自动替换为实际读取的温度值
注意事项
- 采样间隔:DHT11 最短采样间隔 1 秒,建议 2 秒以上
- DHT22 兼容:DHT22(AM2302)使用相同配置,精度更高
- 供电:3.3V 和 5V 均可,5V 传输距离更远
- 首次读取:上电后首次读取可能失败,第二次正常
- 线长:数据线不宜超过 20m,长距离需增加上拉电阻
