跳转到内容

M5Stack Unit 8 Angle

m5stack_8angle 平台允许您在 ESPHome 中使用 m5angle 输入设备。 它具有 8 个旋钮、一个开关,并且可以单独驱动 9 个 RGB LED。

m5stack_8angle 单元。

m5stack_8angle 组件通过 I²C 总线进行通信,默认地址为 0x43。

# 示例配置条目
m5stack_8angle:
id: m5stack_8angle_base
  • id (可选, ID): 手动指定用于代码生成的 ID。
  • i2c_id (可选, ID): 如果需要,手动指定 I²C 组件 的 ID。
  • address (可选, int): 手动指定设备的 I²C 地址。默认为 0x43

8 个旋钮的位置可以作为传感器使用,值范围为 0-1(0 表示最左侧位置)。

sensor:
- platform: m5stack_8angle
m5stack_8angle_id: m5stack_8angle_base
channel: 1
name: "旋钮 1"
bit_depth: 12 bit
- platform: m5stack_8angle
m5stack_8angle_id: m5stack_8angle_base
channel: 2
name: "旋钮 2"
  • update_interval (可选, 时间): 检查传感器的时间间隔。默认为 10s
  • bit_depth (可选, 12 bit8 bit 之一): 决定模拟读数的精度,默认为 8bit
  • raw (可选, 布尔值): 如果为 true,传感器返回旋钮的原始读数值。
  • 所有其他选项来自 传感器

一个指示设备上开关状态的二值传感器。

binary_sensor:
- platform: m5stack_8angle
m5stack_8angle_id: m5stack_8angle_base
name: "开关"
  • update_interval (可选, 时间): 检查传感器的时间间隔。默认为 10s
  • 所有其他选项来自 二值传感器

9 个 LED 可用作可寻址灯光输出。

light:
- platform: m5stack_8angle
m5stack_8angle_id: m5stack_8angle_base
id: m8_angle_leds
name: "灯光"
effects:
- addressable_rainbow:
  • 所有选项来自 灯光

在 Lambda 中读取旋钮位置和开关状态

Section titled “在 Lambda 中读取旋钮位置和开关状态”

您可以通过 float value = id(...)->read_knob_pos(index); 触发读取单个旋钮的位置,通过 int value = id(...)->read_switch(); 读取开关状态。 返回负值表示读取状态失败。

# 示例配置条目:让 LED 指示旋钮位置
light:
- platform: m5stack_8angle
m5stack_8angle_id: m5stack_8angle_base
id: m8_angle_leds
name: "灯光"
effects:
- addressable_lambda:
name: "指示数值"
update_interval: 200ms
lambda: |-
ESPHSVColor hsv;
hsv.value = 255;
hsv.saturation = 240;
auto parent = id(m5stack_8angle_base);
for (int i=0; i < 8; i++) {
auto kpos = parent->read_knob_pos(i);
if (kpos >= 0){
hsv.hue = kpos * 200;
it[i] = hsv;
}
}
if (parent->read_switch() > 0)
hsv.hue = 200;
else
hsv.hue = 0;
it[8] = hsv;