按键多模式控制场景
大约 4 分钟
按键多模式控制场景
场景描述
通过一个物理按键实现多种控制模式:单击开灯、双击关灯、长按2秒切换模式、长按5秒重启设备。
所需外设
| 外设 | 类型 | 说明 |
|---|---|---|
| btn1 | GPIO_DIGITAL_INPUT_PULLUP(13) | 功能按键 |
| relay1 | GPIO_DIGITAL_OUTPUT(12) | 灯继电器 |
| led1 | GPIO_DIGITAL_OUTPUT(12) | 状态指示灯 |
完整配置流程
方式1:Web界面配置(推荐)
本场景需要先添加按键、继电器和状态灯,再用外设执行规则把单击、双击、长按等事件映射到不同动作。
第一步:配置外设
步骤1:进入外设管理页面
- 打开浏览器访问 ESP32 IP 地址
- 登录后点击左侧菜单 外设配置
步骤2:添加功能按键
点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID btn1功能按键 名称 功能按键显示名称 外设类型 GPIO数字输入上拉 (type: 13) 按键输入 引脚配置 0按键接GPIO0 初始状态 0默认 点击 保存
💡 提示:按键一端接GPIO,另一端接GND,使用内部上拉
步骤3:添加灯继电器
再次点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID relay1灯继电器 名称 灯继电器显示名称 外设类型 GPIO数字输出 (type: 12) 继电器控制 引脚配置 15IN对应GPIO15 初始状态 0默认关闭 点击 保存
步骤4:添加状态指示灯
第三次点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID led1状态指示灯 名称 状态指示灯显示名称 外设类型 GPIO数字输出 (type: 12) LED控制 引脚配置 2板载LED或外接 初始状态 0默认关闭 点击 保存
第二步:配置外设执行规则
规则1:单击开灯
切换到 外设执行管理 标签
点击 新增规则 按钮
填写基础配置:
- 规则名称:
单击开灯 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
配置触发器:
- 触发类型:选择 事件触发
- 事件ID:选择
button_click(按键单击) - 目标外设ID:填写
btn1(指定按键)
配置动作:
- 动作类型:选择 高电平
- 目标外设:选择
relay1
点击 保存
规则2:双击关灯
创建规则,名称:
双击关灯触发器配置:
- 触发类型:选择 事件触发
- 事件ID:选择
button_double_click(按键双击) - 目标外设ID:填写
btn1
动作配置:
- 动作类型:选择 低电平
- 目标外设:选择
relay1
点击 保存
规则3:长按2秒闪烁指示灯
创建规则,名称:
长按模式切换触发器配置:
- 触发类型:选择 事件触发
- 事件ID:选择
button_long_press_2s(长按2秒) - 目标外设ID:填写
btn1
动作配置:
- 动作类型:选择 闪烁
- 目标外设:选择
led1 - 闪烁间隔:
200(200ms)
点击 保存
规则4:长按5秒重启设备
创建规则,名称:
长按重启触发器配置:
- 触发类型:选择 事件触发
- 事件ID:选择
button_long_press_5s(长按5秒) - 目标外设ID:填写
btn1
动作配置:
- 动作类型:选择 系统重启
- 执行延时:
500(延时500ms让前置动作完成)
点击 保存
💡 提示:
- 按键事件优先级:按下 → 2s长按 → 5s长按 → 10s长按
- 系统自带50ms软件消抖
- 每个阶段互不干扰
方式2:JSON配置文件导入
按键事件优先级
长按事件按时间递进触发:按下 → 2s长按 → 5s长按 → 10s长按。每个阶段互不干扰。
注意事项
- 指定按键:
triggerPeriphId: "btn1"确保只响应指定按键 - 消抖内置:系统自带 50ms 软件消抖
- 上拉模式:按键一端接 GPIO,另一端接 GND,使用内部上拉
