简体中文
English
简体中文
日本語

Unit EXT.IO2 / Stamp IO ESPHome 组件

Unit EXT.IO2 / Stamp IO 组件通过 I2C 扩展 GPIO、ADC 和 PWM 等输入输出功能。

1. 组件简介

项目 信息
产品名称 Unit EXT.IO2 / Stamp IO
SKU U011-B / S002
主要功能 GPIO、ADC 和 PWM 扩展
通信接口 I2C
默认 I2C 地址 0x45
ESPHome 组件 extio2(外部组件)
ESPHome 版本要求 /

2. 组件说明

外部组件引入

在 YAML 文件中添加 External Components 配置,加载 EXT.IO2 / Stamp IO 组件。

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [extio2]
    refresh: 0s

Hub 组件

在使用功能前,还需添加 Hub 组件:

extio2:
  id: extio2_hub

可配置选项

  • id(可选,ID):为 Hub 组件指定一个 ID。
  • address(可选,int):I2C 地址,默认 0x45
  • reset(可选,boolean):执行软件复位,所有引脚设置为输出模式,输出低电平,默认 true
  • pwm_freq(可选,enum):所有通道的全局 PWM 频率,默认为 1kHz 可选:
    • 2kHz
    • 1kHz
    • 500Hz
    • 250Hz
    • 125Hz
  • 其它 I2C Device 所支持的内容。

GPIO 引脚

EXT.IO2 的引脚可用于任何 ESPHome 接受标准 GPIO 引脚引用的场景,例如 switchbinary_sensor 等组件。

# 数字输出 — 开关
switch:
  - platform: gpio
    name: "EXT.IO2 GPIO 0"
    pin:
      extio2_id: extio2_hub
      number: 0
      mode:
        output: true

# 数字输入 — 二值传感器
binary_sensor:
  - platform: gpio
    name: "EXT.IO2 GPIO 1"
    pin:
      extio2_id: extio2_hub
      number: 1

引脚配置项

  • extio2_id(必填,ID):EXT.IO2 总线控制器的 ID。
  • number(必填,int):引脚编号,范围 07
  • inverted(可选,boolean):反转引脚逻辑,默认为 false
  • mode(必填):选择 inputoutput,并可按模式使用 pulluppulldownopen_drain 标志。

传感器(ADC)

传感器平台可从 8 个支持 ADC 的引脚中读取模拟值。

sensor:
  - platform: extio2
    extio2_id: extio2_hub
    name: "ADC 传感器 0"
    channel: ADC_0
    resolution: 12BIT
    update_interval: 5s

配置项

  • extio2_id(可选,ID):EXT.IO2 总线控制器的 ID。
  • channel(必填,枚举):要读取的 ADC 通道,ADC_0ADC_7
  • resolution(可选,枚举):ADC 分辨率,默认为 8BIT
    • 8BIT:8 位分辨率,范围 0–255。
    • 12BIT:12 位分辨率,范围 0–4095。
  • update_interval(可选,时间):轮询间隔,默认为 60s
  • 其他选项参见 传感器

输出(PWM)

输出平台将任意引脚驱动为 PWM 输出。占空比以 0.01.0 的浮点数表示,内部映射为 0–100%。

output:
  - platform: extio2
    extio2_id: extio2_hub
    id: pwm_ch0
    channel: PWM_0

light:
  - platform: monochromatic
    name: "PWM 灯 0"
    output: pwm_ch0
    effects:
      - pulse:

配置项

  • extio2_id(可选,ID):EXT.IO2 总线控制器的 ID。
  • id(必填,ID):该输出的 ID。
  • channel(必填,枚举):要使用的 PWM 通道,PWM_0PWM_7
  • 其他选项参见 浮点输出
PWM 频率
PWM 频率通过总线控制器的 pwm_freq 全局设置,所有 PWM 通道共享同一频率。

数值(舵机)

数值平台用于控制舵机,提供两种控制模式:角度(度)和脉冲宽度(微秒)。

角度模式

以角度(0–180°)控制舵机位置。

number:
  - platform: extio2
    extio2_id: extio2_hub
    name: "舵机 0"
    type: angle
    channel: SERVO_0
    min_value: 0
    max_value: 180
    step: 3

脉冲模式

以原始脉冲宽度(微秒)控制舵机。

number:
  - platform: extio2
    extio2_id: extio2_hub
    name: "舵机 1"
    type: pulse
    channel: SERVO_1
    min_value: 500
    max_value: 2500
    step: 100

配置项

  • extio2_id(可选,ID):EXT.IO2 总线控制器的 ID。
  • type(必填,枚举):舵机控制模式。
    • angle:以角度控制。
    • pulse:以脉冲宽度控制。
  • channel(必填,枚举):要使用的舵机通道,SERVO_0SERVO_7
  • min_value(可选,float):最小值,角度模式默认 0.0,脉冲模式默认 500.0
  • max_value(可选,float):最大值,角度模式默认 180.0,脉冲模式默认 2500.0
  • step(可选,float):步进值,角度模式默认 3.0,脉冲模式默认 100.0
  • 其他选项参见 数值
模式 单位 最小值 最大值 步进
angle ° 0 180 3
pulse us 500 2500 100

灯光

灯光平台支持两种模式:单个 RGB LED(指定某一引脚)或可寻址 LED 灯条(从引脚 0 开始的连续多个引脚)。

单个 RGB 灯

控制指定引脚上的一个 RGB LED。

light:
  - platform: extio2
    extio2_id: extio2_hub
    name: "EXT.IO2 灯光 2"
    type: light
    channel: LIGHT_2

可寻址灯条

控制从引脚 0 开始的连续多个 RGB LED,支持所有 ESPHome 可寻址灯光效果。

light:
  - platform: extio2
    extio2_id: extio2_hub
    name: "灯条"
    type: addressable_light
    num_leds: 8

配置项

  • extio2_id(可选,ID):EXT.IO2 总线控制器的 ID。
  • type(必填,枚举):灯光模式。
    • light:单个 RGB LED。
    • addressable_light:可寻址 LED 灯条。
  • channellight 类型,必填,枚举):要使用的引脚,LIGHT_0LIGHT_7
  • num_ledsaddressable_light 类型,必填,int):LED 数量,范围 18,从引脚 0 开始依次分配。
  • 其他选项参见 灯光
灯条引脚
可寻址灯条的引脚必须从引脚 0 开始连续分配。例如 num_leds: 3 将使用引脚 0、1、2。硬件不提供亮度控制寄存器,亮度通过软件缩放 RGB 值实现。

3. 参考案例

以下案例集中展示 GPIO 输入输出、ADC、PWM、舵机和 RGB 灯光平台。主控的 I2C 引脚请根据实际连接修改。

i2c:
  sda: GPIO2
  scl: GPIO1

extio2:
  id: extio2_hub
  address: 0x45
  reset: true
  pwm_freq: 1kHz

# GPIO — 数字输出
switch:
  - platform: gpio
    name: "EXT.IO2 GPIO 0"
    pin:
      extio2_id: extio2_hub
      number: 0
      mode:
        output: true

# GPIO — 数字输入
binary_sensor:
  - platform: gpio
    name: "EXT.IO2 GPIO 1"
    pin:
      extio2_id: extio2_hub
      number: 1
      mode:
        input: true
        pullup: true

# ADC 传感器
sensor:
  - platform: extio2
    extio2_id: extio2_hub
    name: "ADC 传感器 2"
    channel: ADC_2
    resolution: 12BIT
    update_interval: 5s

# PWM 输出,用作单色灯
output:
  - platform: extio2
    extio2_id: extio2_hub
    id: pwm_ch3
    channel: PWM_3

light:
  - platform: monochromatic
    name: "PWM 灯 3"
    output: pwm_ch3
    effects:
      - pulse:

  # 单个 RGB LED
  - platform: extio2
    extio2_id: extio2_hub
    name: "RGB 灯光 6"
    type: light
    channel: LIGHT_6

  # 可寻址 LED 灯条(全部 8 个引脚)
  - platform: extio2
    extio2_id: extio2_hub
    name: "灯条"
    type: addressable_light
    num_leds: 8

number:
  # 舵机 — 角度控制
  - platform: extio2
    extio2_id: extio2_hub
    name: "舵机 4"
    type: angle
    channel: SERVO_4

  # 舵机 — 脉冲宽度控制
  - platform: extio2
    extio2_id: extio2_hub
    name: "舵机 5"
    type: pulse
    channel: SERVO_5

4. 相关链接

Page Tools
PDF
On This Page