Unit EXT.IO2是一款IO 拓展单元,模块基于 STM32F030 主控开发,采用 I2C 通信接口,提供 8 路 IO 拓展。每路 IO 支持独立配置 数字输入 / 输出,ADC,SERVO 控制,RGB LED 控制模式。支持配置设备 I2C 地址,这意味着在同一 I2C 总线上允许用户挂载多个 Unit EXT.IO2 UNIT 拓展出更多的 IO 资源。适用于多路数字 / 模拟信号采集,与灯光 / 舵机控制等应用场景。
Stamp IO 是一款IO 拓展板, 该拓展板基于 STM32F030 主控开发,采用 I2C 通信接口,提供 8 路 IO 拓展。每路 IO 支持独立配置数字输入 / 输出, ADC, SERVO 控制, RGB LED 控制模式。适用于多路数字 / 模拟信号采集,与灯光 / 舵机控制等应用场景。
这两个设备的通信协议一致,需要通过 I2C 连接外部主控才能使用
Unit EXT.IO2/ Stamp IO 只是 IO 拓展平台,需要额外的主控设备(如 Atom 系列、Stamp 系列, Stick 系列,Core/Basic 系列等)才能集成至 Home Assistant。
拓展功能需要 I2C 组件:
I²C 组件:
# Example configuration entry for ESP32
i2c:
sda: GPIOXX
scl: GPIOXX
scan: true 这里的 GPIO 引脚会因为使用的主控设备不一而不同。比如使用 Atom Lite 作为主控:
# I2C Bus on Grove Port (HY2.0-4P)
i2c:
sda: GPIO26
scl: GPIO32 在使用功能前,还需添加 Hub 组件:
external_components:
- source: github://m5stack/esphome-yaml/components@main
components: [extio2]
refresh: 0s
extio2:
id: extio2_hub 0x45.true.1kHz 可选:2kHz1kHz500Hz250Hz125HzEXT.IO2 的引脚可用于任何 ESPHome 接受标准 GPIO 引脚引用的场景,例如 switch、binary_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 0–7。false。pullup、pulldown、open_drain 等选项在配置中不支持传感器平台可从 8 个支持 ADC 的引脚中读取模拟值。
sensor:
- platform: extio2
extio2_id: extio2_hub
name: "ADC 传感器 0"
channel: ADC_0
resolution: 12BIT
update_interval: 5s ADC_0 至 ADC_7。8BIT。8BIT:8 位分辨率,范围 0–255。12BIT:12 位分辨率,范围 0–4095。60s。输出平台将任意引脚驱动为 PWM 输出。占空比以 0.0 到 1.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: PWM_0 至 PWM_7。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 angle:以角度控制。pulse:以脉冲宽度控制。SERVO_0 至 SERVO_7。0.0,脉冲模式默认 500.0。180.0,脉冲模式默认 2500.0。3.0,脉冲模式默认 100.0。| 模式 | 单位 | 最小值 | 最大值 | 步进 |
|---|---|---|---|---|
angle | ° | 0 | 180 | 3 |
pulse | us | 500 | 2500 | 100 |
灯光平台支持两种模式:单个 RGB LED(指定某一引脚)或可寻址 LED 灯条(从引脚 0 开始的连续多个引脚)。
控制指定引脚上的一个 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 light:单个 RGB LED。addressable_light:可寻址 LED 灯条。light 类型必填,枚举):要使用的引脚,LIGHT_0 至 LIGHT_7。addressable_light 类型必填,int):LED 数量,范围 1–8,从引脚 0 开始依次分配。num_leds: 3 将使用引脚 0、1、2。硬件不提供亮度控制寄存器,亮度通过软件缩放 RGB 值实现。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:
# 舵机 — 角度控制
- platform: extio2
extio2_id: extio2_hub
name: "舵机 4"
type: angle
channel: SERVO_4
number:
# 舵机 — 脉冲宽度控制
- platform: extio2
extio2_id: extio2_hub
name: "舵机 5"
type: pulse
channel: SERVO_5
# 单个 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