MPR121 Capacitive Touch Sensor

Component/Hub

The mpr121 sensor platform allows you to use your MPR121 (datasheet, Adafruit) Capacitive Touch Sensor with ESPHome. The I²C is required to be set up in your configuration for this sensor to work.

../../_images/mpr121-full.jpg

MPR121 Capacitive Touch Sensor. Image by Adafruit.

# Example configuration entry
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: "Touch Key 0"
    touch_threshold: 12
    release_threshold: 6

Configuration variables:

The configuration is made up of two parts: The central component, and individual Binary sensors per channel.

  • address (Optional, int): The I²C address of the sensor. Defaults to 0x5A.

  • id (Optional, ID): Set the ID of this sensor.

  • touch_debounce (Optional, int): The minimum length before a touch is recognized. Range is from 0 to 7. Defaults to 0.

  • release_debounce (Optional, int): The minimum length that no touch is recognized before a release event is created. Range is from 0 to 7. Defaults to 0.

  • touch_threshold (Optional, int): The touch threshold for all channels. This defines the sensitivity for touch detection and should be between 5 and 30 (lower = more sensitive). Defaults to 12. Typically the touch threshold is a little bigger than the release threshold.

  • release_threshold (Optional, int): The release defines the sensitivity for touch detection and should be between 5 and 30. Defaults to 6.

Binary Sensor

The mpr121 binary sensor allows you to use your MPR121 with ESPHome. First, setup a Component/Hub and then use this binary sensor platform to create individual binary sensors for each touch sensor.

Configuration variables:

  • name (Optional, string): The name for the binary sensor.

  • mpr121_id (Optional, ID): The ID of the MPR121 defined above. Useful for multiple MPR121’s on the I²C bus

  • id (Optional, ID): Manually specify the ID used for code generation.

  • channel (Required, int): The channel number at the MPR121 the touchkey is connected to.

  • touch_threshold (Optional, int): A per-channel override of the global touch_threshold value. If not specified, uses the global value.

  • release_threshold (Optional, int): A per-channel override of the global release_threshold value. If not specified, uses the global value.

  • All other options from Binary Sensor.

See Also