跳转到内容

MPR121 电容式触摸传感器

mpr121 传感器平台允许您在 ESPHome 中使用 MPR121(数据手册Adafruit)电容式触摸传感器。必须在配置中设置 I²C 才能使此传感器工作。

MPR121 电容式触摸传感器。图片来自 Adafruit
# 示例配置条目
mpr121:
id: mpr121_component
address: 0x5A
touch_debounce: 1
release_debounce: 1
touch_threshold: 10
release_threshold: 7
binary_sensor:
- platform: mpr121
id: touch_key0
channel: 0
name: "触摸键 0"
touch_threshold: 12
release_threshold: 6

配置由两部分组成:中央组件和每个通道的单独二进制传感器。

  • address (可选, 整数): 传感器的 I²C 地址。默认为 0x5A

  • id (可选, ID): 设置此传感器的 ID。

  • touch_debounce (可选, 整数): 识别触摸之前的最小长度。范围是 0 到 7。默认为 0。

  • release_debounce (可选, 整数): 不识别触摸之后创建释放事件的最小长度。范围是 0 到 7。默认为 0。

  • touch_threshold (可选, 整数): 所有通道的触摸阈值。这定义了触摸检测的灵敏度,应该在 5 到 30 之间(越低 = 越灵敏)。默认为 12。通常触摸阈值略大于释放阈值。

  • release_threshold (可选, 整数): 释放定义了触摸检测的灵敏度,应该在 5 到 30 之间。默认为 6。

mpr121 二进制传感器允许您在 ESPHome 中使用 MPR121。首先,设置 组件/集线器,然后使用此二进制传感器平台为每个触摸传感器创建单独的二进制传感器。

配置变量:

  • mpr121_id (可选, ID): 上面定义的 MPR121 的 ID。对于 I²C 总线上的多个 MPR121 很有用
  • channel (*必需, 整数): 触摸键连接到的 MPR121 通道号。
  • touch_threshold (可选, 整数): 全局 touch_threshold 值的每通道覆盖。如果未指定,使用全局值。
  • release_threshold (可选, 整数): 全局 release_threshold 值的每通道覆盖。如果未指定,使用全局值。
  • 所有其他选项来自 二进制传感器

mpr121 还支持将其触摸电极配置为 GPIO 输入和输出。为此,在 mpr121 组件的配置中指定一个 id。然后,在 mpr121 字段中使用此 ID 配置 GPIO 输出或输入。

output:
- id: ext_5v_power
platform: gpio
pin:
mpr121: mpr121_component
number: 10
mode: OUTPUT
inverted: true

number 指的是 MPR121 芯片上的 ELEx 引脚号。只有 ELE4 到 ELE11 可用作 GPIO。

GPIO 和触摸功能可以同时使用,但不能在同一引脚上使用。

当编号较高的引脚用作触摸通道时,将引脚配置为 GPIO 也是无效的。这是因为触摸功能配置为从 ELE0 开始的范围。例如:

  • 使用通道 2 和 5 作为触摸,通道 6 作为 GPIO 是可以的
  • 使用通道 2 和 5 作为触摸,通道 4 作为 GPIO 是不可以的