场景:烟雾报警 + 蜂鸣器 + MQTT 上报
大约 4 分钟
场景:烟雾报警 + 蜂鸣器 + MQTT 上报
场景描述
使用 MQ-2 烟雾传感器通过 ADC 采集烟雾浓度值,当浓度超过设定阈值时触发蜂鸣器报警,同时通过 MQTT 上报设备告警事件到 IoT 平台,实现本地+远程双重报警。
硬件清单
| 模块 | 型号 | 数量 | 接线 |
|---|---|---|---|
| 烟雾传感器 | MQ-2 | 1 | AO→GPIO34 |
| 蜂鸣器 | 有源蜂鸣器模块 | 1 | IN→GPIO25 |
| LED指示灯 | 红色LED | 1 | →GPIO2 (板载) |
完整配置流程
方式1:Web界面配置(推荐)
本场景需要先添加烟雾 ADC、蜂鸣器和指示灯,再用外设执行规则实现阈值报警和 MQTT 上报。
烟雾报警场景按闭环拆解为:ADC 采集浓度、规则判断阈值、蜂鸣器和指示灯执行动作、MQTT 上报告警事件。
第一步:配置外设
步骤1:进入外设管理页面
- 打开浏览器访问 ESP32 IP 地址
- 登录后点击左侧菜单 外设配置
步骤2:添加MQ-2烟雾传感器
点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID smoke_sensor烟雾传感器MQ2 名称 烟雾传感器MQ2显示名称 外设类型 GPIO模拟输入 (type: 15) ADC采集 引脚配置 34AO对应GPIO34(ADC1) 衰减 11dB(3)0-3.3V量程 分辨率 12位0-4095 采样率 55Hz 点击 保存
步骤3:添加报警蜂鸣器
再次点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID buzzer_01报警蜂鸣器 名称 报警蜂鸣器显示名称 外设类型 GPIO数字输出 (type: 12) 蜂鸣器控制 引脚配置 25IN对应GPIO25 初始状态 0默认关闭 点击 保存
步骤4:添加报警LED
第三次点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID led_alarm报警LED 名称 报警LED显示名称 外设类型 GPIO数字输出 (type: 12) LED控制 引脚配置 2板载LED 初始状态 0默认关闭 点击 保存
第二步:配置外设执行规则
规则1:定时采集烟雾浓度
切换到 外设执行管理 标签
点击 新增规则 按钮
填写基础配置:
- 规则名称:
烟雾浓度采集 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
配置触发器:
- 触发类型:选择 定时触发
- 定时模式:选择 固定间隔
- 间隔时间:
5(5秒,烟雾检测需要高响应速度)
配置动作:
- 动作类型:选择 传感器读取
- 目标外设:选择
smoke_sensor - 数据字段:
analog
点击 保存
规则2:烟雾超限报警
创建规则,名称:
烟雾超限报警触发器配置:
- 触发类型:选择 事件触发
- 事件ID:填写
ds:smoke_sensor_analog - 运算符:选择
大于 (>) - 阈值:
2000(ADC值,约中等烟雾浓度)
动作配置(需要3个动作):
- 动作1:选择 闪烁,目标
buzzer_01,间隔300(300ms快速鸣叫) - 动作2:选择 闪烁,目标
led_alarm,间隔500(500ms闪烁) - 动作3:选择 触发事件,事件ID
smoke_alarm
- 动作1:选择 闪烁,目标
点击 保存
规则3:烟雾恢复正常
创建规则,名称:
烟雾恢复正常触发器配置:
- 触发类型:选择 事件触发
- 事件ID:填写
ds:smoke_sensor_analog - 运算符:选择
小于 (<) - 阈值:
1000(低于报警阈值,形成迟滞)
动作配置(需要2个动作):
- 动作1:选择 低电平,目标
buzzer_01 - 动作2:选择 低电平,目标
led_alarm
- 动作1:选择 低电平,目标
点击 保存
💡 提示:报警阈值2000,恢复阈值1000,形成1000的迟滞区间,防止反复报警
方式2:JSON配置文件导入
工作原理
- MQ-2 传感器输出模拟电压,烟雾浓度越高电压越高
- ADC 读取范围 0~4095(对应 0~3.3V)
- 阈值 2000 约对应中等烟雾浓度(需根据实际环境校准)
- 恢复阈值 1000 形成迟滞,避免在阈值附近反复报警
参数调整
| 参数 | 建议值 | 说明 |
|---|---|---|
| 采集间隔 | 5s | 烟雾检测需要较高响应速度 |
| 报警阈值 | 2000 | ADC原始值,需根据环境校准 |
| 恢复阈值 | 1000 | 低于报警阈值,形成迟滞区间 |
| 蜂鸣器闪烁间隔 | 300ms | 快速鸣叫提示危险 |
注意事项
- MQ-2 传感器需要 5~10 分钟预热时间才能稳定
- 新传感器首次使用需预热 24 小时以上
- 报警阈值需根据实际环境和应用场景校准
- 建议定期维护传感器(灰尘积累会影响灵敏度)
