示例20:超声波测距(HC-SR04)
大约 3 分钟
示例20:超声波测距(HC-SR04)
实验概述
HC-SR04 超声波传感器通过发射和接收超声波来测量距离,测量范围 2~400cm,精度约 3mm。FastBee 内置 SENSOR 外设类型(type: 38),配合 category: ultrasonic 支持超声波测距。
本实验优先验证固定距离下的稳定读数,再接入报警规则。若固定距离读数不稳定,先排查供电、电平转换、反射面和 Trig/Echo 接线,不要直接调规则阈值。
硬件接线
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| TRIG | GPIO14 | HC-SR04 触发引脚 |
| ECHO | GPIO27 | HC-SR04 回响引脚 |
TRIG 发送 10μs 高电平脉冲触发测量,ECHO 返回高电平持续时间表示距离。
JSON 配置示例
{
"peripherals": [
{
"id": "ultrasonic_01",
"name": "超声波测距",
"type": 38,
"enabled": false,
"pins": [14, 27],
"params": {
"category": "ultrasonic"
}
}
]
}外设执行联动
场景1:定时测距(定时触发)
功能:每1秒读取一次超声波距离值
Web界面配置步骤
步骤1:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
超声波定时测距 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 定时采集 定时模式 选择 固定间隔 按毫秒间隔 间隔时间 10001秒
步骤3:配置动作
点击 添加动作 按钮
填写:
- 动作类型:选择 读取传感器
- 目标外设:选择
ultrasonic_01 - 数据字段:
distance
点击 保存 按钮
场景2:近距离报警(轮询触发)
功能:每0.5秒检测距离,当距离小于20cm时触发蜂鸣器短鸣报警
Web界面配置步骤
步骤1:确保已配置蜂鸣器外设
- 外设ID:
buzzer_gpio - 类型:GPIO输出
步骤2:创建规则
- 点击 新增规则
- 填写基础配置:
- 规则名称:
近距离报警 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤3:配置触发器(轮询触发)
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 轮询触发 定时检测条件 目标外设 选择 ultrasonic_01超声波传感器 轮询间隔 5000.5秒 条件表达式 distance < 20距离小于20cm
步骤4:配置动作(需要3个动作)
动作1:蜂鸣器响
- 点击 添加动作 按钮
- 填写:
- 动作类型:选择 高电平
- 目标外设:选择
buzzer_gpio
动作2:延时200ms
- 再次点击 添加动作 按钮
- 填写:
- 动作类型:选择 延时
- 动作参数:
200
动作3:蜂鸣器停
第三次点击 添加动作 按钮
填写:
- 动作类型:选择 低电平
- 目标外设:选择
buzzer_gpio
点击 保存 按钮
HC-SR04特性说明
| 特性 | 参数 | 说明 |
|---|---|---|
| 测量范围 | 2cm ~ 400cm | 有效测量距离 |
| 精度 | ±3mm | 高精度 |
| 盲区 | 2cm | 最小测量距离 |
| 测量角度 | 15° | 声波锥形发射角 |
| 采样间隔 | ≥60ms | 避免回波干扰 |
注意事项
- 供电:HC-SR04 需要 5V 供电,ECHO 输出为 5V,需分压到 3.3V 再接 ESP32
- 盲区:最小测量距离 2cm,低于此距离不可靠
- 测量角度:声波锥形发射角约 15°,狭窄空间可能有反射干扰
- 温度补偿:声速随温度变化(20°C约343m/s),精确测量需补偿
- 采样频率:建议不低于 60ms 间隔,避免前后回波干扰
- 引脚顺序:pins 数组第一个为 TRIG,第二个为 ECHO
